The Constraint, Up Front #
Amazon's Buy Shipping — the Merchant Fulfillment API — lets you buy Amazon-negotiated carrier rates, print the label, and have tracking flow back automatically. It is the obvious way to fulfil merchant-fulfilled orders, and it comes with meaningful protection attached.
In one line
The Merchant Fulfillment API does not support international shipments. If your goods cross a border to reach the buyer, Buy Shipping is off the table — you buy labels directly from FedEx, DHL or another carrier, and you push tracking back to Amazon yourself with confirmShipment.
This catches out a lot of cross-border sellers, because everything else in SP-API works the same way it does domestically. The orders arrive normally. It is only at the label step that the path diverges.
What You Actually Lose #
The label is the small part. The protection is the big part, and it is worth being explicit about because it changes how you must operate.
| With Buy Shipping | Buying labels yourself |
|---|---|
| A-to-z / INR claim protection when the label is Amazon-bought | No protection — a lost parcel is your loss |
| On-time delivery metrics protected on Amazon-bought labels | Your metrics stand on the carrier's actual scans |
| Tracking flows back automatically | You must call confirmShipment yourself, correctly, every time |
| Amazon-negotiated rates | Your own carrier contract |
| Valid tracking guaranteed by construction | Valid tracking is your responsibility to verify |
Read that middle row again. Your account health now rests on carrier scans you do not control and tracking data you push yourself. A bad integration does not just produce a bad label — it produces suppressed listings.
The Replacement Architecture #
Four pieces, and the order matters:
Step 4 is the one people under-build. confirmShipment is not a formality — it is what makes the order count as shipped on time, and getting the carrier code wrong is a real failure mode. Use the carrier's registered code where one exists; only fall back to a generic "other" plus a carrier name when it genuinely is not listed, because an unrecognised carrier can mean the scans never reconcile.
What You Have to Build That Buy Shipping Gave You #
- Structured recipient addresses
Carrier APIs want discrete fields, validated. A single free-text address blob will fail validation or, worse, print truncated.
- Ship-from and exporter identity
Export shipments need the exporter's tax and trade identifiers on the paperwork. Collect them once, store them properly, and put them on every document.
- Per-SKU customs data
Weight, dimensions, HS code and declared value, per product. This is the unglamorous data-entry project that blocks everything else, and it is worth doing before you write any carrier code.
- A tracking write-back you can trust
Idempotent, retried, and verified — not fire-and-forget. If it silently fails, your on-time metric degrades and nothing alerts you.
A useful design decision if you use more than one carrier: put them behind a single internal adapter interface from the start. FedEx REST and a SOAP customs service look nothing alike, and you do not want that difference leaking into your order workflow.
Operating Without the Safety Net #
Since no protection applies, the discipline has to come from your own process:
- Ship inside the promised window, always. Without label-based protection, a late dispatch is simply a late dispatch.
- Verify tracking actually scans. A number that never produces a carrier scan is worse than no number — it looks like a shipment that vanished.
- Watch the write-back as a metric. Count confirmations that failed or were never attempted, and alert on it. This is the single highest-value monitor in a cross-border fulfilment stack.
- Keep the customs paperwork right. A parcel held at customs for a bad HS code or a truncated tax number is a delivery failure with your name on it.
Building cross-border fulfilment? The carrier side has its own surprises — see the DHL India CSB-V lane and why no marketplace gives you a buyer phone number. Or talk to me about the pipeline.
FAQ #
Does Amazon Buy Shipping support international shipments?
No. The Merchant Fulfillment API that powers Buy Shipping does not support international shipments, so sellers fulfilling across a border must buy labels directly from carriers and confirm shipment to Amazon themselves.
What do I lose by not using Amazon Buy Shipping?
The seller protection attached to Amazon-bought labels — A-to-z and item-not-received claim protection, and protection of on-time delivery metrics — plus automatic tracking write-back and Amazon-negotiated rates. On-time dispatch and valid tracking become entirely your responsibility.
How do I send tracking to Amazon without Buy Shipping?
Call the Orders API confirmShipment operation with the carrier code and tracking number after you generate the label. Use the carrier's registered code where one exists; a generic "other" plus carrier name is a fallback, and an unrecognised carrier risks scans never reconciling.
Can I still be protected on international orders?
Not through Buy Shipping, since it is unavailable. Protection has to come from your own operational discipline: dispatching inside the promised window, verifying tracking produces real carrier scans, and monitoring that every shipment was actually confirmed back to Amazon.
Should I use one carrier or several?
Several is common for cross-border, because lanes and customs routes differ. Put them behind a single internal adapter interface so the differences between a REST carrier and a SOAP customs service never reach your order workflow.
Related guides
Amazon SP-API
The SP-API Reports Pattern Everyone Gets Wrong (Async, Step by Step)
The SP-API Reports API is asynchronous — request, poll, download, decompress — and most broken integrations either treat it like a synchronous call or poll it straight into a throttle. Here's the correct four-step flow, the status states that trip people up, and the gzip gotcha at the end.
Read guide →Amazon SP-API
Amazon Vendor Central API: What 1P Vendors Can Actually Automate
Vendor Central (1P) has a real API surface through the SP-API vendor family — retail analytics, purchase orders, shipments, invoices, and direct fulfillment. Here's what's genuinely automatable, what still isn't, and where the fastest wins are for a 1P vendor.
Read guide →Amazon SP-API
Amazon SP-API 403 Unauthorized: Every Cause and How to Fix It
A 403 "Access to requested resource is denied" from the SP-API almost never means your credentials are wrong — it usually means a role, a token, a region, or an authorization is mismatched. Here are the eight causes that produce a 403, in the order worth checking them, with the exact fix for each.
Read guide →Don't want to build this yourself?
I set this up for sellers and agencies every week. Book a free 30-minute audit of your Amazon data & PPC setup — you'll leave with a plan either way, whether we work together or not.