Retrieve a sales order

Operation ID: getSalesOrder

Group: Accounting › Sales Orders

Open in the interactive reference

GET /accounting/sales-orders/{id}

Read-only: Reads and returns; changes nothing.

Retrieves a sales order. Use the sales order's id, not its orderNumber.

The response includes the customer, the addresses, and the product lines, grouped by subscription. POST accounting/sales-orders/search returns the same fields for each sales order.

Parameters

Name In Type Required Description
Api-Version header string · 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 The unique identifier of the sales order you want to retrieve.

Response

200 Success

Under data (getSalesOrderOutput):

Field Type Required Description
id string yes The unique identifier for the sales order.
orderNumber string yes The sales order number. Unique within the tenant. Example: 'SO-1042'.
orderType string no The type of the sales order. Possible values: 'new', 'upsell', 'earlyRenewal', 'renewal', 'replacement'.
approvalStatus string no The approval status of the sales order. Possible values: 'draft', 'pendingApproval', 'revise', 'approved', 'rejected'.
bookDate date yes The date the sales order was booked. Format YYYY-MM-DD.
serviceStartDate date no The first day of the order's service period. Format YYYY-MM-DD.
serviceEndDate date no The last day of the order's service period. Absent when isEvergreen is true. Format YYYY-MM-DD.
signDate date no The date the sales order was signed. Format YYYY-MM-DD.
salesEffectiveDate date no The date the contract legally takes effect. salesEffectiveDate can be earlier than signDate. Format YYYY-MM-DD.
isEvergreen boolean no Whether the order is evergreen, meaning at least one of its subscriptions has no end date and keeps billing until it is canceled.
excludeFromTaxEngine boolean no Whether the invoices, credit memos, and debit memos created from this order are left out of the tax engine. Always false when your tenant does not allow sales orders to be excluded from the tax engine.
term decimal no The length of the order's term, in months. Absent when isEvergreen is true.
currency string yes The currency of the order. Format ISO 4217, for example 'USD'.
totalContract decimal no The total value of the order before tax, in the order currency: the sum of totalPrice across its lines minus oneTimeDiscountAmount.
invoicedAmount decimal no The amount invoiced from this order so far, in the order currency.
oneTimeDiscountAmount decimal no The one-time discount on the order as a whole, in the order currency.
oneTimeDiscountAllocation string no How oneTimeDiscountAmount is spread across the order's invoices. Possible values: 'firstInvoice', 'alignToInvoiceFrequency', 'custom'.
paymentTerm string no The code of the payment term applied to the order's invoices. See code on GET accounting/payment-terms.
purchaseOrder string no The customer's own purchase-order reference.
memo string no A memo on the sales order.
crmContractId string no The identifier of the contract this order came from, in an external CRM system.
salesArrangement string no The number of the sales arrangement this order belongs to. No endpoint returns sales arrangements.
salesArrangementId string no The sales arrangement this order belongs to. No endpoint returns sales arrangements.
paymentTermId string no The payment term applied to the order's invoices. See id on GET accounting/payment-terms.
opportunityId string no The identifier of the opportunity this order came from, in an external CRM system.
opportunityName string no The name of the opportunity this order came from.
dataSource string no The system the order came from. Examples: 'Salesforce', 'NetSuite'.
priceBookId string no The price book the order's list prices come from. See id on GET accounting/price-books/:id.
priceBookName string no The name of the price book the order's list prices come from. See priceBookName on GET accounting/price-books/:id.
externalizedInvoicing boolean no Whether another system invoices this order. When true, no invoice plans are created for the order.
customer object yes The customer this order is for.
customer.id string yes The customer's identifier. See id on GET accounting/customers/:id.
customer.customerNumber string no The customer number. Example: 'CUS-789012'.
customer.name string yes The name of the customer, as it appears on invoices.
customer.invoiceEmail string no The email address invoices are sent to.
customer.mainEmail string no The email address of the customer's main contact.
customer.segment string no The market segment of the customer. Possible values: 'SMB', 'MidMarket', 'Enterprise'.
customer.taxExempt boolean no Whether the customer is exempt from tax.
entityId string yes The legal entity that owns this sales order. See id on GET base/entities.
entityName string no The name of the legal entity that owns this sales order. See entityName on GET base/entities.
entityNumber string yes The number of the legal entity that owns this sales order. See entityNumber on GET base/entities.
soldToAddress object yes The sold-to address of the order. It is the customer address used to calculate tax.
soldToAddress.addressId string no The unique identifier for the address.
soldToAddress.line1 string yes The first address line: street number and name, or PO box.
soldToAddress.line2 string no The second address line: apartment, suite, unit, building, or floor.
soldToAddress.city string yes The city or locality.
soldToAddress.stateProvince string no The state, province, or region.
soldToAddress.country string yes The country, as a name or ISO 3166-1 code.
soldToAddress.zipCode string yes The postal or ZIP code.
billToAddress object yes The bill-to address of the order.
billToAddress.addressId string no The unique identifier for the address.
billToAddress.line1 string yes The first address line: street number and name, or PO box.
billToAddress.line2 string no The second address line: apartment, suite, unit, building, or floor.
billToAddress.city string yes The city or locality.
billToAddress.stateProvince string no The state, province, or region.
billToAddress.country string yes The country, as a name or ISO 3166-1 code.
billToAddress.zipCode string yes The postal or ZIP code.
subscriptions array<object> yes The order's subscriptions, each with the product lines that belong to it. An empty array when the order has none.
subscriptions[].id string no The subscription's identifier. See id on GET accounting/subscriptions/:id.
subscriptions[].subscriptionNumber decimal no The subscription number. See subscriptionNumber on GET accounting/subscriptions/:id.
subscriptions[].externalSubscriptionId string no The subscription's identifier in an external system. Absent when none was recorded at creation.
subscriptions[].termType string no The term type of the subscription. Possible values: 'termed', 'evergreen'.
subscriptions[].autoRenew boolean no Whether the subscription renews automatically at the end of its term.
subscriptions[].serviceStartDate date no The earliest service start date across the subscription's lines. Format YYYY-MM-DD.
subscriptions[].serviceEndDate date no The latest service end date across all of the subscription's lines, including lines from other orders. Format YYYY-MM-DD. Usually absent when the subscription is evergreen, but present once it is canceled or suspended.
subscriptions[].products array<object> yes The product lines of this subscription on this order, one entry per product line. For a ramp deal, one entry represents the whole product, and each ramp in rampDeal.ramps is one of its product lines.
subscriptions[].products[].productCode string yes The code of the product. See productCode on GET accounting/products/:id.
subscriptions[].products[].productId string yes The product ordered on this line. See id on GET accounting/products/:id.
subscriptions[].products[].productLineId string yes The product line ordered on this line. See id on GET accounting/product-lines/:id.
subscriptions[].products[].productName string no The product's current name. See productName on GET accounting/products/:id.
subscriptions[].products[].salesOrderProductLineId string no The unique identifier for this order line. On a ramp deal, the identifier of the earliest ramp's line. The other ramps' line identifiers are not returned.
subscriptions[].products[].quantity decimal yes The quantity ordered on this line. On a ramp deal, it is the first ramp's quantity.
subscriptions[].products[].listPrice decimal no The list price per unit before discount, in the order currency.
subscriptions[].products[].unitPrice decimal no The discounted price per unit, in the order currency. unitPrice = listPrice - discountAmount = listPrice × (1 - discountPercentage).
subscriptions[].products[].totalPrice decimal no The total price of the line, in the order currency.
subscriptions[].products[].discountAmount decimal no The discount per unit, in the order currency.
subscriptions[].products[].discountPercentage decimal no The discount per unit, as a decimal fraction of listPrice. For example, 0.1 is 10%.
subscriptions[].products[].invoiceFrequency string no How often the line is invoiced. Possible values: 'monthly', 'biMonthly', 'quarterly', 'semiAnnually', 'annually', 'once', 'custom', 'template', 'milestone', 'allAtOnce', 'termEnd'. See invoiceFrequency on GET accounting/product-lines/:id.
subscriptions[].products[].invoiceTiming string no When the line is invoiced relative to the period it covers. Possible values: 'advance' (at the start of the period), 'arrears' (at the end of the period).
subscriptions[].products[].lineInvoiceDay string no The day of the period the line is invoiced on. Possible values: 'anniversary', 'first', 'last', 'specific'.
subscriptions[].products[].priceModel string no How the price of this order line depends on quantity. Possible values: 'flat', 'perUnit', 'tiered', 'volume', 'stairstep', 'rateCard', 'thresholdBased'. See priceModel on GET accounting/product-lines/:id.
subscriptions[].products[].unitOfMeasure string no The unit the quantity is counted in. Possible values: 'instance', 'gigabyte', 'terabyte', 'user', 'seat', 'minute', 'hour', 'day', 'month', 'each', 'license', 'activeUser', 'megabyte', 'message', 'text', 'platform', 'employee', 'personnel', 'credit', 'currency', 'package', 'case', 'word', 'record'. See unitOfMeasure on GET accounting/product-lines/:id.
subscriptions[].products[].pricingTerm string no The period the unit price covers. Possible values: 'monthly', 'biMonthly', 'once', 'quarterly', 'semiAnnually', 'annually'. See pricingTerm on GET accounting/product-lines/:id.
subscriptions[].products[].serviceStartDate date no The first day of this line's service period. Format YYYY-MM-DD.
subscriptions[].products[].serviceEndDate date no The last day of this line's service period. Format YYYY-MM-DD.
subscriptions[].products[].externalIdentifiers array<object> yes The line's identifiers in other systems, one per configured field name. An empty array when the line has none.
subscriptions[].products[].externalIdentifiers[].fieldName string yes The name of the external identifier field, as set up by an administrator in Settings & Policies > Integrations > External Identifiers.
subscriptions[].products[].externalIdentifiers[].value string yes The identifier in the other system.
subscriptions[].products[].externalIdentifiers[].externalUrl string no A link to the record in the other system.
subscriptions[].products[].overage object no The pricing for usage above the line's allowance. Absent when the line has no overage discount.
subscriptions[].products[].overage.listPrice decimal no The list price per unit of overage usage, in the order currency.
subscriptions[].products[].overage.unitPrice decimal no The discounted price per unit of overage usage, in the order currency.
subscriptions[].products[].overage.discountAmount decimal no The discount per unit of overage usage, in the order currency.
subscriptions[].products[].overage.discountPercentage decimal no The discount per unit of overage usage, as a decimal fraction of listPrice. For example, 0.1 is 10%. Absent when discountAmount is present.
subscriptions[].products[].rateCardEntries array<object> no The rate card entries of this line. Absent when the line has none.
subscriptions[].products[].rateCardEntries[].id string yes The unique identifier for the rate card entry.
subscriptions[].products[].rateCardEntries[].identifier string no The identifier of the billable component this entry prices. No endpoint returns billable components.
subscriptions[].products[].rateCardEntries[].label string no A description of the rate card entry.
subscriptions[].products[].rateCardEntries[].unitOfMeasure string yes The unit this entry is priced in, for example 'user' or 'gigabyte'.
subscriptions[].products[].rateCardEntries[].unitPrice decimal yes The price per unit, in this entry's currency.
subscriptions[].products[].rateCardEntries[].currency string yes The currency of unitPrice. Format ISO 4217, for example 'USD'.
subscriptions[].products[].tiers array<object> no The pricing tiers of this line, lowest fromQuantity first. Absent when the line has none.
subscriptions[].products[].tiers[].fromQuantity decimal yes The quantity at which this tier starts.
subscriptions[].products[].tiers[].toQuantity decimal no The quantity at which this tier ends. Absent on the last tier, which has no upper limit.
subscriptions[].products[].tiers[].unitPrice decimal yes The price for this tier, in the order currency. When priceModel is 'perUnit', it is charged for each unit priced in this tier. When priceModel is 'flat', it is charged once for the tier, whatever the number of units.
subscriptions[].products[].tiers[].listPrice decimal no The list price for this tier before discount, in the order currency.
subscriptions[].products[].tiers[].priceModel string no How unitPrice applies within this tier. Possible values: 'flat', 'perUnit'.
subscriptions[].products[].tags array<object> no The value accounting tags of this product, as dimension and value pairs. Every line of the same product has the same tags. Absent when the product has no tags.
subscriptions[].products[].tags[].dimension string yes The name of the tag dimension, for example 'Department'.
subscriptions[].products[].tags[].value string yes The tag value within the dimension, for example 'Engineering'.
subscriptions[].products[].items array<object> no The inventory items of this product. Every line of the same product has the same items. Absent when the product has no items or is a ramp deal.
subscriptions[].products[].items[].id string yes The unique identifier for the order's record of this item.
subscriptions[].products[].items[].itemId string no The inventory item. See id on GET inventory/items/:id.
subscriptions[].products[].items[].itemCode string no The item code of the inventory item. See itemCode on GET inventory/items/:id.
subscriptions[].products[].items[].itemName string no The name of the inventory item.
subscriptions[].products[].items[].productName string no The name of the product the item belongs to.
subscriptions[].products[].items[].itemOrdered decimal yes The quantity of this item ordered: the total quantity of the product across its lines on this order. It is not multiplied by the item's quantity in the product definition.
subscriptions[].products[].items[].totalShipped decimal no The quantity of this item shipped so far, summed across its shipments.
subscriptions[].products[].rampDeal object no Present only when the product is a ramp deal. The entry then represents the whole product, and each ramp in ramps is one of its product lines, with its own dates, quantity, and prices, earliest first. On a ramp deal, the entry has no listPrice, unitPrice, totalPrice, discountAmount, discountPercentage, serviceStartDate, serviceEndDate, items, tiers, rateCardEntries, overage, or prepaidConfiguration.
subscriptions[].products[].rampDeal.interval string yes How the ramp periods are set. Possible values: 'annually', 'specificDates'.
subscriptions[].products[].rampDeal.invoiceTiming string yes How the ramp deal is invoiced. Possible values: 'perInterval', 'allAtOnce'.
subscriptions[].products[].rampDeal.ramps array<object> yes The ramps of the deal, earliest first.
subscriptions[].products[].rampDeal.ramps[].serviceStartDate date yes The first day of this ramp. Format YYYY-MM-DD.
subscriptions[].products[].rampDeal.ramps[].serviceEndDate date yes The last day of this ramp. Format YYYY-MM-DD.
subscriptions[].products[].rampDeal.ramps[].quantity decimal yes The quantity for this ramp.
subscriptions[].products[].rampDeal.ramps[].listPrice decimal no The list price per unit for this ramp before discount, in the order currency.
subscriptions[].products[].rampDeal.ramps[].unitPrice decimal no The discounted price per unit for this ramp, in the order currency.
subscriptions[].products[].rampDeal.ramps[].invoiceFrequency string no How often this ramp is invoiced. Possible values: 'monthly', 'biMonthly', 'quarterly', 'semiAnnually', 'annually', 'once', 'custom', 'template', 'milestone', 'allAtOnce', 'termEnd'.
subscriptions[].products[].prepaidConfiguration object no The prepaid balance settings of this line. Absent when the line is not a prepaid line.
subscriptions[].products[].prepaidConfiguration.overConsumptionBehavior string yes What happens when usage exceeds the prepaid balance. Possible values: 'allowNegative' (the balance goes negative, and the shortfall is taken from the new prepaid amount when the subscription renews), 'overage' (the balance stops at zero, and usage beyond it is invoiced at the line's overage rate).
subscriptions[].products[].prepaidConfiguration.rolloverAtRenewal boolean yes Whether unused balance rolls over when the subscription renews.
subscriptions[].products[].prepaidConfiguration.balance decimal no The prepaid units (credits) left in the balance.
subscriptions[].products[].prepaidConfiguration.consumedAmount decimal no The prepaid units (credits) used so far: the quantity funded by this line minus the current balance. Absent when balance is absent.
nonSubscriptionProducts array<object> yes The order's product lines that belong to no subscription, with the same fields as subscriptions[].products. An empty array when the order has none.
nonSubscriptionProducts[].productCode string yes The code of the product. See productCode on GET accounting/products/:id.
nonSubscriptionProducts[].productId string yes The product ordered on this line. See id on GET accounting/products/:id.
nonSubscriptionProducts[].productLineId string yes The product line ordered on this line. See id on GET accounting/product-lines/:id.
nonSubscriptionProducts[].productName string no The product's current name. See productName on GET accounting/products/:id.
nonSubscriptionProducts[].salesOrderProductLineId string no The unique identifier for this order line. On a ramp deal, the identifier of the earliest ramp's line. The other ramps' line identifiers are not returned.
nonSubscriptionProducts[].quantity decimal yes The quantity ordered on this line. On a ramp deal, it is the first ramp's quantity.
nonSubscriptionProducts[].listPrice decimal no The list price per unit before discount, in the order currency.
nonSubscriptionProducts[].unitPrice decimal no The discounted price per unit, in the order currency. unitPrice = listPrice - discountAmount = listPrice × (1 - discountPercentage).
nonSubscriptionProducts[].totalPrice decimal no The total price of the line, in the order currency.
nonSubscriptionProducts[].discountAmount decimal no The discount per unit, in the order currency.
nonSubscriptionProducts[].discountPercentage decimal no The discount per unit, as a decimal fraction of listPrice. For example, 0.1 is 10%.
nonSubscriptionProducts[].invoiceFrequency string no How often the line is invoiced. Possible values: 'monthly', 'biMonthly', 'quarterly', 'semiAnnually', 'annually', 'once', 'custom', 'template', 'milestone', 'allAtOnce', 'termEnd'. See invoiceFrequency on GET accounting/product-lines/:id.
nonSubscriptionProducts[].invoiceTiming string no When the line is invoiced relative to the period it covers. Possible values: 'advance' (at the start of the period), 'arrears' (at the end of the period).
nonSubscriptionProducts[].lineInvoiceDay string no The day of the period the line is invoiced on. Possible values: 'anniversary', 'first', 'last', 'specific'.
nonSubscriptionProducts[].priceModel string no How the price of this order line depends on quantity. Possible values: 'flat', 'perUnit', 'tiered', 'volume', 'stairstep', 'rateCard', 'thresholdBased'. See priceModel on GET accounting/product-lines/:id.
nonSubscriptionProducts[].unitOfMeasure string no The unit the quantity is counted in. Possible values: 'instance', 'gigabyte', 'terabyte', 'user', 'seat', 'minute', 'hour', 'day', 'month', 'each', 'license', 'activeUser', 'megabyte', 'message', 'text', 'platform', 'employee', 'personnel', 'credit', 'currency', 'package', 'case', 'word', 'record'. See unitOfMeasure on GET accounting/product-lines/:id.
nonSubscriptionProducts[].pricingTerm string no The period the unit price covers. Possible values: 'monthly', 'biMonthly', 'once', 'quarterly', 'semiAnnually', 'annually'. See pricingTerm on GET accounting/product-lines/:id.
nonSubscriptionProducts[].serviceStartDate date no The first day of this line's service period. Format YYYY-MM-DD.
nonSubscriptionProducts[].serviceEndDate date no The last day of this line's service period. Format YYYY-MM-DD.
nonSubscriptionProducts[].externalIdentifiers array<object> yes The line's identifiers in other systems, one per configured field name. An empty array when the line has none.
nonSubscriptionProducts[].externalIdentifiers[].fieldName string yes The name of the external identifier field, as set up by an administrator in Settings & Policies > Integrations > External Identifiers.
nonSubscriptionProducts[].externalIdentifiers[].value string yes The identifier in the other system.
nonSubscriptionProducts[].externalIdentifiers[].externalUrl string no A link to the record in the other system.
nonSubscriptionProducts[].overage object no The pricing for usage above the line's allowance. Absent when the line has no overage discount.
nonSubscriptionProducts[].overage.listPrice decimal no The list price per unit of overage usage, in the order currency.
nonSubscriptionProducts[].overage.unitPrice decimal no The discounted price per unit of overage usage, in the order currency.
nonSubscriptionProducts[].overage.discountAmount decimal no The discount per unit of overage usage, in the order currency.
nonSubscriptionProducts[].overage.discountPercentage decimal no The discount per unit of overage usage, as a decimal fraction of listPrice. For example, 0.1 is 10%. Absent when discountAmount is present.
nonSubscriptionProducts[].rateCardEntries array<object> no The rate card entries of this line. Absent when the line has none.
nonSubscriptionProducts[].rateCardEntries[].id string yes The unique identifier for the rate card entry.
nonSubscriptionProducts[].rateCardEntries[].identifier string no The identifier of the billable component this entry prices. No endpoint returns billable components.
nonSubscriptionProducts[].rateCardEntries[].label string no A description of the rate card entry.
nonSubscriptionProducts[].rateCardEntries[].unitOfMeasure string yes The unit this entry is priced in, for example 'user' or 'gigabyte'.
nonSubscriptionProducts[].rateCardEntries[].unitPrice decimal yes The price per unit, in this entry's currency.
nonSubscriptionProducts[].rateCardEntries[].currency string yes The currency of unitPrice. Format ISO 4217, for example 'USD'.
nonSubscriptionProducts[].tiers array<object> no The pricing tiers of this line, lowest fromQuantity first. Absent when the line has none.
nonSubscriptionProducts[].tiers[].fromQuantity decimal yes The quantity at which this tier starts.
nonSubscriptionProducts[].tiers[].toQuantity decimal no The quantity at which this tier ends. Absent on the last tier, which has no upper limit.
nonSubscriptionProducts[].tiers[].unitPrice decimal yes The price for this tier, in the order currency. When priceModel is 'perUnit', it is charged for each unit priced in this tier. When priceModel is 'flat', it is charged once for the tier, whatever the number of units.
nonSubscriptionProducts[].tiers[].listPrice decimal no The list price for this tier before discount, in the order currency.
nonSubscriptionProducts[].tiers[].priceModel string no How unitPrice applies within this tier. Possible values: 'flat', 'perUnit'.
nonSubscriptionProducts[].tags array<object> no The value accounting tags of this product, as dimension and value pairs. Every line of the same product has the same tags. Absent when the product has no tags.
nonSubscriptionProducts[].tags[].dimension string yes The name of the tag dimension, for example 'Department'.
nonSubscriptionProducts[].tags[].value string yes The tag value within the dimension, for example 'Engineering'.
nonSubscriptionProducts[].items array<object> no The inventory items of this product. Every line of the same product has the same items. Absent when the product has no items or is a ramp deal.
nonSubscriptionProducts[].items[].id string yes The unique identifier for the order's record of this item.
nonSubscriptionProducts[].items[].itemId string no The inventory item. See id on GET inventory/items/:id.
nonSubscriptionProducts[].items[].itemCode string no The item code of the inventory item. See itemCode on GET inventory/items/:id.
nonSubscriptionProducts[].items[].itemName string no The name of the inventory item.
nonSubscriptionProducts[].items[].productName string no The name of the product the item belongs to.
nonSubscriptionProducts[].items[].itemOrdered decimal yes The quantity of this item ordered: the total quantity of the product across its lines on this order. It is not multiplied by the item's quantity in the product definition.
nonSubscriptionProducts[].items[].totalShipped decimal no The quantity of this item shipped so far, summed across its shipments.
nonSubscriptionProducts[].rampDeal object no Present only when the product is a ramp deal. The entry then represents the whole product, and each ramp in ramps is one of its product lines, with its own dates, quantity, and prices, earliest first. On a ramp deal, the entry has no listPrice, unitPrice, totalPrice, discountAmount, discountPercentage, serviceStartDate, serviceEndDate, items, tiers, rateCardEntries, overage, or prepaidConfiguration.
nonSubscriptionProducts[].rampDeal.interval string yes How the ramp periods are set. Possible values: 'annually', 'specificDates'.
nonSubscriptionProducts[].rampDeal.invoiceTiming string yes How the ramp deal is invoiced. Possible values: 'perInterval', 'allAtOnce'.
nonSubscriptionProducts[].rampDeal.ramps array<object> yes The ramps of the deal, earliest first.
nonSubscriptionProducts[].rampDeal.ramps[].serviceStartDate date yes The first day of this ramp. Format YYYY-MM-DD.
nonSubscriptionProducts[].rampDeal.ramps[].serviceEndDate date yes The last day of this ramp. Format YYYY-MM-DD.
nonSubscriptionProducts[].rampDeal.ramps[].quantity decimal yes The quantity for this ramp.
nonSubscriptionProducts[].rampDeal.ramps[].listPrice decimal no The list price per unit for this ramp before discount, in the order currency.
nonSubscriptionProducts[].rampDeal.ramps[].unitPrice decimal no The discounted price per unit for this ramp, in the order currency.
nonSubscriptionProducts[].rampDeal.ramps[].invoiceFrequency string no How often this ramp is invoiced. Possible values: 'monthly', 'biMonthly', 'quarterly', 'semiAnnually', 'annually', 'once', 'custom', 'template', 'milestone', 'allAtOnce', 'termEnd'.
nonSubscriptionProducts[].prepaidConfiguration object no The prepaid balance settings of this line. Absent when the line is not a prepaid line.
nonSubscriptionProducts[].prepaidConfiguration.overConsumptionBehavior string yes What happens when usage exceeds the prepaid balance. Possible values: 'allowNegative' (the balance goes negative, and the shortfall is taken from the new prepaid amount when the subscription renews), 'overage' (the balance stops at zero, and usage beyond it is invoiced at the line's overage rate).
nonSubscriptionProducts[].prepaidConfiguration.rolloverAtRenewal boolean yes Whether unused balance rolls over when the subscription renews.
nonSubscriptionProducts[].prepaidConfiguration.balance decimal no The prepaid units (credits) left in the balance.
nonSubscriptionProducts[].prepaidConfiguration.consumedAmount decimal no The prepaid units (credits) used so far: the quantity funded by this line minus the current balance. Absent when balance is absent.
lastModifiedDate date-time yes The date and time the sales order last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. Changes to product lines do not update it.
externalIdentifiers array<object> no The order's identifiers in other systems, at most one per field name. An empty array when the order has none.
externalIdentifiers[].fieldName string yes The name of the external identifier field, as set up by an administrator in Settings & Policies > Integrations > External Identifiers.
externalIdentifiers[].value string yes The identifier in the other system.
externalIdentifiers[].externalUrl string no A link to the record in the other system.
{
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "orderNumber": "<orderNumber>",
    "orderType": "<orderType>",
    "approvalStatus": "<approvalStatus>",
    "bookDate": "2026-01-15",
    "serviceStartDate": "2026-01-15",
    "serviceEndDate": "2026-01-15",
    "signDate": "2026-01-15",
    "salesEffectiveDate": "2026-01-15",
    "isEvergreen": true,
    "excludeFromTaxEngine": true,
    "term": "19.99",
    "currency": "<currency>",
    "totalContract": "19.99",
    "invoicedAmount": "19.99",
    "oneTimeDiscountAmount": "19.99",
    "oneTimeDiscountAllocation": "<oneTimeDiscountAllocation>",
    "paymentTerm": "<paymentTerm>",
    "purchaseOrder": "<purchaseOrder>",
    "memo": "<memo>",
    "crmContractId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "salesArrangement": "<salesArrangement>",
    "salesArrangementId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "paymentTermId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "opportunityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "opportunityName": "<opportunityName>",
    "dataSource": "<dataSource>",
    "priceBookId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "priceBookName": "<priceBookName>",
    "externalizedInvoicing": true,
    "customer": {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "customerNumber": "<customerNumber>",
      "name": "<name>",
      "invoiceEmail": "<invoiceEmail>",
      "mainEmail": "<mainEmail>",
      "segment": "<segment>",
      "taxExempt": true
    },
    "entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "entityName": "<entityName>",
    "entityNumber": "<entityNumber>",
    "soldToAddress": {
      "addressId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "line1": "<line1>",
      "line2": "<line2>",
      "city": "<city>",
      "stateProvince": "<stateProvince>",
      "country": "<country>",
      "zipCode": "<zipCode>"
    },
    "billToAddress": {
      "addressId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "line1": "<line1>",
      "line2": "<line2>",
      "city": "<city>",
      "stateProvince": "<stateProvince>",
      "country": "<country>",
      "zipCode": "<zipCode>"
    },
    "subscriptions": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "subscriptionNumber": "19.99",
        "externalSubscriptionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "termType": "<termType>",
        "autoRenew": true,
        "serviceStartDate": "2026-01-15",
        "serviceEndDate": "2026-01-15",
        "products": [
          {
            "productCode": "<productCode>",
            "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "productLineId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "productName": "<productName>",
            "salesOrderProductLineId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "quantity": "19.99",
            "listPrice": "19.99",
            "unitPrice": "19.99",
            "totalPrice": "19.99",
            "discountAmount": "19.99",
            "discountPercentage": "19.99",
            "invoiceFrequency": "<invoiceFrequency>",
            "invoiceTiming": "<invoiceTiming>",
            "lineInvoiceDay": "<lineInvoiceDay>",
            "priceModel": "<priceModel>",
            "unitOfMeasure": "<unitOfMeasure>",
            "pricingTerm": "<pricingTerm>",
            "serviceStartDate": "2026-01-15",
            "serviceEndDate": "2026-01-15",
            "externalIdentifiers": [
              null
            ],
            "overage": {
              "listPrice": null,
              "unitPrice": null,
              "discountAmount": null,
              "discountPercentage": null
            },
            "rateCardEntries": [
              null
            ],
            "tiers": [
              null
            ],
            "tags": [
              null
            ],
            "items": [
              null
            ],
            "rampDeal": {
              "interval": null,
              "invoiceTiming": null,
              "ramps": null
            },
            "prepaidConfiguration": {
              "overConsumptionBehavior": null,
              "rolloverAtRenewal": null,
              "balance": null,
              "consumedAmount": null
            }
          }
        ]
      }
    ],
    "nonSubscriptionProducts": [
      {
        "productCode": "<productCode>",
        "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "productLineId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "productName": "<productName>",
        "salesOrderProductLineId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "quantity": "19.99",
        "listPrice": "19.99",
        "unitPrice": "19.99",
        "totalPrice": "19.99",
        "discountAmount": "19.99",
        "discountPercentage": "19.99",
        "invoiceFrequency": "<invoiceFrequency>",
        "invoiceTiming": "<invoiceTiming>",
        "lineInvoiceDay": "<lineInvoiceDay>",
        "priceModel": "<priceModel>",
        "unitOfMeasure": "<unitOfMeasure>",
        "pricingTerm": "<pricingTerm>",
        "serviceStartDate": "2026-01-15",
        "serviceEndDate": "2026-01-15",
        "externalIdentifiers": [
          {
            "fieldName": "<fieldName>",
            "value": "<value>",
            "externalUrl": "<externalUrl>"
          }
        ],
        "overage": {
          "listPrice": "19.99",
          "unitPrice": "19.99",
          "discountAmount": "19.99",
          "discountPercentage": "19.99"
        },
        "rateCardEntries": [
          {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "identifier": "<identifier>",
            "label": "<label>",
            "unitOfMeasure": "<unitOfMeasure>",
            "unitPrice": "19.99",
            "currency": "<currency>"
          }
        ],
        "tiers": [
          {
            "fromQuantity": "19.99",
            "toQuantity": "19.99",
            "unitPrice": "19.99",
            "listPrice": "19.99",
            "priceModel": "<priceModel>"
          }
        ],
        "tags": [
          {
            "dimension": "<dimension>",
            "value": "<value>"
          }
        ],
        "items": [
          {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "itemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "itemCode": "<itemCode>",
            "itemName": "<itemName>",
            "productName": "<productName>",
            "itemOrdered": "19.99",
            "totalShipped": "19.99"
          }
        ],
        "rampDeal": {
          "interval": "<interval>",
          "invoiceTiming": "<invoiceTiming>",
          "ramps": [
            {
              "serviceStartDate": null,
              "serviceEndDate": null,
              "quantity": null,
              "listPrice": null,
              "unitPrice": null,
              "invoiceFrequency": null
            }
          ]
        },
        "prepaidConfiguration": {
          "overConsumptionBehavior": "<overConsumptionBehavior>",
          "rolloverAtRenewal": true,
          "balance": "19.99",
          "consumedAmount": "19.99"
        }
      }
    ],
    "lastModifiedDate": "2026-01-15T09:30:00.000Z",
    "externalIdentifiers": [
      {
        "fieldName": "<fieldName>",
        "value": "<value>",
        "externalUrl": "<externalUrl>"
      }
    ]
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}

Errors

Code Status
NOT_FOUND 400

Statuses