SANOCEA™
AUTOMATERESEARCH[RESEARCH-DERIVED]Operations · HOW_AUTOMATION_WORKS

Amazon FBA Inbound API v2024-03-20: Plans, Placement Options, and State Transitions

What Amazon Selling Partner API documentation specifies for the v2024-03-20 inbound architecture: asynchronous operation polling, placement fee splits, shipment state machines, and WMS reconciliation.

The Answer First

Amazon Selling Partner API documentation specifies that the Fulfillment Inbound API v2024-03-20 fundamentally restructures how merchants and warehouse management systems transmit inventory into Amazon fulfillment centers [1] [2]. In contrast to the legacy v0 API where destination fulfillment centers were returned immediately upon plan creation, the v2024-03-20 architecture separates inbound logistics into distinct generative stages: Inbound Plans, Packing Options, Placement Options, Transportation Options, and Delivery Windows [1] [3]. Every generative transition executes asynchronously via getInboundOperationStatus polling [3]. Shipments remain in UNCONFIRMED status until a merchant confirms a specific placement option, locking fulfillment splits and placement fees [3]. Understanding this multi-stage lifecycle is required to prevent warehouse dispatch stalls, fee surprises, and synchronization failures between physical warehouse management systems and Amazon Fulfillment by Amazon (FBA) networks.

1. The Inbound Plan Lifecycle: Deconstructing the v2024-03-20 Architecture

For merchants sending inventory to Fulfillment by Amazon (FBA), the legacy v0 Fulfillment Inbound API treated shipment planning as a synchronous, single-phase operation. A merchant submitted item lists to createInboundShipmentPlan, received immediate destination fulfillment center allocations, generated shipments with createInboundShipment, and subsequently transmitted carton contents. This architecture failed to reflect physical logistics realities, where box packing often occurs before destination centers are known, and where regional placement fee trade-offs dictate optimal routing.

Amazon Selling Partner API documentation specifies that version v2024-03-20 decouples shipment planning into an immutable plan container with staged generative options [1] [2]. An inbound plan begins with createInboundPlan, which accepts the source address, destination marketplace identifiers, and item manifests [3]. Rather than dictating final destinations upfront, Amazon generates packing configurations and placement options that allow sellers to evaluate operational costs and shipment splits prior to committing inventory [1] [3].

Accessing the Fulfillment Inbound API v2024-03-20 requires the Amazon Fulfillment role authorized on the developer profile [1] [4]. Documented platform support covers all Amazon regional stores except Brazil [1]. Furthermore, Amazon documentation explicitly notes that several legacy v0 operations remain active and are not deprecated, including getLabels, getBillOfLading, getPrepInstructions, getShipments, getShipmentItemsByShipmentId, and getShipmentItems [1]. Of these, getLabels and getBillOfLading remain necessary operational components to generate physical box and pallet shipping documentation [1].

2. The Six-Stage Generative Pipeline and Asynchronous Polling

The v2024-03-20 inbound workflow operates across six sequential stages. Each generative step initiates a background calculation within Amazon logistics systems and returns an operationId rather than immediate resource payloads [1] [3].

Workflow StagePrimary API OperationsInput ParametersDocumented Output
1. Plan InitializationcreateInboundPlanSource address, marketplace IDs, item MSKUs, prep ownershipinboundPlanId, operation status, initial plan metadata
2. Packing ResolutiongeneratePackingOptions, setPackingInformationPlan ID, optional box packaging details, item associationspackingOptionId, pack groups, supported configurations
3. Placement SelectiongeneratePlacementOptions, confirmPlacementOptionPlan ID, confirmed packing option ID, placement option IDplacementOptionId, shipment IDs, placement fees and discounts
4. Transportation QuotegenerateTransportationOptions, confirmTransportationOptionsShipment ID, shipping mode (SPD/LTL), carrier selectiontransportationOptionId, carrier quotes, appointment details
5. Delivery WindowgenerateDeliveryWindowOptions, confirmDeliveryWindowOptionsShipment ID, freight availability dates, window option IDdeliveryWindowOptionId, scheduled arrival timeframes
6. Label GenerationcreateMarketplaceItemLabels, legacy getLabelsShipment ID, carton counts, label format preferencesThermal or PDF carton barcodes, pallet placards, bills of lading

