USPS
Priority Mail Intl
10–15 days$18.30
$10.00 of taxes & duties included
all-in · no surprises
A void call on GoatLabels credits your prepaid wallet immediately for the next label, instead of routing the refund back through a carrier settlement cycle.
USPS, UPS, FedEx, or DHL — a void call returns the value to your balance the same way for all of them.
Voided value lands back in the prepaid balance and is immediately spendable on the next label.
Every multi-carrier platform lets you void an unused label. The thing that actually differs is where the money sits between the void and the next purchase, and how long your automation has to reason about a balance that is neither spent nor available.
| GoatLabels | EasyPost | |
|---|---|---|
| Where the value goes | Straight back into your prepaid wallet balance as a credit. | Back through the carrier's refund process against your billing, on the carrier's timetable. |
| When you can respend it | Immediately — the credited balance funds the very next buy call. | Once the refund has cleared the carrier settlement cycle, which is not instant. |
| What your code has to track | One balance. Void, then buy again; no pending-refund state to model. | Refund status as its own object with its own lifecycle, worth reconciling in high-volume flows. |
| Effect on a rebuy | Rebuy at once from the same funded balance, even mid-batch. | The rebuy is funded normally; the refund catches up separately later. |
| Finance reconciliation | One prepaid balance, with debits and credits in the same ledger. | Charges and refunds landing on different dates, matched after the fact. |
| Void via API | One call, with idempotency so a retried void is not a second operation. | A supported API operation with a documented refund object — this part is well built. |
EasyPost is a trademark of its owner and is not affiliated with GoatLabels. Their plans, fees, and carrier list change — compare against their current pricing page before you decide.
A misprinted run of labels means voiding and rebuying dozens at once. When voided value returns to a prepaid balance immediately, the rebuy is funded by the void itself. When it goes through a settlement cycle, the rebuy needs separate funding while the refund is still in flight.
Charges on one date and refunds on another is a reconciliation exercise that grows with shipment count. A prepaid wallet keeps the debit and the credit in the same ledger, so the balance is the answer rather than the starting point for a spreadsheet.
Automated flows that void — address corrections, cancelled orders, carrier switches after a rate change — otherwise have to model a pending-refund state and decide what it means for available funds. Void-to-wallet collapses that to a single balance your code already reads.
The loop that matters here is short: your code buys a label, something changes, your code voids it and buys another. On GoatLabels each buy is a debit against a prepaid wallet and each void is an immediate credit back to that same balance, so the second purchase is funded by the first one being cancelled. There is no pending-refund object to poll, no settlement window during which the money is neither yours nor the carrier's, and no separate reconciliation between a charge date and a refund date. Idempotency keys apply to voids as well as buys, so a retried void after a timeout does not become a second operation, and signed webhooks tell your stack when the label and its credit are final.
Hey! 2x hoodies (M) 1x tee (L) 😅 Ship to: Maya R. Austin, TX 78701
Connectors, REST API, DMs, and screenshots — one queue, and every path debits the same balance.
Void credits the wallet immediately. Signed webhooks push label and tracking events to your stack.
Shopify, Etsy, WooCommerce, and TikTok Shop sync into To Ship and push tracking back when you print. Most voids trace to something the feed got wrong or the buyer changed afterwards — an address correction, a combined order, a cancelled item. Billy drafts the replacement from the message the customer actually sent, and the void that funds it credits the same balance.
Via AI tiles: an order that never became a record still becomes a label.
Both platforms void labels correctly; this is not a correctness argument. It is about latency and state — whether the value from a cancelled label is available to your next call, or whether it is a claim your finance team will see resolve on some later date.
Card, Apple Pay, Google Pay, ACH bank transfer, and crypto all top up the same balance, and every label debits it. Because voids credit that same balance, the wallet is a single running number rather than a charge history you match against a refund history.
A DM, a comment thread, a voice note, a screenshot — Billy reads any of them and drafts the whole label. When a buyer sends a corrected address after you have already printed, the void and the replacement draft happen in the same place.
There is no per-shipment platform fee, which also means a void-and-rebuy cycle does not cost you a second platform charge for the same parcel. Free covers 50 shipments a month; Pro is a flat monthly fee for unlimited shipments and cheaper label pricing.
USPS, UPS, FedEx, and DHL quoted live as all-in prices, and the void behaviour is identical across all four — the credit is against your GoatLabels balance, not against a per-carrier account, so a batch that spans carriers still resolves into one number.
REST and JSON, one Bearer header, idempotency keys covering voids as well as purchases so a retried request never double-operates, and signed webhooks for label and tracking events instead of polling a refund status endpoint.


