Request Sales Order Payment
POST/api/sales-orders/:salesOrder/request-payment
Email the order's customer a payment request for the order's outstanding balance, and record the send in the customer's communications log. Send sales_invoice_id to request payment of one issued invoice of the order instead — the amount is that invoice's balance due and the email names the invoice.
orders:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Body (all optional)
recipient(email): override the destination; defaults to the customer's billing email, then their primary emailsubject(string, up to 255) andbody(string, up to 10,000): email templates. Placeholders:{customer_name},{order_number},{amount_due},{days_overdue},{invoice_number},{due_date},{total_due},{payment_instructions}. Defaults: "Payment Request — Order {order_number}", or "Payment Request — Invoice {invoice_number}" withsales_invoice_idattach_invoice(boolean, default false): attach a PDF of what is outstanding on the order (or on the invoice)sales_invoice_id(integer): an issued invoice of this order to request payment for
Returns the logged communication (scope is order, or invoice with sales_invoice_id). Returns 422 when the order or invoice has no outstanding balance, has no linked customer, no recipient email can be found, the invoice is not issued, or the invoice belongs to another order.
Requires orders:write and the sales_orders.index, customers.show and customers.send_communications permissions. Rate limited to 60 requests per minute.
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.