curl --request POST \
--url https://sandbox.cashfree.com/bbps/cou/v1/billers/info \
--header 'Content-Type: application/json' \
--header 'x-client-id: <api-key>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"biller_fetch_request": {
"biller_id": [
"OANSTOP00NAT01"
],
"biller_category_name": [
"DTH"
]
}
}
'import requests
url = "https://sandbox.cashfree.com/bbps/cou/v1/billers/info"
payload = { "biller_fetch_request": {
"biller_id": ["OANSTOP00NAT01"],
"biller_category_name": ["DTH"]
} }
headers = {
"x-client-id": "<api-key>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-client-id': '<api-key>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
biller_fetch_request: {biller_id: ['OANSTOP00NAT01'], biller_category_name: ['DTH']}
})
};
fetch('https://sandbox.cashfree.com/bbps/cou/v1/billers/info', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.cashfree.com/bbps/cou/v1/billers/info",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'biller_fetch_request' => [
'biller_id' => [
'OANSTOP00NAT01'
],
'biller_category_name' => [
'DTH'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-client-id: <api-key>",
"x-client-secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.cashfree.com/bbps/cou/v1/billers/info"
payload := strings.NewReader("{\n \"biller_fetch_request\": {\n \"biller_id\": [\n \"OANSTOP00NAT01\"\n ],\n \"biller_category_name\": [\n \"DTH\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-client-id", "<api-key>")
req.Header.Add("x-client-secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.cashfree.com/bbps/cou/v1/billers/info")
.header("x-client-id", "<api-key>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"biller_fetch_request\": {\n \"biller_id\": [\n \"OANSTOP00NAT01\"\n ],\n \"biller_category_name\": [\n \"DTH\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/bbps/cou/v1/billers/info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-client-id"] = '<api-key>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"biller_fetch_request\": {\n \"biller_id\": [\n \"OANSTOP00NAT01\"\n ],\n \"biller_category_name\": [\n \"DTH\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "OK",
"message": "Billers info fetched successfully",
"data": [
{
"biller_id": "OANSTOP00NAT01",
"biller_alias_name": "VAL2 Alias",
"biller_name": "OANS",
"biller_category_name": "DTH",
"biller_mode": "OFFLINEA",
"biller_accepts_adhoc": true,
"biller_coverage": "IND",
"fetch_requirement": "NOT_SUPPORTED",
"payment_amount_exactness": "",
"support_bill_validation": "OPTIONAL",
"biller_effctv_from": "2016-07-08",
"biller_effctv_to": "2029-05-18",
"biller_customer_params": [
{
"param_name": "a",
"data_type": "NUMERIC",
"optional": false,
"min_length": 1,
"max_length": 3,
"regex": "",
"visibility": true
},
{
"param_name": "a b",
"data_type": "NUMERIC",
"optional": false,
"min_length": 1,
"max_length": 3,
"regex": "",
"visibility": true
},
{
"param_name": "a b c",
"data_type": "NUMERIC",
"optional": false,
"min_length": 1,
"max_length": 3,
"regex": "",
"visibility": true
},
{
"param_name": "a b c d",
"data_type": "NUMERIC",
"optional": false,
"min_length": 1,
"max_length": 3,
"regex": "",
"visibility": true
},
{
"param_name": "a b c d e",
"data_type": "NUMERIC",
"optional": false,
"min_length": 1,
"max_length": 3,
"regex": "",
"visibility": true
}
],
"biller_payment_modes": [
{
"payment_mode": "Internet Banking",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "Debit Card",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "Credit Card",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "Prepaid Card",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "IMPS",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "Cash",
"min_limit": 1,
"max_limit": 4999900,
"support_pending_status": ""
},
{
"payment_mode": "UPI",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "Wallet",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "NEFT",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
}
],
"biller_description": "",
"support_pending_status": "No",
"support_deemed": "Yes",
"biller_time_out": "",
"biller_ownership": "PSU",
"biller_payment_channels": [
{
"payment_channel": "INT",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "INTB",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "MOB",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "MOBB",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "POS",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "MPOS",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "ATM",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "BNKBRNCH",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "KIOSK",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "AGT",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "BSC",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
}
],
"biller_response_params": {
"amount_options": [
{
"amount_breakup_set": [
"BASE_BILL_AMOUNT"
]
}
]
},
"biller_additional_info": [],
"biller_additional_info_payment": [],
"plan_additional_info": [],
"interchange_fee_conf": [],
"interchange_fee": [],
"status": "ACTIVE",
"plan_mdm_requirement": "NOT_SUPPORTED"
}
]
}{
"message": "biller_fetch_request.biller_category_name[1] : is missing in the request. Value received: ",
"code": "biller_fetch_request.biller_category_name[1]_missing",
"type": "invalid_request_error"
}{
"message": "authentication Failed",
"code": "request_failed",
"type": "authentication_error"
}{
"message": "Too many requests from IP. Check headers",
"code": "request_failed",
"type": "rate_limit_error"
}{
"message": "internal Server Error",
"code": "internal_error",
"type": "api_error"
}Fetch Billers Info
Use this API to fetch the complete catalog and MDM (Master Data Management) details of billers registered under BBPS. Use this to understand biller configuration, required customer input parameters, supported payment modes and channels, and fee structures. If the request body is omitted, all billers are returned.
curl --request POST \
--url https://sandbox.cashfree.com/bbps/cou/v1/billers/info \
--header 'Content-Type: application/json' \
--header 'x-client-id: <api-key>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"biller_fetch_request": {
"biller_id": [
"OANSTOP00NAT01"
],
"biller_category_name": [
"DTH"
]
}
}
'import requests
url = "https://sandbox.cashfree.com/bbps/cou/v1/billers/info"
payload = { "biller_fetch_request": {
"biller_id": ["OANSTOP00NAT01"],
"biller_category_name": ["DTH"]
} }
headers = {
"x-client-id": "<api-key>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-client-id': '<api-key>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
biller_fetch_request: {biller_id: ['OANSTOP00NAT01'], biller_category_name: ['DTH']}
})
};
fetch('https://sandbox.cashfree.com/bbps/cou/v1/billers/info', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.cashfree.com/bbps/cou/v1/billers/info",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'biller_fetch_request' => [
'biller_id' => [
'OANSTOP00NAT01'
],
'biller_category_name' => [
'DTH'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-client-id: <api-key>",
"x-client-secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.cashfree.com/bbps/cou/v1/billers/info"
payload := strings.NewReader("{\n \"biller_fetch_request\": {\n \"biller_id\": [\n \"OANSTOP00NAT01\"\n ],\n \"biller_category_name\": [\n \"DTH\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-client-id", "<api-key>")
req.Header.Add("x-client-secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.cashfree.com/bbps/cou/v1/billers/info")
.header("x-client-id", "<api-key>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"biller_fetch_request\": {\n \"biller_id\": [\n \"OANSTOP00NAT01\"\n ],\n \"biller_category_name\": [\n \"DTH\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/bbps/cou/v1/billers/info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-client-id"] = '<api-key>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"biller_fetch_request\": {\n \"biller_id\": [\n \"OANSTOP00NAT01\"\n ],\n \"biller_category_name\": [\n \"DTH\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "OK",
"message": "Billers info fetched successfully",
"data": [
{
"biller_id": "OANSTOP00NAT01",
"biller_alias_name": "VAL2 Alias",
"biller_name": "OANS",
"biller_category_name": "DTH",
"biller_mode": "OFFLINEA",
"biller_accepts_adhoc": true,
"biller_coverage": "IND",
"fetch_requirement": "NOT_SUPPORTED",
"payment_amount_exactness": "",
"support_bill_validation": "OPTIONAL",
"biller_effctv_from": "2016-07-08",
"biller_effctv_to": "2029-05-18",
"biller_customer_params": [
{
"param_name": "a",
"data_type": "NUMERIC",
"optional": false,
"min_length": 1,
"max_length": 3,
"regex": "",
"visibility": true
},
{
"param_name": "a b",
"data_type": "NUMERIC",
"optional": false,
"min_length": 1,
"max_length": 3,
"regex": "",
"visibility": true
},
{
"param_name": "a b c",
"data_type": "NUMERIC",
"optional": false,
"min_length": 1,
"max_length": 3,
"regex": "",
"visibility": true
},
{
"param_name": "a b c d",
"data_type": "NUMERIC",
"optional": false,
"min_length": 1,
"max_length": 3,
"regex": "",
"visibility": true
},
{
"param_name": "a b c d e",
"data_type": "NUMERIC",
"optional": false,
"min_length": 1,
"max_length": 3,
"regex": "",
"visibility": true
}
],
"biller_payment_modes": [
{
"payment_mode": "Internet Banking",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "Debit Card",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "Credit Card",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "Prepaid Card",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "IMPS",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "Cash",
"min_limit": 1,
"max_limit": 4999900,
"support_pending_status": ""
},
{
"payment_mode": "UPI",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "Wallet",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
},
{
"payment_mode": "NEFT",
"min_limit": 1,
"max_limit": 0,
"support_pending_status": ""
}
],
"biller_description": "",
"support_pending_status": "No",
"support_deemed": "Yes",
"biller_time_out": "",
"biller_ownership": "PSU",
"biller_payment_channels": [
{
"payment_channel": "INT",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "INTB",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "MOB",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "MOBB",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "POS",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "MPOS",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "ATM",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "BNKBRNCH",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "KIOSK",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "AGT",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
},
{
"payment_channel": "BSC",
"min_limit": 1,
"max_limit": 20000000,
"support_pending_status": ""
}
],
"biller_response_params": {
"amount_options": [
{
"amount_breakup_set": [
"BASE_BILL_AMOUNT"
]
}
]
},
"biller_additional_info": [],
"biller_additional_info_payment": [],
"plan_additional_info": [],
"interchange_fee_conf": [],
"interchange_fee": [],
"status": "ACTIVE",
"plan_mdm_requirement": "NOT_SUPPORTED"
}
]
}{
"message": "biller_fetch_request.biller_category_name[1] : is missing in the request. Value received: ",
"code": "biller_fetch_request.biller_category_name[1]_missing",
"type": "invalid_request_error"
}{
"message": "authentication Failed",
"code": "request_failed",
"type": "authentication_error"
}{
"message": "Too many requests from IP. Check headers",
"code": "request_failed",
"type": "rate_limit_error"
}{
"message": "internal Server Error",
"code": "internal_error",
"type": "api_error"
}Authorizations
Your unique client identifier issued by Cashfree. You can find this in your Merchant Dashboard.
Your unique client secret issued by Cashfree. Keep this confidential and never expose it in client-side code. You can find this in your Merchant Dashboard.
Body
Request parameters to fetch biller catalog and MDM details.
Filter criteria. If omitted, all billers are returned. If both biller_id and biller_category_name are provided, results are a union.
Show child attributes
Show child attributes
Response
Success response for fetching the complete catalog and MDM details of billers registered under BBPS.
Was this page helpful?