Get Sales Order

GET /accounting/sales-orders/{id}

Group: Accounting › Sales Orders · Operation ID: getSalesOrder

Fetch a single sales order by its id (a UUID), bound from the :id path segment. Returns the order header with its customer, entity and external identifiers — the same item schema as POST accounting/sales-orders/search. Read-only. Raises NOT_FOUND when no order has that id (should map to 404). Every request must carry the Api-Version header.

Open in the interactive reference

Parameters

Name In Type Required Description
Api-Version header "v1" yes The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1.
id path string yes Id of the sales order to fetch (a UUID); bound from the :id path segment.

Response

200 Success

Under data (getSalesOrderOutput):

Field Type Required Description
id string yes Id of the sales order (a UUID) — the public identifier used by GET accounting/sales-orders/:id.
orderNumber string yes System-assigned sales-order number. Human-readable reference used on invoices and proposals.
orderType string no Type of sales order, e.g. new business, renewal, expansion, downgrade.
approvalStatus string no Approval state of the order. An ApprovalStatus member, e.g. 'draft', 'pendingApproval', 'approved'.
bookDate string (date) yes Date the order was booked (YYYY-MM-DD). Drives revenue-recognition period assignment.
serviceStartDate string (date) no First date services or products under this order are delivered (YYYY-MM-DD).
serviceEndDate string (date) no Last date services or products under this order are delivered (YYYY-MM-DD). Absent for evergreen orders.
signDate string (date) no Date the order was signed (YYYY-MM-DD), when recorded.
salesEffectiveDate string (date) no Date the order becomes effective for sales reporting (YYYY-MM-DD), when recorded.
isEvergreen boolean no True when the order renews indefinitely rather than ending on serviceEndDate.
excludeFromTaxEngine boolean no When true, invoices, credit memos and debit memos from this order are never submitted to the tax engine.
term string (decimal) no Contract term length in months. Absent for evergreen (open-ended) orders.
currency string yes ISO 4217 three-letter currency code (e.g. USD, EUR, GBP) the order is denominated in.
totalContract string (decimal) no Total contract value across all line items, in the order currency (see currency).
invoicedAmount string (decimal) no Amount already invoiced against the contract value, in the order currency (see currency). The remaining backlog is totalContract − invoicedAmount.
oneTimeDiscountAmount string (decimal) no Lump-sum discount applied to the entire order, in the order currency (see currency).
oneTimeDiscountAllocation string no How the lump-sum discount is allocated across products. One of 'firstInvoice', 'alignToInvoiceFrequency'.
paymentTerm string no Payment-term identifier or display name applied to invoices from this order.
purchaseOrder string no The customer's own purchase-order reference for this order, when supplied.
memo string no Free-text memo recorded on the order.
crmContractId string no Identifier of the originating contract in the CRM, when the order came from one.
salesArrangement string no Number of the sales arrangement this order belongs to.
salesArrangementId string no Id of that sales arrangement (a UUID) — the form a write action accepts.
paymentTermId string no Id of the payment term (a UUID). paymentTerm carries its code; this is the form a write action accepts.
opportunityId string no Identifier of the opportunity this order came from, as issued by the CRM — not an id from this API.
opportunityName string no Name of that CRM opportunity.
dataSource string no System the order originated in when it was integrated rather than entered here, e.g. 'Salesforce'.
priceBookId string no Id of the price book this order's prices were taken from (a UUID).
priceBookName string no Name of that price book, denormalised onto the order.
externalizedInvoicing boolean no True when invoicing for this order happens in another system, so no invoices are generated from it here.
customer object yes Customer denormalised from the linked Customer record (key fields only). Fetch the full record from GET accounting/customers/:id.
customer.id string yes Id of the customer (a UUID).
customer.customerNumber string no System-assigned customer reference number.
customer.name string yes Legal or business name of the customer.
customer.invoiceEmail string no Email that receives invoices for this customer.
customer.mainEmail string no Primary business contact email for the customer.
customer.segment string no Market-segment classification. One of 'SMB', 'MidMarket', 'Enterprise'.
customer.taxExempt boolean no True if the customer is exempt from tax on all transactions.
entityId string yes Id of the legal entity that owns this sales order (a UUID).
entityName string no Name of the owning legal entity.
entityNumber string yes System-assigned number of the legal entity that owns this order.
soldToAddress object yes Sold-to address used for tax determination on this order.
soldToAddress.addressId string no Id of the address record (a UUID), when one is stored.
soldToAddress.line1 string yes Street address line 1: number, street name, or PO box.
soldToAddress.line2 string no Apartment, suite, unit, building, floor, etc.
soldToAddress.city string yes City or locality.
soldToAddress.stateProvince string no State, province, or region.
soldToAddress.country string yes Country name or ISO 3166-1 country code.
soldToAddress.zipCode string yes Postal code or ZIP code as required by the country postal system.
billToAddress object yes Bill-to address where invoices from this order are sent.
billToAddress.addressId string no Id of the address record (a UUID), when one is stored.
billToAddress.line1 string yes Street address line 1: number, street name, or PO box.
billToAddress.line2 string no Apartment, suite, unit, building, floor, etc.
billToAddress.city string yes City or locality.
billToAddress.stateProvince string no State, province, or region.
billToAddress.country string yes Country name or ISO 3166-1 country code.
billToAddress.zipCode string yes Postal code or ZIP code as required by the country postal system.
subscriptions array of object yes Subscriptions on the order, one entry per subscription, each with the product lines that belong to it. Mirrors the subscriptions[] the create action takes.
subscriptions[].id string no Id of the subscription (a UUID). Absent when the line records only a subscription number.
subscriptions[].subscriptionNumber string (decimal) no System-assigned subscription number.
subscriptions[].externalSubscriptionId string no The subscribing system's own id for this subscription, when the order was integrated from one.
subscriptions[].termType string no Whether the subscription runs to a fixed end date or renews indefinitely. One of 'termed', 'evergreen'.
subscriptions[].autoRenew boolean no True when the subscription renews automatically at the end of its term.
subscriptions[].serviceStartDate string (date) no First date the subscription delivers service (YYYY-MM-DD).
subscriptions[].serviceEndDate string (date) no Last date the subscription delivers service (YYYY-MM-DD). Absent while evergreen. Create takes a term in months instead; this is what that term resolved to.
subscriptions[].products array of object yes Product lines in this subscription. Each entry is a SalesOrderProductLine and may carry tiered pricing, rate-card pricing, ramp deals, or per-item breakdowns.
subscriptions[].products[].productCode string yes Company-specific code of the product.
subscriptions[].products[].productId string yes Id of the product (a UUID).
subscriptions[].products[].productLineId string yes Id of the product line under the product (a UUID).
subscriptions[].products[].productName string no Product name as recorded on this line. May differ from the product's current name — the line keeps the name it was sold under.
subscriptions[].products[].salesOrderProductLineId string no Id of this sales-order line (a UUID).
subscriptions[].products[].quantity string (decimal) yes Quantity of the product on this line. For ramp deals the per-period quantity is on each ramp instead.
subscriptions[].products[].listPrice string (decimal) no Per-unit list price before discounts.
subscriptions[].products[].unitPrice string (decimal) no Per-unit price after discounts. Equals listPrice − discountAmount, or listPrice * (1 − discountPercentage/100).
subscriptions[].products[].totalPrice string (decimal) no Total price for this line (unitPrice * quantity).
subscriptions[].products[].discountAmount string (decimal) no Per-unit discount in the order currency.
subscriptions[].products[].discountPercentage string (decimal) no Per-unit discount as a percentage (e.g. 10 for 10%).
subscriptions[].products[].invoiceFrequency string no How often invoices are generated for this line, e.g. monthly, quarterly, annually.
subscriptions[].products[].invoiceTiming string no Whether each invoice for this line is raised at the start or the end of the period it covers. One of 'inAdvance', 'inArrears'.
subscriptions[].products[].lineInvoiceDay string no Which day of the period the invoice is dated, e.g. 'firstDayOfMonth', 'specificDay', 'serviceStartDate'.
subscriptions[].products[].priceModel string no How the price is derived from quantity, e.g. 'flatFee', 'perUnit', 'tiered', 'volume'. Tiered and volume models carry their bands in tiers.
subscriptions[].products[].unitOfMeasure string no Unit the quantity is counted in, e.g. 'each', 'user', 'gigabyte'.
subscriptions[].products[].pricingTerm string no Period the unit price is quoted for, e.g. 'monthly', 'annual' — the basis prices are normalised to before invoicing.
subscriptions[].products[].serviceStartDate string (date) no First date services for this product are delivered (YYYY-MM-DD). Defaults to the order-level serviceStartDate.
subscriptions[].products[].serviceEndDate string (date) no Last date services for this product are delivered (YYYY-MM-DD). Defaults to the order-level serviceEndDate.
subscriptions[].products[].externalIdentifiers array of object yes External identifiers recorded against this line, one per configured field. Empty when none are.
subscriptions[].products[].externalIdentifiers[].fieldName string yes Configured field the identifier belongs to, e.g. 'salesforceLineId'.
subscriptions[].products[].externalIdentifiers[].value string yes The identifier's value in that external system.
subscriptions[].products[].externalIdentifiers[].externalUrl string no Deep link to the record in that system, when the configuration defines one.
subscriptions[].products[].overage object no Overage pricing for usage above the line's allowance. Present only when the product line has an allowance configured.
subscriptions[].products[].overage.listPrice string (decimal) no Per-unit list price for overage usage.
subscriptions[].products[].overage.unitPrice string (decimal) no Per-unit price for overage usage after discounts.
subscriptions[].products[].overage.discountAmount string (decimal) no Per-unit overage discount in the order currency.
subscriptions[].products[].overage.discountPercentage string (decimal) no Per-unit overage discount as a percentage.
subscriptions[].products[].rateCardEntries array of object no Rate-card rows for this line. Present when the product line uses rate-card pricing.
subscriptions[].products[].rateCardEntries[].id string yes Id of this rate-card entry (a UUID).
subscriptions[].products[].rateCardEntries[].identifier string no BillableComponent identifier this rate-card row meters.
subscriptions[].products[].rateCardEntries[].label string no Free-text label for this rate-card row, used as an additional discriminator alongside the identifier.
subscriptions[].products[].rateCardEntries[].unitOfMeasure string yes Unit in which this rate-card row is priced.
subscriptions[].products[].rateCardEntries[].unitPrice string (decimal) yes Per-unit rate negotiated for this order.
subscriptions[].products[].rateCardEntries[].currency string yes ISO 4217 currency code for this rate-card row.
subscriptions[].products[].tiers array of object no Pricing tiers for this product line. Present only for tiered, volume or stairstep price models.
subscriptions[].products[].tiers[].fromQuantity string (decimal) yes Lower bound of the quantity range (inclusive).
subscriptions[].products[].tiers[].toQuantity string (decimal) no Upper bound of the quantity range (inclusive). Absent on an open-ended last tier.
subscriptions[].products[].tiers[].unitPrice string (decimal) yes Per-unit price for quantities in this tier.
subscriptions[].products[].tiers[].listPrice string (decimal) no Per-unit list price before discount.
subscriptions[].products[].tiers[].priceModel string no Per-tier price model. One of 'flat', 'perUnit'.
subscriptions[].products[].tags array of object no Value-accounting tags applied to this product, as dimension/value pairs. Tags propagate to journal-entry lines for dimensional reporting.
subscriptions[].products[].tags[].dimension string yes Tag dimension name, e.g. 'Department', 'Project'.
subscriptions[].products[].tags[].value string yes Value within the dimension, e.g. 'Engineering', 'Alpha-2026'.
subscriptions[].products[].items array of object no Per-item breakdown: one entry per SalesOrderProductItem (product x inventory item) under this sales-order product. Present only for inventory-tracked products.
subscriptions[].products[].items[].id string yes Id of this SalesOrderProductItem junction record (a UUID).
subscriptions[].products[].items[].itemId string no Id of the linked inventory item (a UUID). Absent when the record has no item set.
subscriptions[].products[].items[].itemCode string no Item code from ItemMaster.
subscriptions[].products[].items[].itemName string no Item name from ItemMaster.
subscriptions[].products[].items[].productName string no Product name denormalised from the parent SalesOrderProduct.
subscriptions[].products[].items[].itemOrdered string (decimal) yes Ordered quantity for this item, after explosion: line quantity x product-item quantity.
subscriptions[].products[].items[].totalShipped string (decimal) no Sum of shipped quantity across all linked SalesOrderShipmentItems.
subscriptions[].products[].rampDeal object no Ramp-deal definition. Present only when the product is a ramp deal; ramps echo the persisted SalesOrderProductLine records.
subscriptions[].products[].rampDeal.interval string yes Ramp interval mode. One of 'annually', 'specificDates'.
subscriptions[].products[].rampDeal.invoiceTiming string yes Ramp invoice timing. One of 'perInterval', 'allAtOnce'.
subscriptions[].products[].rampDeal.ramps array of object yes Persisted ramps, ordered by start date. At least two.
subscriptions[].products[].rampDeal.ramps[].serviceStartDate string (date) yes First date this ramp's services are delivered (YYYY-MM-DD).
subscriptions[].products[].rampDeal.ramps[].serviceEndDate string (date) yes Last date this ramp's services are delivered (YYYY-MM-DD).
subscriptions[].products[].rampDeal.ramps[].quantity string (decimal) yes Quantity for this ramp period.
subscriptions[].products[].rampDeal.ramps[].listPrice string (decimal) no Per-unit list price for this ramp before discount.
subscriptions[].products[].rampDeal.ramps[].unitPrice string (decimal) no Per-unit price for this ramp after discount.
subscriptions[].products[].rampDeal.ramps[].invoiceFrequency string no How often this ramp is invoiced.
subscriptions[].products[].prepaidConfiguration object no Prepaid balance details for this product. Absent when the product is not configured as prepaid.
subscriptions[].products[].prepaidConfiguration.overConsumptionBehavior string yes Behaviour when consumption exceeds the remaining prepaid balance. One of 'allowNegative' (balance may go negative and is reconciled at renewal) or 'overage' (usage beyond the balance switches to pay-as-you-go invoicing).
subscriptions[].products[].prepaidConfiguration.rolloverAtRenewal boolean yes Whether any unused balance carries forward when the subscription renews.
subscriptions[].products[].prepaidConfiguration.balance string (decimal) no Remaining prepaid quantity for this product. Decreases as consumption is applied.
subscriptions[].products[].prepaidConfiguration.consumedAmount string (decimal) no Total quantity consumed from the prepaid balance to date.
nonSubscriptionProducts array of object yes One-time and other non-subscription product lines on the order, e.g. one-off services or perpetual licences. Same line schema as a subscription's products.
nonSubscriptionProducts[].productCode string yes Company-specific code of the product.
nonSubscriptionProducts[].productId string yes Id of the product (a UUID).
nonSubscriptionProducts[].productLineId string yes Id of the product line under the product (a UUID).
nonSubscriptionProducts[].productName string no Product name as recorded on this line. May differ from the product's current name — the line keeps the name it was sold under.
nonSubscriptionProducts[].salesOrderProductLineId string no Id of this sales-order line (a UUID).
nonSubscriptionProducts[].quantity string (decimal) yes Quantity of the product on this line. For ramp deals the per-period quantity is on each ramp instead.
nonSubscriptionProducts[].listPrice string (decimal) no Per-unit list price before discounts.
nonSubscriptionProducts[].unitPrice string (decimal) no Per-unit price after discounts. Equals listPrice − discountAmount, or listPrice * (1 − discountPercentage/100).
nonSubscriptionProducts[].totalPrice string (decimal) no Total price for this line (unitPrice * quantity).
nonSubscriptionProducts[].discountAmount string (decimal) no Per-unit discount in the order currency.
nonSubscriptionProducts[].discountPercentage string (decimal) no Per-unit discount as a percentage (e.g. 10 for 10%).
nonSubscriptionProducts[].invoiceFrequency string no How often invoices are generated for this line, e.g. monthly, quarterly, annually.
nonSubscriptionProducts[].invoiceTiming string no Whether each invoice for this line is raised at the start or the end of the period it covers. One of 'inAdvance', 'inArrears'.
nonSubscriptionProducts[].lineInvoiceDay string no Which day of the period the invoice is dated, e.g. 'firstDayOfMonth', 'specificDay', 'serviceStartDate'.
nonSubscriptionProducts[].priceModel string no How the price is derived from quantity, e.g. 'flatFee', 'perUnit', 'tiered', 'volume'. Tiered and volume models carry their bands in tiers.
nonSubscriptionProducts[].unitOfMeasure string no Unit the quantity is counted in, e.g. 'each', 'user', 'gigabyte'.
nonSubscriptionProducts[].pricingTerm string no Period the unit price is quoted for, e.g. 'monthly', 'annual' — the basis prices are normalised to before invoicing.
nonSubscriptionProducts[].serviceStartDate string (date) no First date services for this product are delivered (YYYY-MM-DD). Defaults to the order-level serviceStartDate.
nonSubscriptionProducts[].serviceEndDate string (date) no Last date services for this product are delivered (YYYY-MM-DD). Defaults to the order-level serviceEndDate.
nonSubscriptionProducts[].externalIdentifiers array of object yes External identifiers recorded against this line, one per configured field. Empty when none are.
nonSubscriptionProducts[].externalIdentifiers[].fieldName string yes Configured field the identifier belongs to, e.g. 'salesforceLineId'.
nonSubscriptionProducts[].externalIdentifiers[].value string yes The identifier's value in that external system.
nonSubscriptionProducts[].externalIdentifiers[].externalUrl string no Deep link to the record in that system, when the configuration defines one.
nonSubscriptionProducts[].overage object no Overage pricing for usage above the line's allowance. Present only when the product line has an allowance configured.
nonSubscriptionProducts[].overage.listPrice string (decimal) no Per-unit list price for overage usage.
nonSubscriptionProducts[].overage.unitPrice string (decimal) no Per-unit price for overage usage after discounts.
nonSubscriptionProducts[].overage.discountAmount string (decimal) no Per-unit overage discount in the order currency.
nonSubscriptionProducts[].overage.discountPercentage string (decimal) no Per-unit overage discount as a percentage.
nonSubscriptionProducts[].rateCardEntries array of object no Rate-card rows for this line. Present when the product line uses rate-card pricing.
nonSubscriptionProducts[].rateCardEntries[].id string yes Id of this rate-card entry (a UUID).
nonSubscriptionProducts[].rateCardEntries[].identifier string no BillableComponent identifier this rate-card row meters.
nonSubscriptionProducts[].rateCardEntries[].label string no Free-text label for this rate-card row, used as an additional discriminator alongside the identifier.
nonSubscriptionProducts[].rateCardEntries[].unitOfMeasure string yes Unit in which this rate-card row is priced.
nonSubscriptionProducts[].rateCardEntries[].unitPrice string (decimal) yes Per-unit rate negotiated for this order.
nonSubscriptionProducts[].rateCardEntries[].currency string yes ISO 4217 currency code for this rate-card row.
nonSubscriptionProducts[].tiers array of object no Pricing tiers for this product line. Present only for tiered, volume or stairstep price models.
nonSubscriptionProducts[].tiers[].fromQuantity string (decimal) yes Lower bound of the quantity range (inclusive).
nonSubscriptionProducts[].tiers[].toQuantity string (decimal) no Upper bound of the quantity range (inclusive). Absent on an open-ended last tier.
nonSubscriptionProducts[].tiers[].unitPrice string (decimal) yes Per-unit price for quantities in this tier.
nonSubscriptionProducts[].tiers[].listPrice string (decimal) no Per-unit list price before discount.
nonSubscriptionProducts[].tiers[].priceModel string no Per-tier price model. One of 'flat', 'perUnit'.
nonSubscriptionProducts[].tags array of object no Value-accounting tags applied to this product, as dimension/value pairs. Tags propagate to journal-entry lines for dimensional reporting.
nonSubscriptionProducts[].tags[].dimension string yes Tag dimension name, e.g. 'Department', 'Project'.
nonSubscriptionProducts[].tags[].value string yes Value within the dimension, e.g. 'Engineering', 'Alpha-2026'.
nonSubscriptionProducts[].items array of object no Per-item breakdown: one entry per SalesOrderProductItem (product x inventory item) under this sales-order product. Present only for inventory-tracked products.
nonSubscriptionProducts[].items[].id string yes Id of this SalesOrderProductItem junction record (a UUID).
nonSubscriptionProducts[].items[].itemId string no Id of the linked inventory item (a UUID). Absent when the record has no item set.
nonSubscriptionProducts[].items[].itemCode string no Item code from ItemMaster.
nonSubscriptionProducts[].items[].itemName string no Item name from ItemMaster.
nonSubscriptionProducts[].items[].productName string no Product name denormalised from the parent SalesOrderProduct.
nonSubscriptionProducts[].items[].itemOrdered string (decimal) yes Ordered quantity for this item, after explosion: line quantity x product-item quantity.
nonSubscriptionProducts[].items[].totalShipped string (decimal) no Sum of shipped quantity across all linked SalesOrderShipmentItems.
nonSubscriptionProducts[].rampDeal object no Ramp-deal definition. Present only when the product is a ramp deal; ramps echo the persisted SalesOrderProductLine records.
nonSubscriptionProducts[].rampDeal.interval string yes Ramp interval mode. One of 'annually', 'specificDates'.
nonSubscriptionProducts[].rampDeal.invoiceTiming string yes Ramp invoice timing. One of 'perInterval', 'allAtOnce'.
nonSubscriptionProducts[].rampDeal.ramps array of object yes Persisted ramps, ordered by start date. At least two.
nonSubscriptionProducts[].rampDeal.ramps[].serviceStartDate string (date) yes First date this ramp's services are delivered (YYYY-MM-DD).
nonSubscriptionProducts[].rampDeal.ramps[].serviceEndDate string (date) yes Last date this ramp's services are delivered (YYYY-MM-DD).
nonSubscriptionProducts[].rampDeal.ramps[].quantity string (decimal) yes Quantity for this ramp period.
nonSubscriptionProducts[].rampDeal.ramps[].listPrice string (decimal) no Per-unit list price for this ramp before discount.
nonSubscriptionProducts[].rampDeal.ramps[].unitPrice string (decimal) no Per-unit price for this ramp after discount.
nonSubscriptionProducts[].rampDeal.ramps[].invoiceFrequency string no How often this ramp is invoiced.
nonSubscriptionProducts[].prepaidConfiguration object no Prepaid balance details for this product. Absent when the product is not configured as prepaid.
nonSubscriptionProducts[].prepaidConfiguration.overConsumptionBehavior string yes Behaviour when consumption exceeds the remaining prepaid balance. One of 'allowNegative' (balance may go negative and is reconciled at renewal) or 'overage' (usage beyond the balance switches to pay-as-you-go invoicing).
nonSubscriptionProducts[].prepaidConfiguration.rolloverAtRenewal boolean yes Whether any unused balance carries forward when the subscription renews.
nonSubscriptionProducts[].prepaidConfiguration.balance string (decimal) no Remaining prepaid quantity for this product. Decreases as consumption is applied.
nonSubscriptionProducts[].prepaidConfiguration.consumedAmount string (decimal) no Total quantity consumed from the prepaid balance to date.
lastModifiedDate string (date-time) yes Instant the order last changed, as ISO 8601 UTC (YYYY-MM-DDTHH:mm:ss.sssZ). Poll on this to sync incrementally rather than re-reading the whole collection.
externalIdentifiers array of object no External identifiers owned by other systems. At most one entry per fieldName. Absent when the order has none; an omitted field and [] are equivalent.
externalIdentifiers[].fieldName string yes Configured key of the external identifier — a stable camelCase slug such as 'netsuiteSoNumber', not the human-readable label. Must match an active SalesOrderExternalIdentifierConfiguration.
externalIdentifiers[].value string yes The identifier as the source system holds it.
externalIdentifiers[].externalUrl string no Absolute http(s) link to the object in the originating system, when one is stored.

Errors

Code Status
NOT_FOUND 400

Statuses