Available in🇮🇳 India
Razorpay is a licensed Customer Operating Unit (COU) on the Bharat Bill Payment System (BBPS), India’s centralised, interoperable bill payment platform managed by NPCI. Using Razorpay’s BBPS integration, your platform can let customers discover billers, fetch bill amounts, and make payments across hundreds of utility categories.
How It Works
BBPS bill payments follow an asynchronous, multi-step flow:- Fetch Biller Categories - retrieve all available bill categories (electricity, water, gas, broadband, insurance, etc.).
- Fetch Billers - list billers within a chosen category.
- Fetch Biller Plans(optional) - retrieve plans offered by a biller where applicable (e.g. prepaid recharges).
- Create a Bill Request - submit the customer’s biller-specific identifiers (account number, consumer ID, etc.) to fetch the outstanding bill amount from the biller.
- Poll Bill Request - poll the Fetch Bill Request API until the status becomes
successorfailed. - Create a Bill Payment - initiate payment for the fetched bill amount.
- Poll Bill Payment - poll the Fetch Bill Payment API until the status becomes
successorfailed.
Prerequisites
Before you begin:- Complete API key generation on the Razorpay Dashboard.
- Ensure your account has BBPS access enabled. Contact Razorpay Support if you need it activated.
- Use your Test API Keys during development. Payments made with test keys are not processed on the live BBPS network.
Integration Steps
Step 1: Fetch Biller Categories
Step 1: Fetch Biller Categories
Use the Fetch Biller Categories API to retrieve all supported bill categories. Present these to your customer so they can choose the type of bill they want to pay. Use the returned
id in Step 2.Step 2: Fetch Billers
Step 2: Fetch Billers
Use the Fetch Billers API with the selected
category to retrieve all billers within that category. Each biller includes a gateway_data.account_holder_config.params list describing the customer inputs (for example, consumer number, account number) needed to identify the customer’s account on the biller. Use gateway_data.bill_request_config.bill_request_required to decide whether bill fetch is mandatory, optional, or unsupported.Step 3: Fetch Biller Plans (optional)
Step 3: Fetch Biller Plans (optional)
For billers that offer plans (such as prepaid recharges), use the Fetch Biller Plans API to retrieve available plans. Skip this step if the biller does not offer plans.
Step 4: Create a Bill Request
Step 4: Create a Bill Request
Use the Create a Bill Request API to fetch the outstanding bill amount for your customer from the biller’s system. This API returns immediately with a
processing status - move to Step 5 to poll for the result.Step 5: Poll the Bill Request
Step 5: Poll the Bill Request
Use the Fetch Bill Request API with the
id returned in Step 4. Poll at regular intervals until status is success or failed. On success, use the returned bills[].amount and bills[].bill_number in Step 6.Step 6: Create a Bill Payment
Step 6: Create a Bill Payment
Use the Create a Bill Payment API with the
bill_request_id from the successful bill request and the bills[].amount returned. Pass a unique X-Bill-Payments-Idempotency header (4-36 characters, alphanumeric with hyphens, underscores, or spaces; UUID v4 recommended) on every request to safely retry without creating duplicate payments. This API is asynchronous - move to Step 7 to poll for the result.Step 7: Poll the Bill Payment
Step 7: Poll the Bill Payment
Use the Fetch Bill Payment API with the
id returned in Step 6. Poll until status is success or failed, then display the result to your customer.Supported Bill Categories
BBPS supports a wide range of bill categories, including but not limited to:API Reference
Bill Payments API Home
Overview of all BBPS API endpoints.