Skip to main content

Generate Transportation Options

POST 

/api/amazon/:integrationInstance/draft-inbound-plans/:draft_inbound_plan/transportation-options/generate

Generate transportation options (carrier quotes) for the confirmed placement's shipments via the Amazon FBA Inbound API (v2024-03-20 generateTransportationOptions operation). Amazon returns partnered-carrier and own-carrier options per shipping mode for each shipment.

Not yet available to API tokens

This endpoint currently requires session authentication; Personal Access Token scope support is in progress.

This is an asynchronous endpoint: it dispatches a tracked background job and returns { "data": { "tracked_job_log_id": <id> } } immediately. Progress is visible via the tracked job log endpoints, and the underlying Amazon operation is resolved by the amazon_inbound_operations poller (a background job).

Tracked job name: Generate FBA Transportation Options: {plan name}. When the job completes, the offered options are persisted locally and can be retrieved with List Transportation Options or nested on List Shipments.

Request body fields:

  • shipments (array, required, min 1) — one entry per shipment to quote
  • shipments.*.shipment_id (integer, required) — LOCAL plan-shipment row id (not the Amazon shipment id); must belong to this draft inbound plan (422 otherwise)
  • shipments.*.ready_to_ship_date (date, required) — must be today or later (422: “The ready-to-ship date must be today or later.”)
  • shipments.*.mode (string, optional, nullable, SPD or LTL) — how the shipment travels. Send SPD to switch a shipment back to small parcel: that is the only value that clears its stored pallets, freight class and declared value. Omitting the field leaves those stored values untouched and re-sends them to Amazon, so a caller that does not track the mode cannot silently discard a freight configuration.
  • shipments.*.pallets (array, optional) — pallet configuration, needed for freight (LTL/FTL) quotes
  • shipments.*.pallets.*.length / width / height (numeric, required, > 0)
  • shipments.*.pallets.*.weight (numeric, required, > 0)
  • shipments.*.pallets.*.dimension_unit (string, optional, IN or CM)
  • shipments.*.pallets.*.weight_unit (string, optional, LB or KG)
  • shipments.*.pallets.*.stackability (string, optional, nullable, STACKABLE or NON_STACKABLE)
  • shipments.*.pallets.*.quantity (integer, required, min 1)
  • shipments.*.freight_class (string, optional, nullable) — NMFC freight class for the palletised freight. One of NONE, FC_50, FC_55, FC_60, FC_65, FC_70, FC_77_5, FC_85, FC_92_5, FC_100, FC_110, FC_125, FC_150, FC_175, FC_200, FC_250, FC_300, FC_400, FC_500
  • shipments.*.declared_value (numeric, optional, nullable, > 0) — declared value of the freight, in the marketplace currency (resolved from the plan's marketplace, defaulting to USD)

Freight (LTL/FTL) quotes require freight information. Amazon only returns priced partnered-LTL (PCP-LTL) options when freightInformation (freight class + declared value) is sent alongside the pallets — without it every freight option comes back as USE_YOUR_OWN_CARRIER with a null quote. Both fields are persisted on the shipment (freight_class, declared_value, declared_value_currency) and echoed back by List Shipments; they are cleared only by a subsequent generate that sets mode to SPD. contactInformation is derived server-side from the shipment's source address (falling back to the source warehouse) — it is not part of this payload.

Pre-flight validation (HTTP 422, checked synchronously before the job is dispatched):

  • a placement option must already be confirmed for the plan
  • every shipment_id must belong to this draft inbound plan

Request

Responses

OK

Response Headers
    Content-Type