Approve purchase invoice
Approve a purchase invoice in circulation so it can be paid.
POST https://cotlet.dev/api/v1/procountor/invoices/{invoice_id}/purchase-invoice/approve
Does what Approve does in the Verification view: adds an approval stamp. If verifiers are specified, the invoice must be verified first. Once all approvers have approved, the status becomes Approved, the invoice counts as a business transaction and can be paid in the Payment view. This tool does not pay it. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| invoice_id string required | string | Purchase invoice ID from list_purchase_invoices. |
| comment string | string | Optional comment stored with the stamp. |
Request
curl -X POST https://cotlet.dev/api/v1/procountor/invoices/pi_77120/purchase-invoice/approve \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"comment":"Matches PO 4471"}' result = client.call("procountor", "approve_purchase_invoice", {"invoice_id":"pi_77120","comment":"Matches PO 4471"}) const result = await cotlet.call('procountor', 'approve_purchase_invoice', {"invoice_id":"pi_77120","comment":"Matches PO 4471"}); cotlet call procountor approve_purchase_invoice --data '{"invoice_id":"pi_77120","comment":"Matches PO 4471"}' Example response
{
"invoice_id": "pi_77120",
"status": "approved",
"stamp": {
"by": "You",
"at": "2026-10-14T09:14:00+03:00",
"comment": "Matches PO 4471"
}
}