Submit Bill Payment for Approval
POST/api/purchase-invoices/:purchaseInvoice/payment-request/submit
Submit a bill's outstanding balance for payment authorization. Routes the request to the appropriate approval chain, designated payer, or auto-approves it depending on configuration and amount.
purchase-orders:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Requires Bearer token.
This endpoint has no request body — the outstanding balance is used automatically. Returns the updated bill including its payment approval status and generated approval steps.
Returns 422 when the invoice is a committed-spend (provisional) bill.
Approval policy: While the bill-payment approval policy is enabled the outstanding balance is routed through the policy. If you could approve every step yourself the request completes in the same call; otherwise it waits on the policy's approvers. A bill that already has an approved amount can be submitted again for an increase — the earlier approval keeps covering what it authorized.
Approval levels are compared with the bill's outstanding balance in your home currency (balance × the bill's rate), not the document-currency figure. home_currency_code in the response names that currency.
supplier_bank_details_verified counts only verifications made since the supplier's bank details last changed; supplier_bank_details_changed_at (ISO 8601, null when no change has been recorded) says when that was.
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 Entity
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.