Approve a pending invoice. Requires a user-linked API token.
Any provided notes and tags are applied as annotations after the approval succeeds.
Request Fields
| Field | Type | Description |
|---|---|---|
| notes | string | Notes to add. Stored as a communication entry with the acting user's ID and timestamp. |
| tags | string | Comma-separated tags to apply. |
Duplicate Detection
When approving, the system checks for duplicate invoices (same supplier and invoice number). If a duplicate invoice already exists that has been approved or partially approved, the error response includes the ID of the conflicting invoice in the result field. This allows API consumers to look up and reconcile the duplicate.
Enter your API token.
The invoice ID to approve.
Approve with Notes
{
"notes": "Verified against PO #789",
"tags": "verified,q1-2024"
}Simple Approve
{}Request body for invoice actions (annotate, approve, reject, unApprove, unReject). Both fields are optional.
Notes to add to the invoice. Stored as a communication entry with the acting user's ID and timestamp.
Comma-separated tags to apply to the invoice.
Invoice approved
Success
{
"status": "OK",
"msg": "Approve successful.",
"result": 12345
}Bad Request - Approval failed
Duplicate Invoice Already Approved
The result contains the ID of the conflicting approved invoice for reconciliation.
{
"status": "Error",
"msg": "Can not approve. A duplicated record of Invoice#INV-2024-001 from Acme Corp was fully approved on 2024-01-16 02:30:00 PM ET. Amount: $1,500.00",
"result": 67890
}Duplicate Invoice Partially Approved
The result contains the ID of the conflicting partially approved invoice.
{
"status": "Error",
"msg": "Can not approve. A record of Invoice#INV-2024-001 from Acme Corp is partially approved. Approved by John Smith on 2024-01-16 02:30:00 PM ET. Amount: $1,500.00",
"result": 67890
}Invoice Group Not Actionable
{
"status": "Error",
"msg": "ID is of an invoice group and is not actionable.",
"result": null
}Unauthorized
Forbidden - Token not linked to user
Not Authorized
{
"status": "Error",
"msg": "Token is not associated with a user. Approval actions require a user-linked token.",
"result": null
}Invoice not found
Not Found
{
"status": "Error",
"msg": "Record not found.",
"result": null
}