Build With MyBundlePay

One integration for payments, cards, bills and payouts.

MyBundlePay gives developers a clean payment gateway, virtual account funding, payout rails, card issuing tools, bill payments, webhooks and merchant-ready checkout experiences.

REST APIs JSON based
Webhooks Real time events
Sandbox Test first

API Test Console

Test the current endpoint directly from the documentation. Secret keys stay inside this browser session.

Enter your test key, review the sample body for this page, then send a request.

API Documentation for Fetching Data Bundles by Biller

Overview

This endpoint allows fintech developers to fetch available data bundles for a specified biller in Nigeria via MyBundlePay’s API.

Important: You must first fetch available data bundle billers using the /api/data-bundle-billers/NG endpoint to obtain the correct biller identifiers before calling this endpoint.


POST https://mybundlepay.com/ng/api/data-bundles

HEADERS

Authorization* string

Pass your {secret_key} as a Bearer token in the request header to authorize this call.

Content-Type* string

Must be set to application/json

BODY PARAMS

biller* string

The biller identifier obtained from the /api/data-bundle-billers/NG endpoint, e.g. mtn-data-ng.

RESPONSE

Success response example:


{
    "status": true,
    "bundles": [
        {
            "name": "110MB for Daily - Daily",
            "price": 10000,
            "code": "100_30",
            "validity": "Daily",
            "data": "110MB for Daily"
        },
        {
            "name": "500MB for Daily - Daily",
            "price": 35000,
            "code": "350_30",
            "validity": "Daily",
            "data": "500MB for Daily"
        }
        // ... additional bundles
    ]
}

                            

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://mybundlepay.com/ng/api/data-bundles',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "biller": "mtn-data-ng"
  }',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'Authorization: Bearer {secret_key}'
  ),
));

$response = curl_exec($curl);
curl_close($curl);
echo $response;

                                

const axios = require('axios');

axios.post('https://mybundlepay.com/ng/api/data-bundles', {
    biller: 'mtn-data-ng'
}, {
    headers: {
        'Authorization': 'Bearer {secret_key}',
        'Content-Type': 'application/json'
    }
})
.then(response => {
    console.log(response.data);
})
.catch(error => {
    console.error(error.response ? error.response.data : error.message);
});

                                

ERROR RESPONSES


{
    "message": "Invalid token",
    "status": "failed"
}
{
    "message": "User not found",
    "status": "failed"
}
{
    "message": "Business not found",
    "status": "failed"
}
{
    "message": "KYC not approved",
    "status": "failed"
}
{
    "message": "You are restricted from fetching data bundles due to suspicious activity.",
    "status": "failed"
}
{
    "status": false,
    "message": "Unsupported country"
}