Receive Purchase Order Lines

Receives purchase order lines into stock. Raises on-hand quantities, writes inventory layers, recomputes landed cost and records activity — the same bookkeeping as reconciling a delivery in the app. Rejects the whole request if any line or location cannot be resolved. Only a purchase order in `PAID`, `PARTIALLY_RECEIVED` or `RECEIVED` status can be received, and any other status returns `409`. A purchase order that has already been fully received also returns `409` — undo receiving first. A line may be received in a larger quantity than was ordered, but a line whose received quantity already equals or exceeds its ordered quantity returns `409` — undo its receipt first. Requires scope: `purchase_orders:write`

Authentication

API_KEYstring
API Key authentication via header

Path parameters

idUUIDRequired
Purchase order ID.

Request

This endpoint expects an object.
itemslist of objectsRequired
Lines being received. At least one, at most 500.

Response

This endpoint returns a list of objects.
idUUID
Unique identifier for the received record.
createdAtdatetime
ISO 8601 timestamp when the record was created.
updatedAtdatetime
ISO 8601 timestamp when the record was last updated.
purchaseOrderItemIdUUIDOptional
The purchase order line this was received against.
materialobjectOptional
The material received.
variationobjectOptional
The variation received.
locationobjectOptional
Where it was received.
quantitydoubleOptional
Quantity received.
pricedoubleOptional
Unit cost paid.
costForClientdoubleOptional
Unit price charged to the client.
notestringOptional
Note recorded with the receipt.
serialNumberslist of stringsOptional
Serial numbers received.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
429
Rate Limit Error