Because generative operations require backend logistics routing, the API returns an operationId with status IN_PROGRESS [3]. Warehouse integrations cannot proceed synchronously. The calling client must poll getInboundOperationStatus until operationStatus returns SUCCESS [3]. If operationStatus returns FAILED, the operationProblems array provides structured error codes explaining whether item compliance, address validity, or dimensional constraints caused the failure [3].

4. Placement Options, Inbound Splits, and Fee Mechanics

Once packing options are resolved and confirmed, the merchant generates placement options using generatePlacementOptions [1] [3]. In the v2024-03-20 model, placement options represent the geographic distribution strategy that Amazon assigns to the inbound plan [3].

Each placement option in the listPlacementOptions response contains distinct financial and structural attributes [3]:

  • Placement Option ID: The unique identifier passed to confirmPlacementOption to lock the selected routing strategy [3].
  • Shipment ID Array: The specific shipment containers generated under this placement option [3]. A single inbound plan may be split into one, two, three, or more regional shipments depending on inventory distribution needs [1] [3].
  • Fees and Discounts: The exact placement service fees or inbound defect discounts associated with the option [1] [3]. Options that require Amazon to distribute inventory across its internal network incur higher placement fees, whereas options where the merchant splits shipments across multiple regional facilities receive lower fees or incentives [1] [3].
  • Expiration Timestamp: Each placement option carries an ISO 8601 expiration date [3]. If a merchant fails to confirm an option before expiration, its status transitions from OFFERED to EXPIRED, requiring a new call to generatePlacementOptions [3].

Calling confirmPlacementOption is the decisive state boundary in the inbound lifecycle [1] [3]. Once confirmed, the placement option status transitions to ACCEPTED, the inbound plan locks its shipment splits, and each child shipment transitions from UNCONFIRMED to WORKING status [3].

5. Shipment State Machine and Mid-Flight Modification Boundaries

Child shipments created within an inbound plan follow an explicit state machine defined in the Shipment schema [3]. Tracking these transitions allows warehouse management systems to synchronize internal purchase orders and inventory ledgers with physical freight progress.

Shipment StatusLifecycle DefinitionPermitted Operations and Triggers
UNCONFIRMEDInitial shipment state created during placement generationRead-only visibility; cannot be dispatched or labeled until placement is confirmed [3]
WORKINGActive operational shipment with confirmed placement allocationTransportation options can be quoted; box labels and manifests can be finalized [3]
READY_TO_SHIPCarton labels and transportation options confirmedFreight ready for carrier handover or dock pickup [3]
SHIPPEDCarrier has picked up freight and tracking details are recordedTracking details updated via updateShipmentTrackingDetails [1] [3]
IN_TRANSITFreight is moving across regional carrier networksCarrier scans update transit milestones [3]
DELIVEREDShipment has arrived at the destination fulfillment center dockAmazon dock scan logs trailer arrival [3]
CHECKED_INTrailer or container unsealed and receiving dock queue initiatedFulfillment center staging underway [3]
RECEIVINGCartons opened, individual units scanned, and items verifiedSalable inventory appears in Amazon FBA available inventory [3]
CLOSEDReceiving complete or discrepancy reconciliation window finalizedFinal received quantities locked for accounting reconciliation [3]

