API reference
Purchase orders
On this page
List purchase orders
/purchase-ordersRequired scopes:read_orders
Query parameters
| Name | Type | Description |
|---|---|---|
limit | integer | Page size, 1–250 (default 50). default 50 · min 1 · max 250 |
cursor | string | next_cursor from the previous page. |
updated_since | string<date-time> | Only objects changed at or after this ISO-8601 time. |
created_since | string<date-time> | Only objects created at or after this ISO-8601 time. |
status | string | Status. One of: |
order_id | integer | For this order. |
supplier_id | integer | To this supplier. |
Example request
curl "https://api.sellorchard.com/v1/purchase-orders?limit=50" \
-H "Authorization: Bearer $SELLORCHARD_API_KEY"Response200Purchase orders.
ShowHide response schema
dataarray of PurchaseOrderrequiredShowHide item attributes
objectstringrequiredidintegerrequiredId.
numberstringrequiredPO number.
statusstringrequiredStatus.
One of:
draftsentacceptedshippedcancelledfailedsupplier_idinteger | nullrequiredSupplier (dropshipping).
providerstring | nullrequiredPrint-on-demand provider.
One of:
printfulprintifyorder_idinteger | nullrequiredOrder.
line_itemsarray of objectrequiredShowHide item attributes
order_item_idinteger | nullOrder line.
variant_idinteger | nullVariant.
namestring | nullName.
skustring | nullSKU.
supplier_skustring | nullSupplier SKU.
quantityintegerUnits.
unit_coststring | nullUnit cost.
pattern ^-?\d+\.\d{2}$
ship_toobject | nullrequiredName, company, line1, line2, city, region, postcode, country, phone and email.
currencystring | nullrequiredCost currency.
cost_totalstring | nullrequiredTotal cost.
pattern ^-?\d+\.\d{2}$
trackingarray of objectrequiredShipments reported (carrier, number, url).
test_modebooleanrequiredRecorded but never sent (free trial).
sent_atstring<date-time> | nullrequiredSent.
shipped_atstring<date-time> | nullrequiredShipped.
cancelled_atstring<date-time> | nullrequiredCancelled.
created_atstring<date-time>requiredCreated.
updated_atstring<date-time>requiredLast changed.
has_morebooleanrequiredMore pages after this one.
next_cursorstring | nullrequiredPass as
cursorfor the next page; null on the last page.
{
"data": [
{
"object": "purchase_order",
"id": 9,
"number": "PO-1009",
"status": "sent",
"supplier_id": 2,
"provider": null,
"order_id": 5521,
"line_items": [
{
"order_item_id": 9001,
"variant_id": 311,
"name": "Organic cotton tee",
"sku": "TEE-BL-L",
"supplier_sku": "AC-TEE-77",
"quantity": 2,
"unit_cost": "9.50"
}
],
"ship_to": {
"name": "Ann Lee",
"company": null,
"line1": "1 Main St",
"line2": "Apt 2",
"city": "Austin",
"region": "TX",
"postcode": "73301",
"country": "US",
"phone": "+15125550199",
"email": "ann@example.com"
},
"currency": "USD",
"cost_total": "19.00",
"tracking": [],
"test_mode": false,
"sent_at": "2026-11-02T15:00:00Z",
"shipped_at": null,
"cancelled_at": null,
"created_at": "2026-11-02T15:00:00Z",
"updated_at": "2026-11-02T15:00:00Z"
}
],
"has_more": false,
"next_cursor": null
}Error responses
- 400
invalid_requestMalformed request (e.g. a bad cursor). - 401
authenticationMissing, invalid, expired or revoked API key. - 403
permissionThe key lacks the scope, or the store's plan doesn't include the API. - 422
invalid_requestInvalid parameters;errorslists each field. - 429
rate_limitedToo many requests. - 500
serverSomething went wrong on our side; safe to retry with the same Idempotency-Key.
Get a purchase order
/purchase-orders/{id}Required scopes:read_orders
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer | The object id. |
Example request
curl "https://api.sellorchard.com/v1/purchase-orders/120" \
-H "Authorization: Bearer $SELLORCHARD_API_KEY"Response200A purchase order.
ShowHide response schema
dataPurchaseOrderrequiredShowHide child attributes
objectstringrequiredidintegerrequiredId.
numberstringrequiredPO number.
statusstringrequiredStatus.
One of:
draftsentacceptedshippedcancelledfailedsupplier_idinteger | nullrequiredSupplier (dropshipping).
providerstring | nullrequiredPrint-on-demand provider.
One of:
printfulprintifyorder_idinteger | nullrequiredOrder.
line_itemsarray of objectrequiredShowHide item attributes
order_item_idinteger | nullOrder line.
variant_idinteger | nullVariant.
namestring | nullName.
skustring | nullSKU.
supplier_skustring | nullSupplier SKU.
quantityintegerUnits.
unit_coststring | nullUnit cost.
pattern ^-?\d+\.\d{2}$
ship_toobject | nullrequiredName, company, line1, line2, city, region, postcode, country, phone and email.
currencystring | nullrequiredCost currency.
cost_totalstring | nullrequiredTotal cost.
pattern ^-?\d+\.\d{2}$
trackingarray of objectrequiredShipments reported (carrier, number, url).
test_modebooleanrequiredRecorded but never sent (free trial).
sent_atstring<date-time> | nullrequiredSent.
shipped_atstring<date-time> | nullrequiredShipped.
cancelled_atstring<date-time> | nullrequiredCancelled.
created_atstring<date-time>requiredCreated.
updated_atstring<date-time>requiredLast changed.
{
"data": {
"object": "purchase_order",
"id": 9,
"number": "PO-1009",
"status": "sent",
"supplier_id": 2,
"provider": null,
"order_id": 5521,
"line_items": [
{
"order_item_id": 9001,
"variant_id": 311,
"name": "Organic cotton tee",
"sku": "TEE-BL-L",
"supplier_sku": "AC-TEE-77",
"quantity": 2,
"unit_cost": "9.50"
}
],
"ship_to": {
"name": "Ann Lee",
"company": null,
"line1": "1 Main St",
"line2": "Apt 2",
"city": "Austin",
"region": "TX",
"postcode": "73301",
"country": "US",
"phone": "+15125550199",
"email": "ann@example.com"
},
"currency": "USD",
"cost_total": "19.00",
"tracking": [],
"test_mode": false,
"sent_at": "2026-11-02T15:00:00Z",
"shipped_at": null,
"cancelled_at": null,
"created_at": "2026-11-02T15:00:00Z",
"updated_at": "2026-11-02T15:00:00Z"
}
}Error responses
- 401
authenticationMissing, invalid, expired or revoked API key. - 403
permissionThe key lacks the scope, or the store's plan doesn't include the API. - 404
not_foundNo such object in this store. - 429
rate_limitedToo many requests. - 500
serverSomething went wrong on our side; safe to retry with the same Idempotency-Key.