Create purchase order
POST
/api/purchase-orders
const url = 'http://localhost:3000/api/purchase-orders';const options = { method: 'POST', headers: {cookie: 'session=<session>', 'Content-Type': 'application/json'}, body: '{"poNumber":"example","supplierName":"example","status":"draft","orderDate":"2026-04-15T12:00:00Z","expectedDelivery":"2026-04-15T12:00:00Z","notes":"example","items":[{"description":"example","categoryId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","manufacturerId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","quantityOrdered":1,"unitCost":1,"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 \ --header 'Content-Type: application/json' \ --cookie session=<session> \ --data '{ "poNumber": "example", "supplierName": "example", "status": "draft", "orderDate": "2026-04-15T12:00:00Z", "expectedDelivery": "2026-04-15T12:00:00Z", "notes": "example", "items": [ { "description": "example", "categoryId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "manufacturerId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantityOrdered": 1, "unitCost": 1, "notes": "example" } ] }'Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ” Media type application/json
object
poNumber
required
Unique
string
supplierName
string
status
string
orderDate
string format: date-time
expectedDelivery
string format: date-time
notes
string
items
required
Array<object>
object
description
required
string
categoryId
string format: uuid
manufacturerId
string format: uuid
quantityOrdered
integer
unitCost
number
notes
string
Responses
Section titled “ Responses ”Purchase order created (with items)
Media type application/json
object
data
object
id
required
string format: uuid
poNumber
required
string
supplierName
string
status
required
string
orderDate
string format: date-time
expectedDelivery
string format: date-time
receivedDate
string format: date-time
totalValue
Numeric(12,2) serialised as string — recalculated server-side from items
string
notes
string
createdBy
string format: uuid
itemCount
List endpoint only
integer
items
Detail endpoint only
Array<object>
object
id
required
string format: uuid
poId
required
string format: uuid
description
required
string
categoryId
string format: uuid
categoryName
string
manufacturerId
string format: uuid
manufacturerName
string
quantityOrdered
required
integer
quantityReceived
required
integer
unitCost
Numeric(12,2) serialised as string
string
totalCost
Numeric(12,2) serialised as string
string
notes
string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
Example
{ "data": { "status": "draft" }}PoNumber and at least one item are required
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"}