Reference
Bills & Payments
Supplier invoices with staged payment, WHT on payment, and void support.
Bills are supplier invoices you owe. Unlike expenses (immediate cash out), bills sit in accounts payable until paid — often in instalments. Each payment posts its own GL entry, with WHT handled at payment time.
List bills
/v1/billsReturns bills for a business, newest first.
Query parameters
| Field | Type | Required | Notes |
|---|---|---|---|
businessId | string | yes | |
limit | integer | no | Default 50, max 100. |
status | string | no | draft, unpaid, partial, paid, overdue, voided. |
supplierId | string | no |
Get a single bill
/v1/bills/{id}Fetches one bill. Supplier PII is decrypted in the response.
Create a bill
/v1/billsRecords a supplier bill in accounts payable.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
supplierId | string | yes | Must be an active supplier. |
billDate | ISO 8601 | yes | Bill issue date. |
dueDate | ISO 8601 | yes | Payment due date. |
lineItems | array | yes | 1–100 items with description, quantity, unitPrice, accountId. |
vatRate | number | no | Defaults to 7.5. |
notes | string | no | |
reference | string | no | Supplier's bill number. |
Response — 201
{
"success": true,
"data": {
"id": "bill_abc",
"number": "BILL-2026-003",
"totalKobo": 10750000,
"total": 107500,
"amountPaidKobo": 0,
"amountDueKobo": 10750000,
"status": "unpaid",
"createdAt": "2026-04-17T10:30:00.000Z"
}
}Update a bill
/v1/bills/{id}Edits an unpaid bill. Paid and voided bills are immutable.
Void a bill
/v1/bills/{id}/voidCancels an unpaid bill and reverses its GL entry.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
reason | string | yes | Shown in the audit trail. |
Record a payment against a bill
/v1/bills/{id}/paymentsApplies a payment. WHT is computed and transferred to the payable account automatically.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
amount | number | yes | Naira amount of this payment (not total bill). |
paymentDate | ISO 8601 | no | Defaults to today. |
paymentMethod | string | no | cash, bank_transfer, card, mobile_money, cheque. |
whtRate | number | no | WHT percentage to withhold on this payment. |
reference | string | no | Bank transaction ID or cheque number. |
notes | string | no |
The bill's status advances to partial or paid based on the running
total. When whtRate > 0, a transfer JE moves the WHT from provision (2022)
to payable (2027).
List payments for a bill
/v1/bills/{id}/paymentsReturns all payments applied to this bill.
Related endpoints
- Suppliers
- Expenses — for one-off purchases paid immediately
- Journal Entries
Reference index
Back to all modules