A frequent operational hazard in warehouse operations is handling packing adjustments after an inbound plan has been generated. Amazon documentation defines strict boundaries for updating shipment contents [5]:

  • Quantity Modification Ceilings: Merchants can adjust unit quantities using generateShipmentContentUpdatePreviews, but adjustments are permitted only before the shipment enters RECEIVING status [5]. Quantity changes are strictly limited to at most 5% or 6 units per SKU per shipment, whichever is greater [5].
  • SKU Removal Constraints: An existing SKU can be removed from a shipment only if its original planned quantity was 6 units or fewer per shipment [5]. Merchants cannot remove all SKUs or leave a shipment empty [5].
  • Cancellation Void Windows: When an inbound plan must be discarded entirely, cancelInboundPlan cancels the plan and voids associated partnered carrier transportation fees [5]. However, fee voiding is strictly bounded: the void window is 24 hours after confirming transportation for Small Parcel shipments, and only 1 hour for palletized freight [5].

6. A Resilient ERP and WMS Integration Protocol

To prevent stockouts, unauthorized fee commitments, and warehouse dock gridlock when integrating ERP or WMS systems (such as NetSuite, SAP, or Cin7) with the v2024-03-20 API, SANOCEA recommends establishing an event-driven integration architecture structured around five operational principles.

01
Decouple physical carton packing from plan generation

Execute box packing, barcode scanning, and weight verification on the warehouse floor prior to generating placement options. Submitting exact carton weights and FNSKU contents via custom packing information prevents costly split revisions.

02
Implement asynchronous polling workers with exponential backoff

Wrap every generative endpoint (generatePackingOptions, generatePlacementOptions, generateTransportationOptions) in an isolated task queue that polls getInboundOperationStatus at escalating intervals (2s, 4s, 8s, 16s) to avoid rate limit throttling while awaiting Amazon routing calculations.

03
Establish commercial approval gates on placement fee structures

Parse the fee and discount arrays in listPlacementOptions automatically. If Amazon proposes an unexpected regional split or a placement fee exceeding configured gross margin thresholds, quarantine the plan for merchant approval before calling confirmPlacementOption.

04
Snapshot carton manifests prior to confirming transportation

Store the immutable JSON payload of listShipmentBoxes and listShipmentItems alongside warehouse picking records. If freight arrives with receiving discrepancies, the stored manifest provides primary evidence for reimbursement disputes.

05
Enforce strict void window timers on warehouse dispatch

If pallet freight is damaged on the dock or staging errors occur, trigger cancelInboundPlan within the documented 1-hour window to avoid non-refundable freight carrier charges.

7. Cutover Verification Checklist for Engineering Teams

Before deprecating legacy v0 inbound scripts and routing live warehouse orders through the v2024-03-20 pipeline, engineering teams must verify the following documented technical preconditions:

  • Verify that the SP-API application registration includes the Amazon Fulfillment role in Seller Central [1] [4].
  • Confirm that legacy v0 label retrieval endpoints (getLabels, getBillOfLading) are preserved in your integration codebase, as Amazon maintains them for printing box and pallet shipping documents [1].
  • Validate that prep and labeling constraints are queried via listPrepDetails during catalog synchronization so that prepOwner and labelOwner constraints (AMAZON, SELLER, NONE) are populated accurately during plan creation [5].
  • Verify that warehouse pack stations enforce the 15 kg threshold if your operations utilize Amazon-recommended packing for European fulfillment centers [1].
  • Ensure that automated shipment update routines respect the documented 5% or 6-unit ceiling and that any discrepancy exceeding this threshold triggers a clean plan cancellation rather than a rejected content update [5].
  • Confirm that delivery window generation (generateDeliveryWindowOptions) is integrated into carrier scheduling pipelines for all non-partnered LTL and FTL freight [1] [3].

Sources

  1. Amazon Selling Partner API: Fulfillment Inbound API v2024-03-20 documentation (retrieved 2026-10-15)
  2. Amazon Selling Partner API: Fulfillment Inbound v2024-03-20 API reference (retrieved 2026-10-15)
  3. Amazon Selling Partner API: Fulfillment Inbound API v2024-03-20 OpenAPI model (retrieved 2026-10-15)
  4. Amazon Selling Partner API: Roles in the Selling Partner API (retrieved 2026-10-15)
  5. Amazon Selling Partner API: Additional functionality in Fulfillment Inbound v2024-03-20 (retrieved 2026-10-15)