Receive purchase order items
POST
/api/purchase-orders/{id}/receive
const url = 'http://localhost:3000/api/purchase-orders/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/receive';const options = { method: 'POST', headers: {cookie: 'session=<session>', 'Content-Type': 'application/json'}, body: '{"items":[{"itemId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","quantity":1,"assets":[{"serialNumber":"example","assetTag":"example","siteId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","locationId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","notes":"example"}]}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:3000/api/purchase-orders/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/receive \ --header 'Content-Type: application/json' \ --cookie session=<session> \ --data '{ "items": [ { "itemId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1, "assets": [ { "serialNumber": "example", "assetTag": "example", "siteId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "locationId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "notes": "example" } ] } ] }'PO must be ordered or partially_received. Creates one asset per received unit, updates quantityReceived per line, and advances the PO status (setting receivedDate when fully received).
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ” id
required
string format: uuid
Request Body required
Section titled “Request Body required ” Media type application/json
object
items
required
Array<object>
object
itemId
required
string format: uuid
quantity
required
Must not exceed the remaining quantity on the line
integer
assets
required
One entry per received unit (length must equal quantity)
Array<object>
object
serialNumber
string
assetTag
string
siteId
string format: uuid
locationId
string format: uuid
notes
string
Example generated
{ "items": [ { "itemId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1, "assets": [ { "serialNumber": "example", "assetTag": "example", "siteId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "locationId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "notes": "example" } ] } ]}Responses
Section titled “ Responses ”Units received, assets created
Media type application/json
object
data
object
assetIds
Array<string>
count
integer
Example generated
{ "data": { "assetIds": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "count": 1 }}Validation error (PO not receivable, quantity exceeds remaining, or asset count mismatch)
Media type application/json
object
error
required
string
Example
{ "error": "Not found"}Not authenticated
Media type application/json
object
error
required
string
Example
{ "error": "Not found"}Insufficient role
Media type application/json
object
error
required
string
Example
{ "error": "Not found"}Purchase order or item not found
Media type application/json
object
error
required
string
Example
{ "error": "Not found"}