Invalid Biller selected response

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())
];

1 Like

Hi @syntaxbyte :wave:

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.

It is still not working, it returns {
“status”: “error”,
“message”: “Invalid Biller selected”,
“data”: null
}