Lewati ke konten

Get a sales order

Returns a sales order by id, with lines, sales-return totals, per-item fulfillment progress, and linked stock transactions.

Use /v1/sales-orders/by-number/{order_number} for lookup by order number. Per-line pending quantity is not available because fulfillment transactions are tracked per item.

GEThttps://rest.boxhero-app.com/v1/sales-orders/{order_id}
Authorizationstringwajib

Header autentikasi Bearer dengan format Bearer <token>, dengan <token> berupa token API Anda.

order_idintegerminimum 0, maximum 2147483647wajib

Order id. Use GET /orders/by-number/{order_number} to look up by order number.

200The requested sales order.
itemSalesOrderwajib

A sales order with lines, per-line sales-return totals, per-item fulfillment progress, linked transactions, and custom fields.

Tampilkan properti
idintegerminimum 0, maximum 2147483647wajib

Order id.

order_numberstringwajib

Order number.

order_timestringdate-timewajib

Order date/time.

estimated_timestringdate-time, nullablewajib

Estimated fulfillment date/time.

statusstringwajib

Order status. Purchase and sales orders may also be draft.

Nilai yang mungkindraftconfirmedin-progressdone

partnerEntitynullablewajib

Supplier for purchase orders or customer for sales orders.

Tampilkan properti
idintegerminimum 0, maximum 2147483647wajib

Id of the referenced entity.

namestringwajib

Display name of the entity at the time the transaction was recorded.

deletedbooleanwajib

true when the underlying entity has since been deleted. The embedded snapshot is preserved so historical transactions remain readable.

total_pricestringwajib

Cached order total as a decimal string: the sum of the line totals plus any additional costs. Does not equal the sum of items[].total when the order carries costs.

currency_codestringnullablewajib

ISO currency code, or null when unset.

memostringwajib

Free-text memo. Empty string when not set.

revisionintegerminimum -9007199254740991, maximum 9007199254740991wajib

Optimistic-concurrency version.

created_byEntitywajib

Reference to a related entity (location, partner, or user) embedded in a transaction. The snapshot is captured at transaction time and does not update if the source entity is later renamed or removed.

Tampilkan properti
idintegerminimum 0, maximum 2147483647wajib

Id of the referenced entity.

namestringwajib

Display name of the entity at the time the transaction was recorded.

deletedbooleanwajib

true when the underlying entity has since been deleted. The embedded snapshot is preserved so historical transactions remain readable.

created_atstringdate-timewajib

Server-side creation timestamp.

updated_atstringdate-timewajib

Last edit timestamp, or creation timestamp when never edited.

urlstringuriwajib

Web URL to view this order in the BoxHero app.

tagsarray of stringwajib

Read-only tags parsed from the memo.

custom_fieldsarray of objectwajib

Ordered custom field name-value pairs.

Tampilkan properti
namestringwajib
valuestringwajib
itemsarray of SalesOrderLinewajib

Detailed order lines, including per-line sales-return totals.

Tampilkan properti
idintegerminimum 0, maximum 2147483647wajib

Order line id.

rankintegerminimum -9007199254740991, maximum 9007199254740991wajib

Line rank in the order.

itemExtendedItemEntitynullablewajib

Set when the line references a single item.

Tampilkan properti
idintegerminimum 0, maximum 2147483647wajib

Item or bundle id.

namestringwajib

Display name.

skustringwajib

SKU. Empty string when unset.

barcodestringwajib

Barcode. Empty string when unset.

deletedbooleanwajib

Whether the underlying item or bundle is deleted.

bundleExtendedItemEntitynullablewajib

Set when the line references a bundle.

Tampilkan properti
idintegerminimum 0, maximum 2147483647wajib

Item or bundle id.

namestringwajib

Display name.

skustringwajib

SKU. Empty string when unset.

barcodestringwajib

Barcode. Empty string when unset.

deletedbooleanwajib

Whether the underlying item or bundle is deleted.

pricestringwajib

Unit price as stored on the line.

quantitynumberwajib

Quantity. May include up to four decimal places in core data.

tax_namestringnullablewajib

Tax name, or null when no tax is applied.

tax_ratestringnullablewajib

Tax rate as a percentage string.

tax_inclusivebooleannullablewajib

Whether the stored line price includes tax.

discount_namestringnullablewajib

Discount name, or null when no discount is applied.

discount_typestringnullablewajib

Discount type. "percent" is a 0-100 percentage; "amount" is an absolute amount.

Nilai yang mungkinpercentamount

discount_valuestringnullablewajib

Discount percentage or absolute amount.

subtotalstringwajib

price * quantity before discount and tax.

discount_amountstringwajib

Discount amount applied to this line.

tax_amountstringwajib

Inclusive plus exclusive tax amount for this line.

totalstringwajib

Final line total after discount and exclusive tax.

return_quantitynumberwajib

Quantity already returned across this order’s sales returns.

return_amountstringwajib

Amount already returned across this order’s sales returns.

costsarray of OrderCostwajib

Additional costs attached to the order, ordered by rank. Included in total_price but not in any items[] figure.

