The Monnify Bills Payment feature allows all Monnify merchants to Vend and Process Bills using their existing Monnify account. This includes services like Utility Bills, Airtime Topup, and other essential bills.
Access to the Bills Payment product is secured using Bearer Token authentication.
To use the service, you must first obtain an Access Token by authenticating with your API Key and Client Secret, which are available on your Monnify dashboard. This token must be included in the header of all subsequent requests to prove your identity as a merchant.
Integrating the Bill Payment product involves a high-level sequence of steps to ensure customers select the correct service and that their details are validated before any funds are debited.
| Step | Action | Description | Key Requirement |
|---|---|---|---|
| 1 | Get Categories | Display a list of general bill types (e.g., ELECTRICITY, CABLE_TV) for the user to select from. | None |
| 2 | List Billers | Show all available service providers (e.g., specific electricity companies) that fall under the selected category. | Category Code |
| 3 | List Products | Fetch the specific products offered by the selected biller (e.g., Prepaid Meter, Postpaid Meter, various Data Bundles). | Biller Code |
| 4 | Validate Customer | Required Step. The customer enters their unique identifier (e.g., meter number, phone number). The system validates these details before payment can proceed. | Product Code & Customer ID |
| 5 | Process/Vend Bill | Once validation is successful, initiate the actual payment transaction by sending the amount and the unique validation reference. | Validation Reference |
| 6 | Verify Status | Check the status of a transaction if it initially failed or is pending, or use this to retrieve the token or unit information for the customer. | Transaction Reference |
Consuming the Monnify Bills Payment service generally involves three primary phases: Discovery, Validation, and Vending.
categoryCode.billerCode.productCode and the customerId.productCode, customerId, a merchant-supplied vendReference (such as `RANDOM_REF`), and the vendAmount.transactionReference, the Merchant’s suppliedvendReference, and the vendStatus, which should be "SUCCESS" for a completed payment.The Validation step (Step 4) is critical. Before you can process a bill (Step 5), you must successfully validate the customer's ID against the chosen product. A successful validation generates a unique Validation Reference, which acts as a secure key required to successfully complete the final Vend request. This ensures that the payment is directed to the correct customer account.
For detailed information on URLs, HTTP methods, and data fields for each step above, see the Bill Payment API Reference
How would you rate your experience?