Label ready
CL-1038 · Brooklyn, NY
The misprint, the wrong box size, the address the buyer corrected an hour after checkout — those voids are noticed by a person, not a job. Doing them in the browser credits the same wallet instantly, so the replacement label is funded before they have finished retaping the box.
In a flow with real void volume, the common question is not how to void — it is what happened to a specific parcel and its money. Hold the mic, ask, and Billy reads back the shipment, its tracking history, and its current state against your prepaid balance. This is the real product, not a render.

Listening
"Where's Maya's package?"
Out for delivery
CL-1039 · Austin, TX · by 6 PM
Plain English in — names, addresses, weights, carriers, services · nothing to import and nothing to map · reads the all-in rate back before a cent leaves the wallet · phone, browser, or Telegram.
Three carriers on the same parcel, each an all-in number that is the exact amount leaving your prepaid balance. Cancel that shipment and the identical amount comes straight back to the balance — one ledger, two entries, nothing pending in between.
Priority Mail Intl
10–15 days$18.30
$10.00 of taxes & duties included
all-in · no surprises
Intl Connect Plus
3–5 days$22.80
$11.00 of taxes & duties included
all-in · no surprises
Express Worldwide
1–2 days$26.20
$12.20 of taxes & duties included
all-in · no surprises
REST, JSON, one Bearer header. The void endpoint is idempotent, so a retry after a network timeout cannot turn into a second operation, and the credit is reflected in your balance as soon as it returns — which is what lets a rebuy fire in the same code path rather than a later job.
POST /api/v1/shipments
Authorization: Bearer sk_live_…
Idempotency-Key: ord_8421
{
"to": { "name": "Joyce", "city": "Berlin", "country": "DE" },
"parcel": { "weight": 1.2, "weight_unit": "kg" },
"service": "fedex_intl_priority"
}
Free covers 50 shipments a month with the public API, the store connectors, and Billy all unlimited underneath it — we make a little on each label instead. Pro is a flat monthly fee for unlimited shipments, cheaper label pricing, and Billy on Telegram. Because nothing is metered per shipment, voiding and rebuying the same parcel does not add a platform charge on top.
Volume pricing
illustrativemore volume → lower per-label rates
$0 / forever
Enough to test the void-and-rebuy loop with real labels.
The assistant that reads a DM, a screenshot, or a voice note into a drafted label runs unlimited in the web app on Free. Pro adds Billy on Telegram.
GET /api/v1/shipments
200 OK · plan: free
Unlimited calls on Free — still unlimited on Pro.
On Pro we will work with you to beat the label rates you are already getting from
ShippoPirateShipShipStationLabel prices are quoted live from USPS, UPS, FedEx, and DHL and shown as one all-in number — the same number that leaves your wallet and the same number a void returns to it. EasyPost's plans and refund handling change, so check their current documentation rather than a claim on ours. Full pricing details
If you void a handful of labels a month, settlement timing is noise. These are the operations where voids are routine and the money being in flight is a real constraint on the next action.
TikTok Shop & live commerce
A bad batch means dozens of voids at once. Immediate credit means the rebuy is funded by the void itself rather than by topping the balance up while a refund is still clearing.

Etsy & independent creators
Buyers correct addresses after checkout constantly. Void, redraft, rebuy, all against one balance, with no pending state for anyone to explain to finance.
One queue, connector or not
Order #1024 · pasted from a comment thread
The orders that never became JSON
REST and the UI, one balance
1
wallet behind the API and the dashboard
A video took off and I had 80 TikTok Shop orders by morning. I printed every label from my phone on the bus to the post office.
Early customer · TikTok
TikTok Shop seller
I run my Etsy shop from the kitchen. The AI reads the order, picks the carrier, the label prints. That's the whole workflow now.
Early customer · Etsy
Etsy maker
The API is what every shipping API pretends to be. Idempotency that actually works.
Sasha R.
Staff engineer, marketplace
Still comparing? GoatLabels vs EasyPost covers who owns the carrier account, EasyPost pricing explained walks the fee math, and migrating an integration off EasyPost maps the endpoints one by one.
Fund a wallet with card, Apple Pay, Google Pay, ACH, or crypto, buy a label through the API, void it, and check the balance before you have finished reading the response.
Sign up in seconds. No card required. No per-shipment platform fee.