fbaInbound_create_packing_list
Packing list from Amazon's OWN box contents.
writeAmazon Seller (SP-API)sp.fulfillmentInbound_2024-03-20
Call AFTER fbaInbound_confirm_plan_options. Amazon SP-API · listShipmentBoxes · GET /inbound/fba/2024-03-20/inboundPlans/{inboundPlanId}/shipments/{shipmentId}/boxes For every confirmed shipment the server reads listShipmentBoxes — each box's canonical boxId (FBAxxxxxxxx, assigned only after confirmation), name, dimensions, weight and items[{msku, fnsku, asin, quantity, labelOwner}] — and returns one row per box × item. Mixed boxes and multi-shipment placements need nothing from the sheet. Never invent box IDs from STA data — always fetch from Amazon. Mode A (plan workbook): pass sta_spreadsheet_id and the server writes the sidebar's FINAL `Inbound PL` tab into it — 11 columns (Image, Box ID, Template, FNSKU, MSKU, ASIN, Quantity, Weight, Weight Unit, Dimensions, Unit of Measurement), navy header, frozen row, guide note, Image formula — and removes a stale STA-PL tab, exactly as the sidebar's Confirm does. You write nothing there. Mode B: omit it and present data.amazonBoxes in the user's preferred form with those same 11 columns (no shipment column). Box labels per shipment come from fbaInbound_get_labels; tracking numbers go to Manage Shipments.
Call it
In an AI client (MCP)
{
"name": "fbaInbound_create_packing_list",
"arguments": {
"store": "myStore-US",
"plan_id": "<plan_id>"
}
}From code (Tool API)
curl -X POST https://api.sellersheetai.com/api/v1/tools/fbaInbound_create_packing_list \
-H "Authorization: Bearer $SELLERSHEET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"store":"myStore-US","plan_id":"<plan_id>"}'Arguments
| Name | Type | Description |
|---|---|---|
storerequired | string | the store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim. |
plan_idrequired | string | the inboundPlanId (from fbaInbound_createInboundPlan or fbaInbound_listInboundPlans). |
sta_spreadsheet_id | string | the plan workbook (mode A) — '' in mode B.Default: "" |
confirmed_shipments | object[] | REQUIRED — data.confirmedShipments of fbaInbound_confirm_plan_options as is (only shipmentId is read); a list without a shipmentId is refused. |
sta_item_rows | object[] | ignored since 2026-09-24 (it used to be cross-joined onto every box); kept so older callers keep working. |
fba_spreadsheet_id | string | override the FBA spreadsheet whose Product Info feeds the Image column (defaults to the workspace setting).Default: "" |
Result
Every tool answers {notification, data, human_action}; data carries:
data.amazonBoxes— [{amazonBoxId, shipmentId, boxName, msku, fnsku, asin, qty, labelOwner, boxDimensions ("LxWxH"), dimUnit, boxWeight, weightUnit, itemsInBox}] — amazonBoxId is FBAxxxxxxxx; use it for fbaInbound_updateShipmentTrackingDetails.data.inboundPl— {tab: 'Inbound PL', rows} — mode A only.
Workflow
- 1. fbaInbound_confirm_plan_options completed — confirmedShipments in _state / handover file
Params (Amazon schema)
inboundPlanId*: string (max 38 chars)
shipmentId*: string (max 38 chars)
pageSize: integer (1–1000)
paginationToken: string (max 1024 chars)