Amazon Direct Fulfillment is Amazon’s 1P dropship program: a shopper buys an item on Amazon, Amazon issues you — the vendor — a purchase order for that order, and you ship it from your own warehouse to the shopper’s door. There is no global “24-hour” or “48-hour” shipping deadline. Amazon’s API model carries the ship deadline inside each purchase order, in a required field called requiredShipDate, so the clock arrives with the order rather than applying to all of them. The one flat deadline Amazon does publish is a different one: you have 24 hours to acknowledge the order.
That distinction matters because almost every article on this topic states the shipping window as a fixed number of hours. This guide works only from pages Amazon publishes openly — the Vendor Direct Fulfillment workflow guide, the API use case guides, and the OpenAPI models Amazon maintains on GitHub — all checked 2026-08-22. Where a rule lives behind the Vendor Central login and cannot be verified from outside, it is marked as such instead of being filled in with a plausible number.
Amazon Direct Fulfillment Is Not “Dropshipping on Amazon”
The names collide, and the two things are opposites in every way that affects your money.
Third-party (3P) dropshipping means you hold a Seller Central account, list an item you do not own, and have a supplier ship it to the buyer. You set the price, you own the customer relationship, and Amazon’s Drop Shipping Policy governs what you may do — that is the model covered in Amazon FBA vs dropshipping and served by the tools in Amazon dropshipping tools.
Direct Fulfillment is the first-party (1P) version. Amazon is the retailer and the seller of record; you are the supplier. Amazon sets the retail price, takes the customer’s payment, and issues you a purchase order at your wholesale cost. You never list anything and you never talk to the shopper. If the 1P versus 3P split is new to you, start with Amazon 1P vs 3P — it covers who prices, who owns the stock, and who eats the returns.
The mechanical difference in this program is simply that the goods skip Amazon’s network. In standard 1P you ship pallets into a fulfillment center; in Direct Fulfillment you ship a single parcel to a consumer address, and that is why Amazon needs a per-order API handshake at all.
The Order Clock: Four Dates That Ride Along With Each Purchase Order
Amazon’s getOrders operation returns purchase orders you have not yet fulfilled. The workflow guide’s instruction is to pull with createdBefore and createdAfter “to get the orders created within last 24 hours,” filtering on order status NEW “to fetch un-acknowledged items” (Vendor Direct Fulfillment Workflow Guide, checked 2026-08-22). Order status is a closed set of four values: NEW, ACCEPTED, SHIPPED, CANCELLED.
Inside each order, the timing lives in these fields — quoted verbatim from Amazon’s published model:
| Field | Amazon’s definition | Status in the model |
|---|---|---|
requiredShipDate | “Time by which the vendor is required to ship the order.” | Required on every order |
promisedDeliveryDate | “Delivery date promised to the Amazon customer.” | Optional |
earliestNominatedDeliveryDate | “Earliest nominated delivery date for the scheduled delivery.” | Scheduled-delivery orders only |
latestNominatedDeliveryDate | “Latest nominated delivery date for the scheduled delivery.” | Scheduled-delivery orders only |
Source: vendorDirectFulfillmentOrders_2021-12-28.json, checked 2026-08-22.
Two things follow. First, requiredShipDate is marked required while promisedDeliveryDate is not — the deadline Amazon enforces on you is a ship-by timestamp, not a delivery date. Second, because that timestamp is a per-order field in ISO-8601 format, a warehouse rule written as “ship everything within 24 hours” will be wrong in both directions: too slow for priority orders (each order also carries an isPriorityShipment flag) and needlessly tight for scheduled-delivery ones.
The one clock that is a flat number is the acknowledgement. Amazon states it twice: “Vendors should submit accurate acknowledgements as fast as possible, within at most 24 hours” (workflow guide), and “Amazon expects the vendor to submit the acknowledgement within 24 hours” (Submit an acknowledgement, checked 2026-08-22).
On polling cadence, Amazon’s published recommendation is that “vendors check for orders at least once per hour during business hours” (Get packing slips, checked 2026-08-22). All Direct Fulfillment operations run at a usage plan of 10 requests per second with a burst of 10, so polling frequency is rarely the constraint.
Acknowledge or Reject: Fill or Kill, and the Two-Digit Codes
Amazon does not accept a partial answer. The rule is quoted directly: “Partial shipments are not allowed. Vendors need to either confirm or reject the full order (fill or kill model).” Every line item must be acknowledged, and “if the acknowledgement code is omitted, the acknowledgement is rejected in our system.”
The acknowledgement code is a two-digit string with a text description. Amazon publishes the following list as the example set, and adds an important caveat: “Amazon and the vendor mutually agree upon a list of codes that are appropriate for their relationship” — so your agreement may use a subset or add codes not shown here.
| Code | Meaning |
|---|---|
00 | Shipping 100 percent of ordered product |
02 | Canceled due to missing/invalid SKU |
03 | Canceled out of stock |
04 | Canceled due to duplicate Amazon Ship ID |
05 | Canceled due to missing/invalid Bill To Location Code |
06 | Canceled due to missing/invalid Ship From Location Code |
07–12 | Canceled due to missing/invalid customer ship-to name, address line 1, city, state, postal code, or country code |
13 | Canceled due to missing/invalid Shipping Carrier/Shipping Method |
20 | Canceled due to missing/invalid Unit Price |
21, 22 | Canceled due to missing/invalid Ship to Address Line 2 or Line 3 |
50 | Canceled due to Tax Nexus Issue |
51 | Canceled due to Restricted SKU/Qty |
53 | Canceled due to USPS > $400 |
54, 55, 56 | Canceled due to missing AmazonShipID, AmazonOrderID, or LineItemId |
71 | Canceled due to discontinued item |
Source: Submit an acknowledgement, checked 2026-08-22.
Three operational details sit around this call. You cannot acknowledge a quantity higher than the purchase order asked for. You must acknowledge even when every line was invalid — Amazon’s note reads: “Amazon expects an acknowledgement even if all the line items on the purchase order were invalid and did not produce an order or invoice.” And the acknowledgement is asynchronous: allow up to 15 minutes for the status to appear before assuming it failed.
The Label Chain: Who Prints What, and Who Sees the Customer
Direct Fulfillment splits vendors into three shipping arrangements, and the arrangement decides whether you ever see the shopper’s name and address.
Amazon’s orders guide is explicit: “Amazon label only vendors do not receive customer data such as name, address, or phone number for some orders returned using the getOrder and getOrders operations. Direct Fulfillment shares customer information directly on Amazon provided shipping labels.” It adds: “Customer ship-to details are only returned for Vendor Own Label (VOL) or Vendor Own Carrier (VOC).”
| Arrangement | Who produces the label | Customer PII in the order payload |
|---|---|---|
| Amazon label only | Amazon, via createShippingLabels | Not returned for some orders — the address is printed on Amazon’s label |
| Vendor Own Label (VOL) | You | Returned |
| Vendor Own Carrier (VOC) | You, on your own carrier account | Returned |
Because labels carry PII, the label operations are restricted: they require a Restricted Data Token and the Direct to Consumer Shipping (Restricted) role.
The mechanics of the label call are stricter than most fulfillment APIs. You must acknowledge before requesting a label — “You must acknowledge an order before you submit a shipping label request.” One request covers one purchase order; multiple purchase orders per request are not supported. And partial labelling is banned in the same fill-or-kill spirit as the acknowledgement: “Partial shipping label requests are rejected. Direct fulfillment does not allow partial fulfillment. Use one shipping label request for all the items in the order, even if the items cannot fit in one box. You must cancel the entire order if size or weight limits prevent single-label shipping.”
Labels come back as a Base64 string in PNG or ZPL format, with a tracking number and a shipMethod code per package. Amazon warns against throwing labels away: discarding them “can result in carrier pick-up issues and might negatively impact your metrics.”
Two more documents hang off the same API, and both are narrower than people assume:
- Packing slips. “A packing slip is required only if it is for a Business-to-Business (B2B) order or a gift order.” The order payload tells you which is which through the
isPslipRequiredflag. Slips arrive as a Base64 PDF. - Customer invoices. The
getCustomerInvoiceandgetCustomerInvoicesoperations are labelled India only in Amazon’s shipping API guide. They are not a general-purpose invoice feed.
If you palletise, createContainerLabel returns a pallet label; the container type enum is just Carton or Pallet.
Ship, Confirm, and Only Then Invoice
After the parcel leaves, submitShipmentConfirmations tells Amazon it shipped. The shipment status field accepts exactly two values: SHIPPED or FLOOR_DENIAL. Confirmation status takes up to 10 minutes to surface.
Live tracking events are a separate, narrower call. submitShipmentStatusUpdates is for VOC vendors only — Amazon’s guidance: “Only use this API if you use your own carrier (you are a VOC vendor) to transport the shipment to the customer.” One call corresponds to one physical package, the tracking number must match the one you sent on the confirmation, and the status and reason codes are standard EDI codes (X12/EDIFACT), not Amazon-invented values.
Payment is the last step and it has an ordering rule worth putting on a wall: “Items should be invoiced only after they are confirmed and shipped. Otherwise, the invoice is rejected” (Submit an invoice, checked 2026-08-22). Invoices go through the separate Vendor Direct Fulfillment Payments API via submitInvoice; allow 15 minutes for the transaction status to update.
What Amazon Does Not Publish
Being straight about the gaps is the point of this section. As of 2026-08-22, these facts are not retrievable from Amazon’s open pages:
- The ship method code list. The model says only that Amazon defines these codes and that you should “search the ‘Help’ section on Vendor Central for ‘ship methods’.” Vendor Central is a login-gated portal, so the full code list cannot be verified externally.
- Performance thresholds and chargebacks. Amazon’s public developer pages describe the API contract, not the vendor scorecard. No public page lists an on-time-ship target, a cancellation-rate ceiling, or a chargeback percentage for this program. Any such figure you see quoted has a source other than Amazon’s open documentation.
- The “24–48 hour” shipping window. Widely repeated by EDI vendors and 3PL marketing pages, but no Amazon public page states it. The verifiable equivalent is the per-order
requiredShipDate. - The “3–5% of wholesale” return or chargeback saving. Same situation: this circulates in service-provider content without an Amazon source. Treat it as a vendor’s claim, not a rate.
- Program entry. Amazon’s own instruction for vendors without portal access is simply to “contact your Amazon business representative if you do not have a Vendor Central account.” There is no open self-serve signup page to link to.
Common Mistakes
- Hard-coding a fixed ship window. Read
requiredShipDateper order. A blanket rule will miss priority orders and over-tighten scheduled ones. - Sending a partial acknowledgement. Every line item, every time. A missing code gets the whole acknowledgement rejected.
- Splitting an oversized order across two label requests. Not allowed — cancel the order instead.
- Building for customer address data you may never receive. If you are Amazon-label-only, plan for orders that arrive without shopper PII.
- Invoicing early. Invoice only after confirmation and shipment, or it bounces.
- Assuming the customer invoice endpoints apply to you. They are India only.
Frequently Asked Questions
Is Amazon Direct Fulfillment the same as dropshipping on Amazon?
No. Direct Fulfillment is a 1P program run from Vendor Central: Amazon buys from you and resells, and you ship its purchase orders to shoppers. 3P dropshipping is a Seller Central model where you are the seller of record. See Amazon 1P vs 3P for the split.
How long do I have to ship a Direct Fulfillment order?
Until the requiredShipDate on that specific purchase order — Amazon defines it as the “Time by which the vendor is required to ship the order.” Amazon does not publish a single global window (checked 2026-08-22). The 24-hour rule you may have read applies to acknowledging the order, not shipping it.
Can I ship part of an order if one item is out of stock?
No. Amazon calls it a fill-or-kill model: “Partial shipments are not allowed. Vendors need to either confirm or reject the full order.”
Will I see the customer’s name and address?
Only if you are a Vendor Own Label or Vendor Own Carrier vendor. Amazon-label-only vendors do not receive customer data for some orders; the address is printed on Amazon’s label instead.
Do I need a developer to run Direct Fulfillment?
Not necessarily. Amazon states you can confirm purchase orders “through Electronic Data Exchange (EDI) or Vendor Central” as well as through the API. The API is the path to automation, but manual confirmation in the portal is a documented alternative.
Conclusion
Direct Fulfillment is unusually well documented for a 1P program, but only in one place: the developer documentation. The commercial terms sit behind a login and a negotiated agreement, which is exactly why the public web fills the gap with numbers nobody sourced.
The practical takeaway is to build your process around the fields Amazon actually sends you. Poll hourly, acknowledge within 24 hours with a complete code set, read requiredShipDate off each order rather than applying a house rule, request one label per purchase order, confirm the shipment, and invoice last. Everything in this guide comes from Amazon’s public developer pages and open-source API models, checked 2026-08-22.
