Understanding Bill Payments With Flutterwave

article feature image

Flutterwave’s Bill Payments APIs make it possible for businesses to re-sell bill payment services such as airtime, data bundles, power and cable tv, allowing them to make some profit via commissions. 

To help software developers and businesses further understand how Bill Payments APIs work, we hosted a webinar on Thursday, August 26 2021. During this webinar, Cornelius Ashley-Osuzoka, a Developer Experience Engineer at Flutterwave, spoke extensively about our Bill Payments APIs, helping everyone understand what they do, the types & classes of bill payments we support and how they could make the most of them. The webinar was moderated by Rotimi Okungbaye, one of our Product Marketing Managers.  

This article is a short recap of the webinar, you can watch the entire recording below. 

During the webinar, Cornelius discussed:

  • Why Bill Payments Are Important
  • Supported Bill Types & Categories
  • How Flutterwave Handles Bill Payments
  • How To Make Bill Payments With Flutterwave
  • Handling Failed & Erroneous Payments

Why Bill Payments Are Important

Online bill payments have simplified a lot of services for us, gone are the days when you had to visit the bank to pay for your utility bills like power. Bill payments have made life easier for us. 

For businesses, implementing this feature can help you make more profit through commissions. If you have a fintech product, this feature helps you to provide more value to your customers. They can easily buy airtime, data, pay for their power and cable tv. 

Supported Bill Types & Categories

  • Airtime Bills – Nigeria, Ghana, Kenya & Zambia
  • Data Bundles – Nigeria, Kenya & Zambia
  • Power Bills – Nigeria, Kenya & Zambia
  • Cable TV – Nigeria, Kenya, Ghana & Zambia
  • Internet Service Providers – Nigeria (Spectranet, ipNX, Smile)

How Flutterwave Handles Bill Payments

What exactly happens when someone is trying to pay a bill, for example, they are trying to buy airtime. The following processes occur:

  • Once they try to pay, you (business) will call our APIs from your servers.
  • Once we get the call, we try to resolve your keys, this is done to tie your account to the API request. This helps us know who is making this request.
  • The next step is to validate your request, we’ll check a few things like:
    – If you have the right balance to cover the bill payment
    – If you’re passing the correct details for the right biller. For example, you will need to pass the details for airtime payment instead of data bundle.
    – If the ID of the recipient of this bill payment you’re sending to us is valid. 
  • Once everything is correct, this will be sent to our Provider, in this case, the Provider is the telecommunication company you want to buy the airtime from. 
  • The Provider sends it back to us, then we check what is being sent back to know the status of the response. 
  • If the payment succeeds, we’ll update the transaction status indicating success. 
  • The next step is to send you (business) a successful transaction API response. You’ll use this to give your customer an update, inform them about the transaction and providing value (the airtime).
  • If when checking, we found a problem and the transaction failed, the first thing we’ll do is reverse the debit while we were validating. 
  • After reversing the debit, we’ll update the transaction status to failed so that we’re telling why it failed, what the customer should do before retrying.
  • Then, we’ll send you the API response to either retry the transaction or tell the customer about the cause of the error so that they can initiate a retry.   

How To Make Bill Payments With Flutterwave

This was an extensive demo session where Cornelius showed us how to make airtime, data bundle and power bills payments using the Bill Payments APIs. You can watch the demo session here, starting from “9:27”. 

Handling Failed & Erroneous Payments

Why Do Bill Payments Fail? 

  • Insufficient funds in your available balance Flutterwave dashboard. 
  • Invalid customer ID –  this happens when the wrong customer ID is filled in, examples are mobile number, smartcard number etc. 
  • Downtime at the Provider end – this doesn’t happen frequently but the best thing to do is just retry. 

What To Do When There’s No Successful Response

When you don’t get a successful response, you will most likely get a pending or a failed response.

Pending Response

  • Keep polling the get status API endpoint for the final status.
  • When you get the final status (failed or successful), update your customers. If it failed, you should also tell them the reason.  

Failed Response

  • Once you get a failed response, the first thing you should do is to confirm a debit reversal. If there wasn’t a reversal, you should reach out to the Flutterwave Support team. 
  • Once there’s a debit reversal, try to debug your payload based on the error message you’re getting to know what the issue is and at what stage you’re getting the error.
  • Once the error has been identified and resolved, you should retry the bill payment.   

This article isn’t exhaustive, to dig deeper into this conversation, watch the recording of the webinar on our YouTube channel. You can also subscribe and hit the notification button to know when new content goes up on our channel.  

If you are thinking about integrating Flutterwave products into your project, visit our documentation page to learn more & start collecting payments in 5 minutes. 

You can also follow our Engineering team on Twitter to get regular updates about our activities like webinars, hackathons and more. If you have questions and would like to reach out to the team, you can send us an email here or join our slack community to engage with our software engineers.