Submit Box Contents (3PL Portal)
POST/api/amazon/:integrationInstance/draft-inbound-plans/fulfillment-portal/:token/box-contents
Anonymous 3PL portal submission of packed box contents. Access is granted by the opaque :token in the URL (the packet's portal_token) — no bearer auth. The submission is stored verbatim on the packet's portal_submission.boxes JSON.
Any valid API token can call this endpoint — no specific scope required. Manage tokens.
Validation
boxes— required array, 1..1000 boxesboxes.*.box_number— required integer 1..100000, distinct across boxesboxes.*.length/boxes.*.width/boxes.*.height— optional numeric 0..1000000 (per-box carton dimensions)boxes.*.dimension_unit— optional string, one ofIN,CMboxes.*.weight— optional numeric 0..1000000boxes.*.weight_unit— optional string, one ofLB,KGboxes.*.amazon_fba_carton_template_id— optional integer, must exist inamazon_fba_carton_templates(provenance marker set when the 3PL picks a saved carton preset; kept even after manual dimension edits)boxes.*.lines— required array, 1..1000 lines per boxboxes.*.lines.*.sku— required string, max 255boxes.*.lines.*.quantity— required integer 1..1000000
The dimension/weight fields are optional so a bare SKU+quantity submission still validates, but the portal offers the same full-featured box entry (carton presets + L×W×H + weight) the internal packing station uses. Returns the refreshed portal payload (same shape as GET .../fulfillment-portal/:token).
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.