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, above zero. Defaults to the invoice total.
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