Force-resolve a stuck pending-approval bill

POST/api/v1/bills/{bill_id}/resolve-approval

Manually drive a bill that is wedged in 'pending_approval' to a terminal state when the normal Approve/Reject card is unavailable (the approval run never started, crashed before suspending, or suspended on a gate with no approvers). Cancels any in-flight approval run for the bill, then either approves it to 'received' (posting the journal entry) or rejects it to 'canceled'.

Operation ID: resolve_pending_approval_api_v1_bills__bill_id__resolve_approval_post·View as markdown·OpenAPI slice

Authentication

Bearer token authentication. Pass your DayZero API token in the Authorization header and the target business UUID in x-business-id.

Parameters

Path

bill_idstringrequired

Request body

actionstringrequired

'approve' posts the bill to 'received'; 'reject' moves it to 'canceled'.

One of: approve, reject

ledger_idstring

Expense ledger to debit when approving. Required unless the bill carries a persisted multi-account split. Ignored for 'reject'.

reasonstring

Optional reason captured in the audit trail when rejecting.

Responses

201Successful Response

successboolean
messagestring
codestring
dataBillResponse

400Bad Request - Invalid input

401Unauthorized - Authentication required

403Forbidden - Insufficient permissions

404Not Found - Resource does not exist

422Validation Error

detailarray · ValidationErrorValidationError
5 fields
locarray · string | integerrequired
msgstringrequired
typestringrequired
inputobject
ctxobject