Create Receipt
POST/api/inbound-shipments/:inbound_shipment/receipts
Creates a native InboundShipmentReceipt with lines and posts FIFO/inventory directly via the new IS-first path (Phase 1 of the InboundShipment / PurchaseOrderShipment unification). Coexists with the legacy /receive endpoint, which delegates through the PO shipment receipt path.
purchase-orders:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Requires Bearer token.
Fields:
- received_at (required, datetime): Date/time of receipt
- warehouse_id (required, exists:warehouses): Receiving warehouse for this receipt
- notes (optional, string): Free-text notes attached to the receipt
- receipt_lines (required, min 1):
- inbound_shipment_line_id (required, exists:inbound_shipment_lines): Must belong to this inbound shipment
- quantity (required, numeric, min 0.0001)
Side effects:
- Creates an
inbound_shipment_receiptsrow + per-lineinbound_shipment_receipt_linesrows - Creates a FIFO layer + InventoryMovement per line (TYPE_PURCHASE_RECEIPT) at the receipt's warehouse
- Increments
received_quantityon each InboundShipmentLine and the matching PurchaseOrderLine - Transitions the InboundShipment to
partially_receivedorreceived(setsfully_received_atwhen all lines are fully received)
Serial numbers: for a serial-tracked product, a line may carry serials (one per unit received). An empty list is accepted. A non-empty list must match the line quantity (in Auto generation mode it may be shorter, and the rest are generated), must not repeat a serial, and must not name a serial that already exists. Otherwise the request returns 422 with a message naming the serial.
Requires permission: purchase_orders.receive
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
Response Headers
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.