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
| Parameter | In | Type | Required |
|---|---|---|---|
vendorId | query | string (uuid) | No |
startDate | query | string (date) | No |
endDate | query | string (date) | No |
q | query | string | No |
billing | query | string | No |
page | query | integer | No |
pageSize | query | integer | No |
sortBy | query | string | No |
sortDir | query | string | No |
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 field | Type | Required | Notes |
|---|---|---|---|
vendorId | string (uuid) | Yes | |
orderDate | string (date) | Yes | |
dueDate | string (date) | ||
notes | string | ||
internalNotes | string | ||
items | array of object | Yes | required, not empty |
items[].itemName | string | Yes | required, not blank, max length 200 |
items[].description | string | ||
items[].inventoryItemId | string (uuid) | ||
items[].quantity | number | Yes | required, >= 0.01 |
items[].unit | string | ||
items[].rate | number | Yes | required, >= 0.01 |
items[].taxRate | number | >= 0 | |
items[].discountPercent | number | >= 0, <= 100 |
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
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | Yes |
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
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | Yes |
| Body field | Type | Required | Notes |
|---|---|---|---|
vendorId | string (uuid) | ||
orderDate | string (date) | ||
dueDate | string (date) | ||
notes | string | ||
internalNotes | string | ||
items | array of object | Yes | required, not empty |
items[].itemName | string | Yes | required, not blank, max length 200 |
items[].description | string | ||
items[].inventoryItemId | string (uuid) | ||
items[].quantity | number | Yes | required, >= 0.01 |
items[].unit | string | ||
items[].rate | number | Yes | required, >= 0.01 |
items[].taxRate | number | >= 0 | |
items[].discountPercent | number | >= 0, <= 100 |
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
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | Yes |
curl -X DELETE "https://api.scalar360.com/api/v1/purchase-orders/{id}" \
-H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"