Authorization
default A public key (pk./pk_test.) is accepted on /payments, /customers, /links, /invoices and the catalogue reads (/channels, /providers, /countries, /currencies); anything that moves money out, reads the balance or manages the account answers 406 to it. It is an identifier, never an authorization. Use a secret key (sk./sk_test.) for sensitive operations (transfers, refunds, balance), or a restricted key (rk./rk_test.) scoped to specific permissions. The _test. variant of any key selects the sandbox environment, there is no separate sandbox URL. Never expose your secret key in client-side code.
In: header
Path Parameters
The invoice `id`.
Request Body
application/json
The amount received, in the major unit and at most the currency's decimals (none for XAF), at least one minor unit (1 XAF, 0.01 EUR, 0.001 KWD). Defaults to the balance (`amount_due`).
Your reference for the money received (a bank transfer number, a receipt). Kept on the payment the invoice records, which the Dashboard shows in its history; the API does not return it.
The day the money came in. Becomes `paid_at` when this payment settles the invoice; today otherwise.
How the payment was received, free text up to 255 characters, such as `cash` or `bank transfer`.
Your note on the payment, up to 1 000 characters.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.wajub.com/invoices/inv_Hq7Lm2Xp9Rt4Vb8Nc3Kd/mark-paid" \ -H "Content-Type: application/json" \ -d '{}'{ "code": 200, "status": "OK", "message": "Invoice marked as paid", "invoice": { "id": "inv_Hq7Lm2Xp9Rt4Vb8Nc3Kd", "invoice_number": "INV-2026-0001", "status": "partial", "total": 50000, "amount_paid": 20000, "amount_due": 30000, "paid_at": null }}Partly paid