Skip to content
Loading keys…
Authorization<token>

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

Query Parameters

customer_idstring

One of your customers, by its `cus_` id.

amount_minnumber | null

Lower bound on `total`, in the major unit, as `total` reads. Each invoice is compared in its own currency.

amount_maxnumber | null

Upper bound on `total`, in the major unit.

cursorstring

The `next_cursor` of a previous response, a numbered page included: switches the list to cursor pagination.

per_pageinteger | null

Results per page, 1 to 100. Defaults to 25.

pageinteger

The page to read, from 1, for offset pagination. Ignored with `cursor`.

searchstring

Search over the name and email written on the invoice.

status"draft" | "sent" | "viewed" | "partial" | "paid" | "overdue" | "cancelled" | "refunded"

Only invoices in this status.

"draft""sent""viewed""partial""paid""overdue""cancelled""refunded"
sort_by"created_at" | "invoice_date" | "due_date" | "total" | "amount_paid" | "status"

The field to order by. Defaults to `created_at`. Any order other than `created_at` `desc` is paged by number: `cursor` is ignored and `meta` has neither `next_cursor` nor `has_more`.

"created_at""invoice_date""due_date""total""amount_paid""status"
sort_dir"asc" | "desc"

The direction of the order. Defaults to `desc`.

"asc""desc"
payment_status"unpaid" | "partially_paid" | "fully_paid"

Only invoices paid this far, read from `amount_paid` against `total`.

"unpaid""partially_paid""fully_paid"
date_fromstring | null

Lower bound on `invoice_date`, a date.

date_tostring | null

Upper bound on `invoice_date`, a date on or after `date_from`.

due_date_fromstring | null

Lower bound on `due_date`, a date.

due_date_tostring | null

Upper bound on `due_date`, a date on or after `due_date_from`.

Response Body

application/json

application/json

application/json

curl -X GET "https://api.wajub.com/invoices?customer_id=cus_7Kq2mX9vL4tRb3nP8sZcWd1e&amount_min=10000&amount_max=500000&per_page=10&page=2&search=amina&status=sent&sort_by=due_date&sort_dir=asc&payment_status=unpaid&date_from=2026-09-01&date_to=2026-09-30&due_date_from=2026-10-01&due_date_to=2026-10-31"
GET
/invoices
{  "code": 200,  "status": "OK",  "message": "Invoices retrieved",  "items": [    {      "id": "inv_Hq7Lm2Xp9Rt4Vb8Nc3Kd",      "invoice_number": "INV-2026-0001",      "document_type": "invoice",      "status": "sent",      "customer": null,      "customer_id": null,      "customer_name": "Amina Diallo",      "customer_email": "amina@example.com",      "customer_company_name": null,      "customer_phone": null,      "customer_address": null,      "invoice_date": "2026-09-16",      "due_date": "2026-09-30",      "currency": "XAF",      "language": "fr",      "subtotal": 50000,      "discount_amount": 0,      "tax_amount": 0,      "total": 50000,      "amount_paid": 0,      "amount_due": 50000,      "payment_type": "full",      "is_recurring": false,      "recurring_interval": null,      "next_invoice_date": null,      "recurring_parent": null,      "notes": null,      "terms": null,      "footer": null,      "accept": null,      "sent_at": "2026-09-16T10:15:37+00:00",      "paid_at": null,      "cancelled_at": null,      "items": [        {          "id": "9d3f6a2e-4b1c-4e8a-9f27-6c5d8b1a0e43",          "name": "Website design",          "description": null,          "quantity": 1,          "unit": null,          "unit_price": 50000,          "tax_rate": 0,          "tax_amount": 0,          "discount_type": null,          "discount_value": 0,          "discount_amount": 0,          "subtotal": 50000,          "total": 50000,          "sort_order": 0        }      ],      "created_at": "2026-09-16T09:12:04+00:00",      "updated_at": "2026-09-16T10:15:37+00:00"    }  ],  "meta": {    "current_page": 1,    "last_page": 1,    "per_page": 25,    "total": 1,    "next_cursor": null,    "has_more": false  }}

Invoices

What did you think of this content?