fbaInbound_updateShipmentTrackingDetails

Upload carrier tracking for one shipment to Amazon.

destructiveAmazon Seller (SP-API)sp.fulfillmentInbound_2024-03-20

Amazon SP-API · updateShipmentTrackingDetails · PUT /inbound/fba/2024-03-20/inboundPlans/{inboundPlanId}/shipments/{shipmentId}/trackingDetails Amazon SP-API · getInboundOperationStatus · GET /inbound/fba/2024-03-20/operations/{operationId} Gate: approve — interactive: show the change (Amazon's preview first where one exists), wait for an explicit approve; autopilot: only when the seller's own words asked for this change; otherwise ask. Async — the server polls the returned operationId to completion. This is the non-Amazon-partnered (USE_YOUR_OWN_CARRIER) flow. TrackingDetailsInput is a union of exactly two shapes — supply ONE. Small Parcel tracking is per BOX, so ONE call carries every box of the shipment; there is no carrier field on this operation at all.

Call it

In an AI client (MCP)

tools/call
{
  "name": "fbaInbound_updateShipmentTrackingDetails",
  "arguments": {
    "store": "myStore-US",
    "plan_id": "<plan_id>",
    "shipment_id": "<shipment_id>"
  }
}

From code (Tool API)

curl -X POST https://api.sellersheetai.com/api/v1/tools/fbaInbound_updateShipmentTrackingDetails \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","plan_id":"<plan_id>","shipment_id":"<shipment_id>"}'
Early access — the Tool API is open on request, contact us.

Arguments

NameTypeDescription
storerequiredstringthe store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim.
plan_idrequiredstringthe inboundPlanId (from fbaInbound_createInboundPlan or fbaInbound_listInboundPlans).
shipment_idrequiredstringthe shipmentId (from the placement option's shipmentIds in fbaInbound_listPlacementOptions, or fbaInbound_getInboundPlan once a placement is confirmed).
spd_tracking_itemsobject[]Small Parcel (SPD) tracking, one entry per box: [{boxId, trackingId}]. boxId is the FBAxxxxxxxx ID from fbaInbound_listShipmentBoxes / fbaInbound_create_packing_list (maxLength 1024); trackingId is the carrier's number (maxLength 64). Pass exactly one of spd_tracking_items / ltl_tracking_detail — both or neither is refused. boxIds exist only after the shipment's transportation is confirmed.
ltl_tracking_detailobjectLTL/FTL freight tracking, shipment-level: {freightBillNumber: [str] (required, exactly 1), billOfLadingNumber: str (optional, ≤1024)}.

Result

Every tool answers {notification, data, human_action}; data carries:

  • data.uploaded — True once the operation reached SUCCESS.
  • data.operation — the final getInboundOperationStatus payload.

Workflow

  • 1. fbaInbound_listShipmentBoxes — the boxId (FBAxxxxxxxx) of every box. 2. Call this tool once per shipment with all its boxes.

Body (Amazon schema; updateShipmentTrackingDetails)

trackingDetails*: {ltlTrackingDetail: {billOfLadingNumber, freightBillNumber*}, spdTrackingDetail: {spdTrackingItems*}}

On this page

Actions

View as Markdown

Ask an assistant

Ask ChatGPTAsk Claude