Tampilkan properti
namestringwajib

Cost name.

amountstringwajib

Cost amount. Negative for a deduction such as a prepayment. Additional costs carry no tax or discount, so the amount is the final value.

rankintegerminimum -9007199254740991, maximum 9007199254740991wajib

Cost rank in the order.

tx_itemsarray of FulfillmentTxItemwajib

Per-item fulfillment progress. Bundle lines are exploded and duplicate items are collapsed.

Tampilkan properti
itemExtendedItemEntitywajib

Reference to an item or bundle embedded in order, return, transaction, and bundle component responses.

Tampilkan properti
idintegerminimum 0, maximum 2147483647wajib

Item or bundle id.

namestringwajib

Display name.

skustringwajib

SKU. Empty string when unset.

barcodestringwajib

Barcode. Empty string when unset.

deletedbooleanwajib

Whether the underlying item or bundle is deleted.

ordered_quantitynumberwajib

Ordered or returned quantity for this item. Bundle lines are exploded into component quantities and duplicate items are collapsed.

fulfilled_quantitynumberwajib

Absolute quantity already fulfilled or received for this item.

pending_quantitynumberwajib

Remaining quantity for this item, clamped to zero when over-fulfilled.

transactionsarray of OrderTransactionSummarywajib

Inventory transactions linked to this order.

Tampilkan properti
idintegerminimum 0, maximum 2147483647wajib

Location transaction id.

typestringwajib

Fulfillment direction of an order-linked transaction.

Nilai yang mungkininout

transaction_timestringdate-timewajib

Effective transaction time.

to_locationEntitywajib

Reference to a related entity (location, partner, or user) embedded in a transaction. The snapshot is captured at transaction time and does not update if the source entity is later renamed or removed.

Tampilkan properti
idintegerminimum 0, maximum 2147483647wajib

Id of the referenced entity.

namestringwajib

Display name of the entity at the time the transaction was recorded.

deletedbooleanwajib

true when the underlying entity has since been deleted. The embedded snapshot is preserved so historical transactions remain readable.

count_of_itemsintegerminimum 0, maximum 9007199254740991wajib
total_quantitynumberwajib

Quantity. May include up to four decimal places in core data.

401Missing or invalid API token.
idstringwajib

Unique exception id (ex_ followed by 32 lowercase hex chars, no dashes — e.g. ex_8f5c0c8e0e0a4a3c9b3f4f2c4f6c8d2a). Quote this in support tickets so we can find the request in our logs.

typestringwajib

Stable, machine-readable error code (RFC 7807-style URI fragment). Branch your error handling on this, not on title.

Nilai yang mungkin/errors/not-found/errors/invalid-request/errors/invalid-team-mode/errors/tokens/invalid/errors/tokens/required/errors/too-many-requests/errors/core/usage-limit-exceeded/errors/core/forbidden/errors/core/unhandled/errors/unhandled

titlestringwajib

Human-readable summary of the error, in English.

correlationIDstringwajib

Request correlation id (rq_ followed by 32 lowercase hex chars, no dashes — e.g. rq_01abf3...). Identical to the X-Correlation-Id response header. Pass an X-Correlation-Id request header to thread your trace through to ours.

instancestringwajib

Pointer to the specific failing resource (e.g. /items/12345). Path-only, no /v1 version prefix.

codestring

Sub-reason code surfaced from upstream BoxHero core (on core-mapped 4xx) or from the gateway itself (e.g. not-available-for-api-token on 403). Use this for fine-grained branching after dispatching on type.

errorsarray of object

Field-level error details. Present on /errors/invalid-request (400) responses. Each entry locates a single failure via JSONPath-like path segments and a human-readable message.

Tampilkan properti
patharray of string | numberwajib
messagestringwajib
404No sales order with the given id or number was found in this team.
idstringwajib

Unique exception id (ex_ followed by 32 lowercase hex chars, no dashes — e.g. ex_8f5c0c8e0e0a4a3c9b3f4f2c4f6c8d2a). Quote this in support tickets so we can find the request in our logs.

typestringwajib

Stable, machine-readable error code (RFC 7807-style URI fragment). Branch your error handling on this, not on title.

Nilai yang mungkin/errors/not-found/errors/invalid-request/errors/invalid-team-mode/errors/tokens/invalid/errors/tokens/required/errors/too-many-requests/errors/core/usage-limit-exceeded/errors/core/forbidden/errors/core/unhandled/errors/unhandled

titlestringwajib

Human-readable summary of the error, in English.

correlationIDstringwajib

Request correlation id (rq_ followed by 32 lowercase hex chars, no dashes — e.g. rq_01abf3...). Identical to the X-Correlation-Id response header. Pass an X-Correlation-Id request header to thread your trace through to ours.

instancestringwajib

Pointer to the specific failing resource (e.g. /items/12345). Path-only, no /v1 version prefix.

codestring

Sub-reason code surfaced from upstream BoxHero core (on core-mapped 4xx) or from the gateway itself (e.g. not-available-for-api-token on 403). Use this for fine-grained branching after dispatching on type.

errorsarray of object

