How to build bill payment & recharge system for Bharat and make a side-income with impact
Tags: payments, fintech, inclusion, tutorial
Published: 2023-03-02 12:33:08

[Eko](https://developers.eko.in) recently held its [monthly community meetup](https://dsc.gg/ekodevs) to teach how to build a bill payments system. This is what we learned in the meetup. You can watch the [recording of the event here](https://youtu.be/sZWBKZfFiDM).


## What is Eko?

Eko offers a range of financial transactions such as domestic money transfers, bill payments, etc. for individuals who may not have access to traditional banking options or don't want to use them. These transactions can be performed by visiting a nearby shopkeepers who have partnered with Eko. In addition, Eko APIs are also open for developers to build on top of its ecosystem.


## What is BBPS?
> Bharat Bill Payment System

BBPS is an integrated bill payment system in India operated by [NPCI(National Payments Corporation India)](https://en.wikipedia.org/wiki/National_Payments_Corporation_of_India), an initiative by Reserve Bank of India. BBPS simplifies the payment process for utility bills such as phone, electricity bills, gas, etc. Many billers have registered on BBPS to get paid for their bills. Now a user do not have to go to different payment services of these billers rather simply pay all their bills for different service providers via a single platform.

### Which bills can be paid using BBPS?

![BBPS billers categories](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zekj76l44nlpg63im5dt.png)

Some of the categories of the billers registered with BBPS are - Broadband Postpaid, Gas, Donation, DTH, Mobile Prepaid, Tax, Credit Card, Electricity, Landline Postpaid, Mobile Postpaid, Water, Housing Society, Subscription, Education, Municipal Taxes, Clubs and Associations, Cable TV, LPG Cylinder, Hospital, Insurance, Loan, FASTag, Municipal Services, Rental Payment, etc.

## Business case : Why build bill payment system
> tl;dr: Earn commission from each transaction and make an impact

Utility bill payment is a recurring transaction. Each month, almost every adult needs to pay some of their bills in order get the essential utilities in life such as electricity, phone, gas, etc. to name a few. For people who want to pay in cash, either have to stand in the line every month to pay the bills or use unreliable services.

Many people pay their bills in cash because

* They don't have bank accounts : 19Cr people in India
* They do not have internet connections : 19Cr people in India
* Do not have basic literacy : 23% people in India
* They find cash payment convenient
* They want to pay in cash because of privacy concerns

What if you can build a bill payment system where they can pay their bills in cash! With Eko APIs, building such system becomes easier and a commission is rewarded to the developer for each bill payment transaction.

> This is not only a big opportunity to make money but also to make an impact in lives of these people who don't have any other option

Build the bill payment system once, install it where you can get the customers, and earn on each transaction. This could be a great side-income with most of your effort being one time when you build the system.

You may also want to scale and increase your earnings by expanding your business. One way to achieve this is by bringing on board business partners or employees who can connect with your target audience and utilize your system for transactions.

### Offline vs Online BBPS
> Trade off settlement time for higher commission

There are two transaction modes available in Eko BBPS APIs - Offline and Online. Offline BBPS payment settlement happens after a day and Online BBPS payment settlement happens instantly. At the time of transaction, you can choose which mode you want to use.

![Difference between Offline vs Online transaction](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q1yg7nrzw1fsa9ueqxez.png)

<tr/>

## How to integrate BBPS API?

It is only a 2-3 steps process. You only need to integrate couple of APIs to build the complete system.

### 1. Get operators list
`GET /ekoapi/v2/billpayments/operators` | [API Reference](https://developers.eko.in/reference/get-operator-list-api)

You can use this API to get the list of all the operators available for bill payment. Once your customer comes to you, you use this list to choose the appropriate operator that you want to pay for.

You might want to filter the operators based on your service location or categories to quickly choose the desired operator. And for that, following APIs will be useful

* [API to get operators locations](https://developers.eko.in/reference/get-operator-location-list-1)
* [API to get categories of operators](https://developers.eko.in/reference/get-operator-category-list)

**Authentication**

If you try these, you are likely to get authentication error. To fix that, you'll need to [authenticate your API requests](https://developers.eko.in/docs/authentication)

### 2. Fetch bill

Once you have the operator info and relevant customer info, you can make a request to fetch the bill for that customer.

```
POST /ekoapi/v2/billpayments/fetchbill?initiator_id=9962981729

// --data-raw 
{
    "operator_id":"22",
    "utility_acc_no":"151627591",
    "confirmation_mobile_no":"9999999999",
    "source_ip":"121.121.1.1",
    "user_code":"20810200",
    "client_ref_id":"202105311125123456",
    "sender_name":"Kaushik",,
    "latlong":"77.06794760,77.06794760"
}
```

[API Reference](https://developers.eko.in/reference/fetch-bills-api)

As different operators may expect different fields, you can get the list of parameters they expect for the bill, you can [**get operators parameters for fetch_bills request**](https://developers.eko.in/reference/get-operator-parameters-api)

### 3. Pay the bill

Now that you have all the information about the customer and the bill you want to pay for, you can go ahead and request the api to pay the bill. 

```
POST https://staging.eko.in:25004/ekoapi/v2/billpayments/paybill?initiator_id=9962981729

// --data-raw 
{
    "amount":"50",
    "operator_id":"22",
    "utility_acc_no":"151627591",
    "source_ip":"121.121.1.1",
    "user_code":"20810200",
    "client_ref_id":"202105311125123456",
    "confirmation_mobile_no":"9999999999",
    "sender_name":"Kaushik",
    "latlong":"77.06794760,77.06794760"
    "hc_channel" : 1 
}
```
[API Reference](https://developers.eko.in/reference/pay-bills-api)

And you're done.


### 4. Transaction enquiry

[API Reference](https://developers.eko.in/reference/fund-transfer-inquiry)

Once the transaction is done, you can use transaction enquiry API to get the status of your transaction.


And that's it. Your bill payment system is ready. Whatever else you want to add to your solution to innovate, is up to you. But now, you are ready to get an audience to pay for bills.

We respect your commitment to provide financial capabilities to those who may not have access to traditional banking options.


## Conclusion

Building bill payment system is easy using Eko APIs. This can be a source of income for entrepreneurs and developers, at the same time this brings financial inclusion for people who do not have access to normal banking services.

Resources
* Join Eko FinTech Developers community on [Discord](https://dsc.gg/ekodevs)
* Learn [Eko APIs](https://developers.eko.in)
* Check out [Eko node.js SDK](https://github.com/ekoindia/eko-sdk-node)