BILLS PAYMENT
Overview
Pay airtime, data, cable TV, and electricity bills on behalf of your customers using the Public API. Charges are debited from your business NGN wallet.
/v1/bills
All Bills Payment endpoints live under this base path.
Use this section to
- Discover available billers, data plans, and cable plans
- Verify a customer's meter or smartcard before charging them
- Purchase airtime, data, cable TV, or electricity
- Check transaction status and handle webhooks for pending payments
Response format
Success
{
"status": "success",
"message": "...",
"data": { }
}Error
{
"status": "error",
"code": "ERROR_CODE",
"message": "..."
}Idempotency - the reference field
Every purchase request takes a reference — a unique key you generate per purchase.
- Retrying a purchase with the same
referencewill not charge you again; it returns the original transaction. - Your value is echoed back as
merchant_referencein responses. - Our own transaction ID is returned as
referencein the response — use that value for status polling.
Important: Always generate a new, unique reference for each distinct purchase. Reusing one on purpose is the supported way to retry a failed request safely.
Typical integration flow
- Get Billers pick a biller slug for the category you need.
- Data / Cable only get the available plans and pick a package id.
- Cable / Electricity (recommended) - verify the customer to confirm their name before charging them.
- Purchase calls the airtime, data, cable, or electricity endpoint.
- If the response is pending, resolve it via the webhook or by polling the transaction status.
Questions? Email [email protected]. Also on GitBook.