Field-level error details. Present on /errors/invalid-request (400) responses. Each entry locates a single failure via JSONPath-like path segments and a human-readable message.

Tampilkan properti
patharray of string | numberwajib
messagestringwajib
429Rate limit exceeded. Check RateLimit, Retry-After, and X-RateLimit-* response headers before retrying.
idstringwajib

Unique exception id (ex_ followed by 32 lowercase hex chars, no dashes — e.g. ex_8f5c0c8e0e0a4a3c9b3f4f2c4f6c8d2a). Quote this in support tickets so we can find the request in our logs.

typestringwajib

Stable, machine-readable error code (RFC 7807-style URI fragment). Branch your error handling on this, not on title.

Nilai yang mungkin/errors/not-found/errors/invalid-request/errors/invalid-team-mode/errors/tokens/invalid/errors/tokens/required/errors/too-many-requests/errors/core/usage-limit-exceeded/errors/core/forbidden/errors/core/unhandled/errors/unhandled

titlestringwajib

Human-readable summary of the error, in English.

correlationIDstringwajib

Request correlation id (rq_ followed by 32 lowercase hex chars, no dashes — e.g. rq_01abf3...). Identical to the X-Correlation-Id response header. Pass an X-Correlation-Id request header to thread your trace through to ours.

instancestringwajib

Pointer to the specific failing resource (e.g. /items/12345). Path-only, no /v1 version prefix.

codestring

Sub-reason code surfaced from upstream BoxHero core (on core-mapped 4xx) or from the gateway itself (e.g. not-available-for-api-token on 403). Use this for fine-grained branching after dispatching on type.

errorsarray of object

Field-level error details. Present on /errors/invalid-request (400) responses. Each entry locates a single failure via JSONPath-like path segments and a human-readable message.

Tampilkan properti
patharray of string | numberwajib
messagestringwajib

Permintaan

Terminal window
curl --request GET \
--url 'https://rest.boxhero-app.com/v1/sales-orders/{order_id}' \
--header "Authorization: Bearer $BOXHERO_API_TOKEN"

Respons

{
"item": {
"id": 90201,
"order_number": "SO-2001",
"order_time": "2026-01-15T09:30:00.000Z",
"estimated_time": "2026-01-20T00:00:00.000Z",
"status": "confirmed",
"partner": {
"id": 431488,
"name": "Northwind Retail",
"deleted": false
},
"total_price": "2187.56",
"currency_code": "USD",
"memo": "",
"revision": 3,
"created_by": {
"id": 1001,
"name": "John Smith",
"deleted": false
},
"created_at": "2026-01-15T09:30:00.000Z",
"updated_at": "2026-01-15T09:30:00.000Z",
"url": "https://app.boxhero-app.com/sales-orders/90201",
"tags": [
"wholesale"
],
"custom_fields": [],
"items": [
{
"id": 700201,
"rank": 0,
"item": {
"id": 14290445,
"name": "Finish Setting Powder",
"sku": "SKU-12345678",
"barcode": "2097678335587",
"deleted": false
},
"bundle": null,
"price": "19.99",
"quantity": 100,
"tax_name": null,
"tax_rate": null,
"tax_inclusive": null,
"discount_name": null,
"discount_type": null,
"discount_value": null,
"subtotal": "1999.00",
"discount_amount": "0.00",
"tax_amount": "0.00",
"total": "1999.00",
"return_quantity": 5,
"return_amount": "99.95"
},
{
"id": 700202,
"rank": 1,
"item": {
"id": 14290446,
"name": "Hydrating Face Toner",
"sku": "SKU-12345679",
"barcode": "2097678335588",
"deleted": false
},
"bundle": null,
"price": "12.50",
"quantity": 20,
"tax_name": "Sales Tax",
"tax_rate": "8.25",
"tax_inclusive": false,
"discount_name": "Volume discount",
"discount_type": "percent",
"discount_value": "10",
"subtotal": "250.00",
"discount_amount": "25.00",
"tax_amount": "18.56",
"total": "243.56",
"return_quantity": 0,
"return_amount": "0.00"
}
],
"costs": [
{
"name": "Shipping fee",
"amount": "45.00",
"rank": 0
},
{
"name": "Prepayment",
"amount": "-100.00",
"rank": 1
}
],
"tx_items": [
{
"item": {
"id": 14290445,
"name": "Finish Setting Powder",
"sku": "SKU-12345678",
"barcode": "2097678335587",
"deleted": false
},
"ordered_quantity": 100,
"fulfilled_quantity": 60,
"pending_quantity": 40
},
{
"item": {
"id": 14290446,
"name": "Hydrating Face Toner",
"sku": "SKU-12345679",
"barcode": "2097678335588",
"deleted": false
},
"ordered_quantity": 20,
"fulfilled_quantity": 20,
"pending_quantity": 0
}
],
"transactions": [
{
"id": 14012345,
"type": "out",
"transaction_time": "2026-01-16T11:00:00.000Z",
"to_location": {
"id": 47041,
"name": "Warehouse",
"deleted": false
},
"count_of_items": 1,
"total_quantity": 100
}
]
}
}