Overview
The bill payment flow lets you pay any biller supported by Interswitch — mobile recharge, data bundles, electricity prepaid/postpaid, cable TV subscriptions, and more. The typical integration follows these steps:- Discover available categories and billers
- Fetch payment options to get the
paymentCodefor the specific product - Validate the customer’s account or meter number
- Pay the bill
- Poll for status if you need a definitive confirmation
All amounts are in kobo. ₦100 =
10000 kobo. Always send integer strings, e.g. "50000" for ₦500.Step-by-step guide
List bill categories
Fetch the top-level categories (e.g. Mobile Recharge, Electricity, Cable TV).Response
Get payment options (paymentCode)
Each biller has one or more payment options — for example MTN has separate options for ₦100, ₦200, ₦500, etc. You need the Response
paymentCode from this step to pay.When
Amount is "0", the biller accepts any amount and you must supply amount yourself. When Amount is a non-zero value, the API enforces that exact amount.Validate the customer
For electricity and some other billers, validate the meter/account number before paying. This step is optional for airtime but strongly recommended for postpaid services.Response
Pay the bill
Submit the payment. Use the Response
paymentCode from step 3 and the validated customerId from step 4.Endpoints reference
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/bills/categories | List all bill categories |
GET | /api/v1/bills/category/billers?category= | List billers in a category |
GET | /api/v1/bills/services | List all billers across all categories |
GET | /api/v1/bills/services/options?serviceId= | Get payment options for a biller |
GET | /api/v1/bills/search?q= | Search billers by keyword |
GET | /api/v1/bills/validate?customerId=&serviceId= | Validate a customer/meter |
POST | /api/v1/bills/pay | Pay a bill |
GET | /api/v1/bills/status?reference= | Check payment status |
Pay bill request body
The payment option code retrieved from
GET /api/v1/bills/services/options. Identifies the exact product being purchased.The customer’s identifier — a phone number for airtime/data, a meter number for electricity, or a smart card number for cable TV.
Amount in kobo as a string (e.g.
"10000" for ₦100). Required when the payment option has a flexible amount (Amount: "0"). For fixed-price options the API will use the preset amount and reject a mismatched value.A unique 13-digit reference you generate for this transaction (e.g.
"1234567890123"). Store this — you’ll use it to check status.Email address of the end customer. Used for receipts and notifications.
Mobile number of the end customer. Used for receipts and notifications.
