Approve an invoice

Prev Next
Post
/v1/invoices/{invoiceId}/approve

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.

Security
HTTP
Type bearer

Enter your API token.

Path parameters
invoiceId
integerRequired

The invoice ID to approve.

Minimum1
Body parameters
withNotes

Approve with Notes

{
  "notes": "Verified against PO #789",
  "tags": "verified,q1-2024"
}
simple

Simple Approve

{}
object

Request body for invoice actions (annotate, approve, reject, unApprove, unReject). Both fields are optional.

notes
string

Notes to add to the invoice. Stored as a communication entry with the acting user's ID and timestamp.

tags
string

Comma-separated tags to apply to the invoice.

Responses
200

Invoice approved

success

Success

{
  "status": "OK",
  "msg": "Approve successful.",
  "result": 12345
}
object
status
string
Valid values[ "OK" ]
msg
string
result
400

Bad Request - Approval failed

duplicateApproved

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
}
duplicatePartiallyApproved

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
}
invoiceGroup

Invoice Group Not Actionable

{
  "status": "Error",
  "msg": "ID is of an invoice group and is not actionable.",
  "result": null
}
object
status
string
Valid values[ "Error" ]
msg
string
result
401

Unauthorized

403

Forbidden - Token not linked to user

notAuthorized

Not Authorized

{
  "status": "Error",
  "msg": "Token is not associated with a user. Approval actions require a user-linked token.",
  "result": null
}
object
status
string
Valid values[ "Error" ]
msg
string
result
404

Invoice not found

notFound

Not Found

{
  "status": "Error",
  "msg": "Record not found.",
  "result": null
}
object
status
string
Valid values[ "Error" ]
msg
string
result