ShipYesterday
Sign in

From wallet to printed label

Four steps, the same whether you click through the dashboard or call the API. Money only leaves your wallet when a label is bought, and comes back when it fails or is voided.

Order 4480Draft
Brooklyn NY 11201, 2 lb
Wallet$50.00
Ratesnot asked yet
Labelnone

First, top up the wallet.

Order 4480Quoted
Brooklyn NY 11201, 2 lb
Wallet$50.00
Priority Mail, 2 days$14.89
Labelnone

Then ask for rates.

Order 4480Bought
Brooklyn NY 11201, 2 lb
Wallet$35.11
Priority Mail, 2 days$14.89
Tracking9405 5118 9956

Buy one and print it.

Order 4480Voided
Brooklyn NY 11201, 2 lb
Wallet$50.00
Priority Mail, 2 days$14.89
Tracking9405 5118 9956
Back in wallet+$14.89

Void it if plans change.

Every label on one board

Labels from the dashboard and from your code land in one list, with who bought them, what they cost and where they are. Open a row for the postage and the fee. Example data.

Two calls buy a label

Ask for rates, then buy one with an idempotency key. Send the same key again and you get the first label back, never a second charge.

Read the API docs
curl https://shipyesterday-side-projects-7607c0e9.vercel.app/api/v1/rates \
  -H "Authorization: Bearer $SHIPYESTERDAY_KEY" \
  -d '{ "address_from":   { ...your dock... },
        "address_return": { ...the brand's returns address... },
        "address_to":     { ... },
        "parcel": { "length": 8, "width": 6, "height": 3, "weight": 12 },
        "reference": "JUNIPER 4480" }'
curl https://shipyesterday-side-projects-7607c0e9.vercel.app/api/v1/labels \
  -H "Authorization: Bearer $SHIPYESTERDAY_KEY" \
  -H "Idempotency-Key: juniper-4480" \
  -d '{ "quote_id": "7c1e9d2a-..." }'

{ "label": { "status": "purchased", "carrier": "USPS",
    "amount": { "postage_cents": 653, "fee_cents": 68, "total_cents": 721 },
    "label_url": "https://..." }, "replayed": false }

Carriers

USPSLabels
  • Ground Advantage
  • Priority Mail
  • Priority Mail Express
  • First-Class Package International
  • Priority Mail International
  • Priority Mail Express International

Rates and labels, domestic and international, bought and voided in testing. Last checked Nov 5, 2026.

  • UPSNot available yetRates come back in testing. Labels are not offered.
  • DHL ExpressNot available yetInternational rates come back in testing. Labels are not offered.
  • FedExNot available yetReturned no rates in our tests. Not offered.

What works today

Every line below was checked end to end in the sandbox on Nov 5, 2026. Nothing here is a promise about later.

  • WorksRate and buy one label in the dashboardUSPS, domestic and international
  • WorksBulk shipping from a CSV (up to 200 rows)Domestic USPS; each row bought on its own with a retry-safe key
  • WorksCustoms declarationsInternational USPS; AES filings over $2,500 not supported
  • WorksSignature on deliveryStandard signature, USPS
  • WorksDeclared-value insuranceUp to $5,000; cost included in the rate
  • WorksPDF 4x6 and ZPL thermal labelsChosen per shipment
  • WorksYour return address and order reference on the labelChecked on printed USPS labels
  • WorksAddress checkAPI endpoint
  • WorksTracking timeline on every labelChecked with sandbox tracking numbers; sandbox labels never get carrier scans
  • WorksStatus updates pushed to us as parcels moveReceived and checked in testing
  • WorksVoid a label and get the money backCredited when the carrier confirms
  • Not builtReturn labelsGenerated in testing; billing for scan-based returns not built yet
  • Not builtUSPS SCAN forms and pickupsNot available in test mode; not built
  • WorksPrepaid wallet with a per-line historyAppend-only ledger
  • OffCard or bank top-ups and payoutsNot switched on yet; sandbox credit only
  • OffUPS and DHL Express labelsNot offered. USPS only for now
  • OffFedExNot offered. No rates returned in testing
  • Not builtSeparate wallets per client under one loginOne login per account today
  • WorksREST API, API keys, idempotent purchasesSame features as the dashboard
  • OffLive postageSandbox only until live access and billing are set up