Preview Fulfillment Preflight
POST/api/temu/:integrationInstance/fulfillments/preflight-preview
Runs the same Temu shipment-confirmation checks as the stored-fulfillment preflight, but against raw input values instead of a persisted fulfillment. Use this to validate a fulfillment while it is still being composed, before anything is saved.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Request body (all fields optional — omitted values are reported as blockers):
warehouse_id(integer) — local warehouse id; must be mapped to a Temu warehouse.shipping_method_id(integer) — local shipping method id; must be mapped to a Temu carrier.tracking_number(string, max 255) — carrier-issued tracking number.sales_order_id(integer) — the sales order being fulfilled. Supply it to have the order's carrier restrictions checked while the shipping method is still being chosen; without itrestricted_carriersis always empty and a restricted carrier is only reported once the fulfillment is submitted.
The response shape matches the stored-fulfillment preflight: can_submit, blockers (each with field, message, fix_path), resolved (carrier_id, warehouse_id, tracking_number), and restricted_carriers.
restricted_carriers(array of strings) — carrier names Temu will not accept a self-declared tracking number for on this order (for example["USPS", "FEDEX"]). Temu publishes these on the order itself, so they are known before a label is bought. Shipping with one of these carriers means the tracking can never be confirmed afterwards; buy the label through Temu or use an accepted carrier instead. Empty when there are no restrictions.
Authentication: Requires Bearer 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.
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
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.