API Test Keys
Fetch Biller Plans
GET/v1/bill_payments/biller_plansClick to copy
Use this endpoint to retrieve the catalogue of available prepaid plans (mobile prepaid, DTH packages, broadband plans) for one or more billers. Display recharge options to your customers and enable them to select and purchase plans without leaving your platform. Supports filtering by plan type, amount range and validity period.
Incremental Sync
Pass updated_since (Unix timestamp) to fetch only plans updated after a specific time. Use this to keep your local plan catalogue in sync without re-fetching the entire list.
Is this page helpful?
Curl
1curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \2-X GET "https://api.razorpay.com/v1/bill_payments/biller_plans?biller_id[]=biller1&biller_id[]=biller2&updated_since=1765009452&count=50&skip=0"
Success
Failure
1{2"entity": "collection",3"count": 2,4"items": [5{6"id": "rzp_plan_1",7"entity": "bill_payment.biller_plan",8"gateway_plan_id": "ZEESPLAN1",9"gateway": "bbps",10"biller_id": "biller_001",11"gateway_biller_id": "TPOW00000MUM01",12"name": "ZEE 5 Premium",13"duration": "1 month",14"description": "All ZEE5 Originals and Exclusives, Blockbuster Movies, All ALT Balaji Shows, Zindagi TV Shows, inKids, Live TV, TV shows before telecast. Watch on 5 devices at a time.",15"amount": 12100,16"currency": "INR",17"category": "Premium",18"sub_category": ["1 month", "limited availability"],19"status": "active",20"effective_from": 1609459200,21"effective_to": 1735689600,22"created_at": 1609459200,23"updated_at": 1609459200,24"data": {25"package_name": "Zee 5 premium",26"Package Duration": "1 month",27"<KEY>": "<VALUE>"28}29},30{31"id": "rzp_plan_2",32"entity": "bill_payment.biller_plan",33"gateway_plan_id": "ZEESPLAN2",34"gateway": "bbps",35"biller_id": "biller_001",36"gateway_biller_id": "TPOW00000MUM01",37"name": "ZEE 5 exclusive",38"duration": "3 months",39"description": "All ZEE5 specials for you, shows before telecast. Grab before its gone.",40"amount": 17900,41"currency": "INR",42"category": "Exclusive",43"sub_category": ["specials", "3 months", "limited availability"],44"status": "active",45"effective_from": 1609459200,46"effective_to": 1735689600,47"created_at": 1609459200,48"updated_at": 1609459200,49"data": {50"package_name": "Zee 5 exclusives",51"Package Duration": "3 months"52}53}54]55}
Query Parameters
biller_id array Razorpay biller identifier(s) (path param). Use to fetch plans for specific billers. For example, biller_001.
gateway_biller_id arrayBBPS official biller id(s). Use to fetch plans for specific billers by their NPCI id.
plan_id arrayRazorpay internal plan id(s). Use to fetch updated details of specific plans.
updated_since integerUnix timestamp in seconds. Returns only plans updated after this time. Use for incremental sync.
skip integer Offset for pagination. Default is 0.
count integer Number of plans per page. Default is 50. Maximum is 100.
Response Parameters
entitystring Entity type identifier. Here, collection.
countintegerNumber of plans in this response.
itemsarrayArray of plan objects.
items[].idstringRazorpay internal plan id assigned to the plan. Use for tracking and analytics.
items[].entitystring Entity type. Always bill_payment.biller_plan.
items[].gateway_plan_idstringNPCI-provided plan id. Mandatory to send in bill request for plan validation.
items[].gatewaystring Payment gateway. Defaults to bbps.
items[].biller_idstringRazorpay biller id reference. Use for internal mapping.
items[].gateway_biller_idstringNPCI biller id. Use to verify the plan matches the selected biller.
items[].namestringPlan name given by the biller. Show to the customer on the UI.
items[].durationstringPlan duration given by the biller. Show to the customer on the UI.
items[].descriptionstringPlan details to show to the customer on the UI.
items[].amountinteger Plan price in paise. Display as ₹{amount/100} on the UI. Payment uses this exact amount and is non-editable by the customer.
items[].currencystring ISO currency code. Always INR for BBPS.
items[].categorystring Primary plan category. Use for UI grouping. For example, Premium, Combo, Data, Voice.
items[].sub_categoryarrayPlan sub-type or variant. Can be part of multiple sub-categories. Use to filter by duration or plan type.
items[].statusenum Plan availability status. Values: active, deactivated. Show only active plans on the UI.
items[].effective_frominteger Plan validity start date (Unix seconds). Show only if current_date >= effective_from.
items[].effective_tointeger Plan validity end date (Unix seconds). Hide if current_date > effective_to.
items[].created_atintegerPlan creation timestamp (Unix seconds). Use to inform merchants when the plan was created in Razorpay's database.
items[].updated_atintegerLast update timestamp (Unix seconds). Use to inform merchants when the plan was last updated in Razorpay's database.
items[].dataobject Dynamic key-value pairs from biller. Display additional plan info such as package_name, Package Duration.
Errors
The biller_id is missing or invalid.
Error Status: 400
biller_id is required.
Solution
Biller does not support plan-based payments.
Error Status: 400
The biller is not configured for prepaid plans.
Solution
The count exceeds the maximum limit.
Error Status: 400
Count exceeds maximum limit of 100.
Solution
Unable to fetch plans from NPCI.
Error Status: 502
NPCI did not respond within the timeout window.
Solution
The API <key/secret> provided is invalid.
Error Status: 401
The API credentials passed in the request differ from the ones generated on the Dashboard.
Solution
Fetch Biller Plans
GET/v1/bill_payments/biller_plansClick to copy
Use this endpoint to retrieve the catalogue of available prepaid plans (mobile prepaid, DTH packages, broadband plans) for one or more billers. Display recharge options to your customers and enable them to select and purchase plans without leaving your platform. Supports filtering by plan type, amount range and validity period.
Incremental Sync
Pass updated_since (Unix timestamp) to fetch only plans updated after a specific time. Use this to keep your local plan catalogue in sync without re-fetching the entire list.
Is this page helpful?
Query Parameters
biller_id array Razorpay biller identifier(s) (path param). Use to fetch plans for specific billers. For example, biller_001.
gateway_biller_id arrayBBPS official biller id(s). Use to fetch plans for specific billers by their NPCI id.
plan_id arrayRazorpay internal plan id(s). Use to fetch updated details of specific plans.
updated_since integerUnix timestamp in seconds. Returns only plans updated after this time. Use for incremental sync.
skip integer Offset for pagination. Default is 0.
count integer Number of plans per page. Default is 50. Maximum is 100.
Response Parameters
entitystring Entity type identifier. Here, collection.
countintegerNumber of plans in this response.
itemsarrayArray of plan objects.
items[].idstringRazorpay internal plan id assigned to the plan. Use for tracking and analytics.
items[].entitystring Entity type. Always bill_payment.biller_plan.
items[].gateway_plan_idstringNPCI-provided plan id. Mandatory to send in bill request for plan validation.
items[].gatewaystring Payment gateway. Defaults to bbps.
items[].biller_idstringRazorpay biller id reference. Use for internal mapping.
items[].gateway_biller_idstringNPCI biller id. Use to verify the plan matches the selected biller.
items[].namestringPlan name given by the biller. Show to the customer on the UI.
items[].durationstringPlan duration given by the biller. Show to the customer on the UI.
items[].descriptionstringPlan details to show to the customer on the UI.
items[].amountinteger Plan price in paise. Display as ₹{amount/100} on the UI. Payment uses this exact amount and is non-editable by the customer.
items[].currencystring ISO currency code. Always INR for BBPS.
items[].categorystring Primary plan category. Use for UI grouping. For example, Premium, Combo, Data, Voice.
items[].sub_categoryarrayPlan sub-type or variant. Can be part of multiple sub-categories. Use to filter by duration or plan type.
items[].statusenum Plan availability status. Values: active, deactivated. Show only active plans on the UI.
items[].effective_frominteger Plan validity start date (Unix seconds). Show only if current_date >= effective_from.
items[].effective_tointeger Plan validity end date (Unix seconds). Hide if current_date > effective_to.
items[].created_atintegerPlan creation timestamp (Unix seconds). Use to inform merchants when the plan was created in Razorpay's database.
items[].updated_atintegerLast update timestamp (Unix seconds). Use to inform merchants when the plan was last updated in Razorpay's database.
items[].dataobject Dynamic key-value pairs from biller. Display additional plan info such as package_name, Package Duration.
Errors
The biller_id is missing or invalid.
Error Status: 400
biller_id is required.
Solution
Biller does not support plan-based payments.
Error Status: 400
The biller is not configured for prepaid plans.
Solution
The count exceeds the maximum limit.
Error Status: 400
Count exceeds maximum limit of 100.
Solution
Unable to fetch plans from NPCI.
Error Status: 502
NPCI did not respond within the timeout window.
Solution
The API <key/secret> provided is invalid.
Error Status: 401
The API credentials passed in the request differ from the ones generated on the Dashboard.
Solution
Curl
1curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \2-X GET "https://api.razorpay.com/v1/bill_payments/biller_plans?biller_id[]=biller1&biller_id[]=biller2&updated_since=1765009452&count=50&skip=0"
Success
Failure
1{2"entity": "collection",3"count": 2,4"items": [5{6"id": "rzp_plan_1",7"entity": "bill_payment.biller_plan",8"gateway_plan_id": "ZEESPLAN1",9"gateway": "bbps",10"biller_id": "biller_001",11"gateway_biller_id": "TPOW00000MUM01",12"name": "ZEE 5 Premium",13"duration": "1 month",14"description": "All ZEE5 Originals and Exclusives, Blockbuster Movies, All ALT Balaji Shows, Zindagi TV Shows, inKids, Live TV, TV shows before telecast. Watch on 5 devices at a time.",15"amount": 12100,16"currency": "INR",17"category": "Premium",18"sub_category": ["1 month", "limited availability"],19"status": "active",20"effective_from": 1609459200,21"effective_to": 1735689600,22"created_at": 1609459200,23"updated_at": 1609459200,24"data": {25"package_name": "Zee 5 premium",26"Package Duration": "1 month",27"<KEY>": "<VALUE>"28}29},30{31"id": "rzp_plan_2",32"entity": "bill_payment.biller_plan",33"gateway_plan_id": "ZEESPLAN2",34"gateway": "bbps",35"biller_id": "biller_001",36"gateway_biller_id": "TPOW00000MUM01",37"name": "ZEE 5 exclusive",38"duration": "3 months",39"description": "All ZEE5 specials for you, shows before telecast. Grab before its gone.",40"amount": 17900,41"currency": "INR",42"category": "Exclusive",43"sub_category": ["specials", "3 months", "limited availability"],44"status": "active",45"effective_from": 1609459200,46"effective_to": 1735689600,47"created_at": 1609459200,48"updated_at": 1609459200,49"data": {50"package_name": "Zee 5 exclusives",51"Package Duration": "3 months"52}53}54]55}