Update Inbound Plan Cartons
PATCH/api/tiktok-shop/:integrationInstance/fbt/inbound-plans/:plan/cartons
Replace the plan's entire carton set. Send every carton — what you send becomes what is on file.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Body
cartons(array, required, max 500).cartons.*.carton_number(integer, required, min 1).cartons.*.carton_type(string, optional) —SINGLE_SKU(default) orMIXED_SKU.cartons.*.weight_kg(numeric, optional, nullable, min 0).cartons.*.length_cm(numeric, optional, nullable, min 0).cartons.*.width_cm(numeric, optional, nullable, min 0).cartons.*.height_cm(numeric, optional, nullable, min 0).cartons.*.contents(array, required, min 1 entry).cartons.*.contents.*.plan_line_id(integer, required) — must be a line on this plan.cartons.*.contents.*.quantity(integer, required, min 1).cartons.*.contents.*.lot_code(string, optional, nullable, max 64) — required by TikTok for lot-managed goods.cartons.*.contents.*.expiration_at(date, optional, nullable) — required by TikTok for expiration-managed goods.
Two further rules are enforced against the plan itself and reported as 422:
- Conservation — the carton contents for each line must sum exactly to that line's quantity. Errors come back on
lines.{index}.cartons. - Single-SKU cartons — a carton typed
SINGLE_SKUmay hold only one line. Errors come back oncartons.{index}.carton_type.
Cartons can no longer be changed once any inbound order under the plan has physically departed; that answers 409. The plan must belong to the integration instance in the path; a plan owned by another instance answers 404.
Requires the integrations.update permission.
Request
Responses
- 200
- 401
- 403
- 404
- 409
- 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.
Conflict
Response Headers
Unprocessable Content
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.