Billers API
The Billers API provides a unified and reliable interface for integrating bill payment services into your applications. It enables businesses and platforms to offer utility bill payments, airtime top-ups, and mobile data purchases through a single integration.
The API supports both individual and bulk transactions, making it suitable for mobile apps, fintech platforms, and enterprise payment systems.
Capabilities
- Retrieve available bill service providers
- Validate customer accounts before payment
- Process bill payments securely
- Purchase airtime and mobile data
- Execute bulk transactions efficiently
Authentication
Endpoints Overview
| Method | Endpoint | Description |
|---|---|---|
| GET | /bill-payments/bill-services | Retrieves all available bill service providers, including airtime, mobile data, bill payment, and bulk services. |
| GET | /bill-payments/data-bundles/{telco-name} | Fetches available airtime or data bundles for a specified telecom provider. |
| POST | /bill-payments/account-lookup | Validates a customer bill account before payment and returns account details when the lookup succeeds. |
| POST | /bill-payments/pay-bill | Processes a bill payment for a validated customer account. |
| POST | /bill-payments/bulk-pay-bill | Processes multiple bill payments in a single request. |
| POST | /bill-payments/purchase-airtime | Purchases airtime for a mobile number. |
| POST | /bill-payments/bulk-airtime-purchase | Processes airtime purchases for multiple phone numbers in one request. |
| POST | /bill-payments/purchase-mobile-data | Purchases a mobile data bundle for a customer. |
| POST | /bill-payments/bulk-mobile-data-purchase | Processes multiple mobile data bundle purchases in one request. |
/bill-payments/bill-services1. Get Bill Services
Retrieves all available bill service providers, including airtime, mobile data, bill payment, and bulk services.
Request
No request body required.
{
"code": "00",
"data": [
{
"description": "Airtime Purchase",
"id": 8,
"name": "Airtime Purchase",
"service_type": "BILL",
"status": 1
},
{
"description": "Mobile Data Purchase",
"id": 9,
"name": "Mobile Data Purchase",
"service_type": "BILL",
"status": 1
},
{
"description": "Bill Payment",
"id": 10,
"name": "Bill Payment",
"service_type": "BILL",
"status": 1
},
{
"description": "Mobile Data Purchase",
"id": 11,
"name": "Bulk Mobile Data Purchase",
"service_type": "BILL",
"status": 1
},
{
"description": "Bulk Airtime Purchase",
"id": 12,
"name": "Bulk Airtime Purchase",
"service_type": "BILL",
"status": 1
},
{
"description": "Bulk Bill Payment",
"id": 13,
"name": "Bulk Bill Payment",
"service_type": "BILL",
"status": 1
}
],
"msg": "Bill Services.",
"status": "SUCCESS"
}/bill-payments/data-bundles/{telco-name}2. Get Bundles By Telco
Fetches available airtime or data bundles for a specified telecom provider.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| telco-name | string | Yes | Telecom provider name, for example mtn. |
Request
No request body required.
{
"code": "00",
"data": [
{
"airtime_code": "MTNDATA",
"data_category": "FIXED",
"data_id": "NACT_Midnight_GHC3_Others",
"data_name": "NACT_Midnight_GHC3_Others",
"data_price": "3.0000",
"data_validity": "NO EXPIRY",
"data_volume": "GHS 3 (7.27 GB) of midnight bundle",
"flexible_amount": 0,
"id": 1,
"type": "DataBundle"
},
{
"airtime_code": "MTNDATA",
"data_category": "FLEXI",
"data_id": "RACT_Data_Flexi_Bundle",
"data_name": "RACT_Data_Flexi_Bundle",
"data_price": "0.0000",
"data_validity": "NO EXPIRY",
"data_volume": "Flexi",
"flexible_amount": 1,
"id": 2,
"type": "DataBundle"
},
{
"airtime_code": "MTNDATA",
"data_category": "FIXED",
"data_id": "RACT_Data_GHC_10_Others",
"data_name": "RACT_Data_GHC_10_Others",
"data_price": "10.0000",
"data_validity": "NO EXPIRY",
"data_volume": "826.72 MB",
"flexible_amount": 0,
"id": 5,
"type": "DataBundle"
}
],
"msg": "Bill Services.",
"status": "SUCCESS"
}/bill-payments/account-lookup3. Bill Account Lookup
Validates a customer bill account before payment and returns account details when the lookup succeeds.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| account_number | string | Yes | Customer account number with the biller. |
| biller_slug | string | Yes | Biller service provider slug. |
| phone_number | string | Yes | Registered customer phone number. |
{
"account_number": "0174102476796",
"biller_slug": "electricity-company-of-ghana",
"phone_number": "233244505019"
}{
"code": "00",
"data": {
"account_name": "John Doe .",
"account_number": "012344748394",
"closing_balance": "0",
"opening_balance": "0"
},
"msg": "Account Number Verified.",
"status": "SUCCESS"
}/bill-payments/pay-bill4. Pay Bill
Processes a bill payment for a validated customer account.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| transaction_id | string | Yes | Unique merchant-generated transaction ID. |
| amount | number | Yes | Transaction amount. |
| biller_slug | string | Yes | Biller service provider slug. |
| account_name | string | Yes | Registered customer or account name. |
| account_number | string | Yes | Customer account or mobile number with the service provider. |
| phone_number | string | No | Registered customer phone number in international format. |
| narration | string | No | Narration for the transaction. |
{
"transaction_id": "BPDED43904343333",
"amount": 10,
"biller_slug": "electricity-company-of-ghana",
"account_name": "John Doe.",
"phone_number": "2335465783940",
"account_number": "0174102476456",
"narration": "Pay Bills"
}{
"code": "00",
"data": {
"transaction_id": "BPDED491434013",
"transaction_message": "Request Processed"
},
"msg": "Bill Payment Processed Successfully.",
"status": "SUCCESS"
}/bill-payments/bulk-pay-bill5. Bulk Pay Bills
Processes multiple bill payments in a single request.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| bills | array | Yes | List of bill payment transactions to process. |
| bills[].transaction_id | string | Yes | Unique merchant-generated transaction ID. |
| bills[].amount | number | Yes | Transaction amount. |
| bills[].biller_slug | string | Yes | Biller service provider slug. |
| bills[].account_name | string | Yes | Registered customer or account name. |
| bills[].account_number | string | Yes | Customer account or mobile number with the service provider. |
| bills[].phone_number | string | No | Registered customer phone number in international format. |
| bills[].narration | string | No | Narration for the transaction. |
{
"bills": [
{
"transaction_id": "BPDED43904343333",
"amount": 10,
"biller_slug": "electricity-company-of-ghana",
"account_name": "JOHN DOE.",
"phone_number": "233123456789",
"account_number": "0174102476796",
"narration": "Pay Bills"
},
{
"transaction_id": "FDDED43904343334",
"amount": 20,
"biller_slug": "electricity-company-of-ghana",
"account_name": "JAMES MADISSON",
"phone_number": "233546124946",
"account_number": "0174102476796",
"narration": "November Bills"
}
]
}{
"code": "00",
"data": {
"bulk_transaction_id": "BLKe2yfDG9JVWIHVSi0",
"results": [
{
"message": "Transaction initiated",
"status": "SUCCESS",
"transaction_id": "BPDED43904343343"
},
{
"message": "Transaction initiated",
"status": "SUCCESS",
"transaction_id": "BPDED43903343333"
}
]
},
"msg": "Bulk Airtime Purchase Processed.",
"status": "SUCCESS"
}/bill-payments/purchase-airtime6. Purchase Airtime
Purchases airtime for a mobile number.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| transaction_id | string | Yes | Unique merchant-generated transaction ID. |
| amount | number | Yes | Transaction amount. |
| biller_slug | string | Yes | Biller service provider slug. |
| account_name | string | Yes | Registered customer or account name. |
| account_number | string | Yes | Customer account or mobile number with the service provider. |
| phone_number | string | No | Registered customer phone number in international format. |
| narration | string | No | Narration for the transaction. |
{
"transaction_id": "BPDED4391434013",
"amount": 0.5,
"biller_slug": "mtn-airtime",
"account_name": "James Brown",
"phone_number": "233557340000",
"account_number": "2335573994",
"narration": "Buy airtime"
}{
"code": "00",
"data": {
"transaction_id": "BPDED491434013",
"transaction_message": "Request Processed"
},
"msg": "Bill Payment Processed Successfully.",
"status": "SUCCESS"
}/bill-payments/bulk-airtime-purchase7. Bulk Purchase Airtime
Processes airtime purchases for multiple phone numbers in one request.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| bills | array | Yes | List of airtime purchase transactions to process. |
| bills[].transaction_id | string | Yes | Unique merchant-generated transaction ID. |
| bills[].amount | number | Yes | Transaction amount. |
| bills[].biller_slug | string | Yes | Biller service provider slug. |
| bills[].account_name | string | Yes | Registered customer or account name. |
| bills[].account_number | string | Yes | Customer account or mobile number with the service provider. |
| bills[].narration | string | No | Narration for the transaction. |
{
"bills": [
{
"transaction_id": "BPDED113114340155",
"amount": 0.5,
"biller_slug": "mtn-airtime",
"account_name": "James Bond",
"account_number": "233123457690",
"narration": "Buy airtime james"
},
{
"transaction_id": "BPDED123114340156",
"amount": 0.3,
"biller_slug": "mtn-airtime",
"account_name": "Rose Bond",
"account_number": "23354234567",
"narration": "Buy airtime rose"
},
{
"transaction_id": "BPDED133114340157",
"amount": 0.2,
"biller_slug": "mtn-airtime",
"account_name": "William Kwamz",
"account_number": "23334586595",
"narration": "Buy airtime William"
},
{
"transaction_id": "BPDED133124340158",
"amount": 0.2,
"biller_slug": "mtn-airtime",
"account_name": "Frank Bond",
"account_number": "23345768943",
"narration": "Buy airtime"
}
]
}{
"code": "00",
"data": {
"bulk_transaction_id": "BLKQaBWs19V59YkzbZl",
"results": [
{
"message": "Transaction initiated",
"status": "SUCCESS",
"transaction_id": "BPDED113114340105"
},
{
"message": "Transaction initiated",
"status": "SUCCESS",
"transaction_id": "BPDED123114347156"
},
{
"message": "Transaction initiated",
"status": "SUCCESS",
"transaction_id": "BPDED133114349157"
},
{
"message": "Transaction initiated",
"status": "SUCCESS",
"transaction_id": "BPDED133127340158"
}
]
},
"msg": "Bulk Airtime Purchase Processed.",
"status": "SUCCESS"
}/bill-payments/purchase-mobile-data8. Purchase Mobile Data
Purchases a mobile data bundle for a customer.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| transaction_id | string | Yes | Unique merchant-generated transaction ID. |
| amount | number | Yes | Transaction amount. |
| biller_slug | string | Yes | Biller service provider slug. |
| account_name | string | Yes | Registered customer or account name. |
| account_number | string | Yes | Customer account or mobile number with the service provider. |
| narration | string | No | Narration for the transaction. |
| data_id | string | Yes | Unique data bundle package ID returned by Get Bundles By Telco. |
{
"transaction_id": "BPDED4311431231",
"amount": 3,
"biller_slug": "mtn-data-bundle",
"account_name": "Anton Bond",
"account_number": "23323456777",
"data_id": "RACT_Social_Flexi_Bundle",
"narration": "Wannna Buy Some Data."
}{
"code": "00",
"data": {
"transaction_id": "BPDED4311434231",
"transaction_message": "Request Processed"
},
"msg": "Bundle Purchase Processed Successfully.",
"status": "SUCCESS"
}/bill-payments/bulk-mobile-data-purchase9. Bulk Purchase Mobile Data
Processes multiple mobile data bundle purchases in one request.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| bills | array | Yes | List of mobile data purchases to process. |
| bills[].transaction_id | string | Yes | Unique merchant-generated transaction ID. |
| bills[].amount | number | Yes | Transaction amount. |
| bills[].biller_slug | string | Yes | Biller service provider slug. |
| bills[].account_name | string | Yes | Registered customer or account name. |
| bills[].account_number | string | Yes | Customer account or mobile number with the service provider. |
| bills[].narration | string | No | Narration for the transaction. |
| bills[].data_id | string | Yes | Unique data bundle package ID returned by Get Bundles By Telco. |
{
"bills": [
{
"transaction_id": "BPDED43911302021",
"amount": 0.5,
"biller_slug": "mtn-data-bundle",
"account_name": "JOHN DOE",
"account_number": "23323456788",
"data_id": "RACT_Social_Flexi_Bundle",
"narration": "Wannna Buy Some Data Now."
},
{
"transaction_id": "BPDED031911302231",
"amount": 0.4,
"biller_slug": "mtn-data-bundle",
"account_name": "SANDRA DOE",
"account_number": "233247880344",
"data_id": "RACT_Social_Flexi_Bundle",
"narration": "Wannna Buy Some Data."
}
]
}{
"code": "00",
"data": {
"bulk_transaction_id": "BLKCZJotEPHsreC03BK",
"results": [
{
"message": "Transaction initiated",
"status": "SUCCESS",
"transaction_id": "BPDED4391102021"
},
{
"message": "Transaction initiated",
"status": "SUCCESS",
"transaction_id": "BPDED03911302231"
}
]
},
"msg": "Bulk Mobile Data Purchase Processed.",
"status": "SUCCESS"
}