Developer docs menu

API reference / Purchase orders

Purchase orders API

5 endpoints. Scopes: Scalar360.purchase-orders.READ, .CREATE, .UPDATE, .DELETE or .ALL. All calls need Authorization: Scalar360-oauthtoken <access_token> — see Authentication.

GET

List purchase orders

/api/v1/purchase-orders

Scope: Scalar360.purchase-orders.READ

ParameterInTypeRequired
vendorIdquerystring (uuid)No
startDatequerystring (date)No
endDatequerystring (date)No
qquerystringNo
billingquerystringNo
pagequeryintegerNo
pageSizequeryintegerNo
sortByquerystringNo
sortDirquerystringNo
Example request
curl -X GET "https://api.scalar360.com/api/v1/purchase-orders" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
POST

Create purchase order

/api/v1/purchase-orders

Scope: Scalar360.purchase-orders.CREATE

Body fieldTypeRequiredNotes
vendorIdstring (uuid)Yes
orderDatestring (date)Yes
dueDatestring (date)
notesstring
internalNotesstring
itemsarray of objectYesrequired, not empty
items[].itemNamestringYesrequired, not blank, max length 200
items[].descriptionstring
items[].inventoryItemIdstring (uuid)
items[].quantitynumberYesrequired, >= 0.01
items[].unitstring
items[].ratenumberYesrequired, >= 0.01
items[].taxRatenumber>= 0
items[].discountPercentnumber>= 0, <= 100
Example request
curl -X POST "https://api.scalar360.com/api/v1/purchase-orders" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"vendorId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","orderDate":"2026-10-12","items":[{"itemName":"string","description":"string","inventoryItemId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","quantity":100,"unit":"string","rate":100}]}'
GET

Get purchase order

/api/v1/purchase-orders/{id}

Scope: Scalar360.purchase-orders.READ

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X GET "https://api.scalar360.com/api/v1/purchase-orders/{id}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
PUT

Update purchase order

/api/v1/purchase-orders/{id}

Scope: Scalar360.purchase-orders.UPDATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
vendorIdstring (uuid)
orderDatestring (date)
dueDatestring (date)
notesstring
internalNotesstring
itemsarray of objectYesrequired, not empty
items[].itemNamestringYesrequired, not blank, max length 200
items[].descriptionstring
items[].inventoryItemIdstring (uuid)
items[].quantitynumberYesrequired, >= 0.01
items[].unitstring
items[].ratenumberYesrequired, >= 0.01
items[].taxRatenumber>= 0
items[].discountPercentnumber>= 0, <= 100
Example request
curl -X PUT "https://api.scalar360.com/api/v1/purchase-orders/{id}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"vendorId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","orderDate":"2026-10-12","dueDate":"2026-10-12","notes":"string","internalNotes":"string","items":[{"itemName":"string","description":"string","inventoryItemId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","quantity":100,"unit":"string","rate":100}]}'
DELETE

Delete purchase order

/api/v1/purchase-orders/{id}

Scope: Scalar360.purchase-orders.DELETE

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X DELETE "https://api.scalar360.com/api/v1/purchase-orders/{id}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"