Issue Sales Invoice
POST/api/sales-invoices/:salesInvoice/issue
Issue a draft: assigns the invoice number, freezes lines, totals, terms and due date, posts it to the ledger (and on to the connected accounting system), applies any unallocated order payments, and sends the EDI 810 / customer email when configured. invoice_date (Y-m-d, optional) must be in an open accounting period — issued invoices are never redated.
orders:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Requires orders:write and sales_invoices.issue.
A deposit invoice can't be issued while no Customer Deposits account is mapped and the books are kept (ledger on or an accounting connection exists): the request returns 422 with errors.customer_deposits, and the draft's permissions.issue_blocked_reason carries the same message.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 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 — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Unprocessable Content
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.