One record per delivery against a purchase order: what came in, to where, on what date, at what cost. Recording a receipt moves stock, so it requires an Idempotency-Key; voiding one reverses the movement instead of editing a number back down.
Books a delivery against the order: quantities per line, rejected units and their disposition, per-line cost corrections, bins and lots, plus unordered items that arrived. Stock is written to Shopify from a queue; the receipt's shopify_sync says when it landed. Over-delivery follows the store's setting. Requires an Idempotency-Key header.
Path
idintegerpathrequired
Headers
Idempotency-Keystringheaderrequired
Unique per request, up to 255 characters. The same key with the same body replays the stored response; with a different body it is 409 idempotency_key_reused.
BodyJSON
location_idintegerrequired
Shopify location the goods arrived at.
received_atstring (date) or null
notestring or null
invoice_referencestring or null
invoice_totalnumber or string or null
invoice_datestring (date) or null
exchange_ratenumber or null
Store currency per 1 unit of the order currency, if it differs from the order's.
route_to_destinationsboolean or null
Receive each line at its own location_id instead of one location.
rejected_dispositionstring or null
What happens to rejected units - keep them outstanding for a replacement, or remove them from the order.
replaceremove
linesarray of objectrequired
Every line to receive against. Zero quantity is allowed (nothing arrived on that line).
line_idintegerrequired
quantitynumberrequired
rejectedinteger or null
unit_costnumber or string or null
A receive-time cost correction.
bin_locationstring or null
lot_numberstring or null
lot_expirystring (date) or null
lot_manufacturedstring (date) or null
lot_idinteger or null
unorderedarray of object
Items that arrived without a line. Added to the order and received in one step.
variant_idinteger or null
inventory_item_idinteger or null
product_titlestring or null
variant_titlestring or null
skustring or null
barcodestring or null
quantitynumberrequired
unit_costnumber or string or null
Responses
201
The order after the receipt, with the receipt embedded in receipts.
Reverses the receipt - quantities return to outstanding and the stock movement is reversed in Shopify. The receipt stays in the list with voided_at set.