Get Sales Order Invoice Preview
GET/api/sales-orders/:salesOrder/invoice-preview
What can be invoiced on an order right now: billable quantities per line (shipped and ordered; bundle_id / bundle_name name the bundle a component line belongs to), fee remainders with the default allocation, shippable shipments and their quantities, the default invoice date, payment term, due date and number preview, and the order's on-account payments.
orders:readGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Also returned:
create_blocked_reason(string|null): why no invoice can be created on this order right now, or null.supports_deposit(boolean): whether a deposit invoice (source: deposit) can be created — true for orders invoiced per shipment or manually.sales_order:{id, sales_order_number, customer {id, name}, currency_code, invoicing_policy, is_edi, edi_partner_name}—is_ediis true when the order came in over EDI, andedi_partner_namenames the trading partner.issue_effects: what issuing an invoice will do —accounting_provider(xero,qboor null: where the invoice posts),sends_edi_810(whether an EDI 810 invoice goes to the trading partner),edi_partner_name, andemail_to(the address the invoice is emailed to on issue, or null when emailing on issue is off or the customer has no invoice email).
Requires orders:read and sales_invoices.create.
Returns 404 {"message": "Sales order not found"} when the sales order does not exist.
deposit_issue_blocked_reason is why a deposit invoice can't be issued right now (no Customer Deposits account mapped while the books are kept), or null.
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not Found
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.