Hello, I was trying to purchase Airtel Data Bundle using the API but it given me this response (Invalid Biller selected).
Below is my postdata and params. What am I doing wrong
$postdata = [
‘country’ => ‘NG’,
‘customer’ => $a_number,
‘amount’ => $a_amount,
‘recurrence’ => ‘ONCE’,
‘type’ => ‘BIL110’,
‘name’ => ‘BIL110’,
‘biller_code’ => ‘BIL110’,
‘is_airtime’ => false,
‘country’ => ‘NG’,
‘biller_name’ => ‘BIL110’,
‘reference’ => uniqid(time())
];
Hi @syntaxbyte 
Thank you for reaching out to us,
The request payload above is an invalid payload which resulted to the error you got.
Airtime bill payment only requires you to pass the country, customer, amount, and type, as the mandatory properties, and recurrence, reference, and biller_name as the optional properties.
Note: The biller_name property is only required for Ghana airtime bills.
You can check here for a sample request payload.
Endeavour to reach out if you have question.
Best regards,
Adekunle
is working fine for airtime ,note working for data_bundle
// https://api.flutterwave.com/v3/bill-categories?data_bundle=1
{
"status": "success",
"message": "bill categories retrieval successful",
"data": [
{
"id": 365,
"biller_code": "BIL108",
"name": "MTN 200 MB DATA BUNDLE",
"default_commission": 0.03,
"date_added": "2020-02-11T11:16:42.727Z",
"country": "NG",
"is_airtime": false,
"biller_name": "MTN 200 MB DATA BUNDLE",
"item_code": "MD142",
"short_name": "MTN 200 MB DATA BUNDLE",
"fee": 0,
"commission_on_fee": false,
"label_name": "Mobile Number",
"amount": 200
},
{
"id": 374,
"biller_code": "BIL109",
"name": "GLO 35 MB data bundle",
"default_commission": 0.03,
"date_added": "2020-02-11T11:16:42.727Z",
"country": "NG",
"is_airtime": false,
"biller_name": "GLO 35 MB data bundle",
"item_code": "MD146",
"short_name": "GLO 35 MB data bundle",
"fee": 0,
"commission_on_fee": false,
"label_name": "Mobile Number",
"amount": 100
}
]
}
The biller_name
field in the response is what you’ll use as the type
when creating a bill payment.
Take note of the amount
field in the bill category you want to pay. If it’s 0
(for example, in airtime), then you can send any amount you want when purchasing that bill. If it’s not 0 (for example, in data bundles), then the amount
you send must match the amount
specified.