Receive Warehouse Transfer Shipment
POST/api/warehouses/transfers/:transfer/receive
Records a receipt against a warehouse transfer, adding the received quantities to stock at the destination warehouse.
warehouses:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Fields: products (required array of {id: warehouse transfer line ID, quantity, shipment_line_id}), shipment_id (the shipment being received), receipt_date (defaults to now), blemished (array of {product_id, sku, quantity, condition, reference} - received units in damaged condition are booked in as a new blemished product with the given SKU), condition and integration_unique_id.
The transfer must be open.
Shipping is handled for you per line: any line in the request that has NOT been dispatched yet has a shipment created for the quantity being received, so a transfer can be received without calling the shipment endpoint first. This applies per line, so it still works when other lines on the same transfer already shipped.
A line that is only PARTLY dispatched is not auto-shipped — a receipt cannot be split across two shipments — so such a line yields only its already-dispatched remainder. Read quantity_shipped and quantity_receivable on the transfer's lines to see what a receipt can take. Requesting a receipt where nothing at all is receivable returns 422 rather than silently recording nothing.
Auto-shipping does not apply to channel-managed destinations (Amazon FBA/AWD, Walmart WFS), whose dispatch and receipt are driven by the channel.
Authentication: Requires Bearer token.
Request
Responses
- 201
- 400
- 401
- 403
- 404
- 422
- 429
Created
Response Headers
Bad Request
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.