GET https://mybundlepay.com/ng/api/v2/virtual-card/users

KEY USAGE POLICY

Important: Use your test_secret_key for sandbox testing. Switch to live_secret_key only when you are ready to go live.

  • Test calls return mock card user data.
  • Live calls fetch actual card users linked to your business account.
  • Ensure your server IP is whitelisted before calling live endpoints.

⚠️ Do not use live keys for testing — unauthorized IPs will be blocked.

HEADERS

Authorization * string

Send your {secret_key} as a Bearer token in the header.

Content-Type * application/json

All requests must use JSON body format.

IP WHITELISTING

Only authorized server IPs can access this endpoint. Whitelist your IP in MyBundlePay Dashboard.

BODY PARAMS

Parameter Required Description
page Page number to fetch card users (default: 1).
per_page Number of users per page (default: 10).

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://mybundlepay.com/ng/api/v2/virtual-card/users',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_POSTFIELDS =>'{
    "page": "1",
    "per_page": "3"
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'Authorization: Bearer {secret_key}'
  ),
));

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

const axios = require('axios');

const data = {
  page: "1",
  per_page: "3"
};

axios.get("https://mybundlepay.com/ng/api/v2/virtual-card/users", {
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer {secret_key}"
  },
  data: data
})
.then(res => console.log(res.data))
.catch(err => console.error(err.response ? err.response.data : err.message));
✅ Success Response

{
  "status": "success",
  "message": "Card users fetched successfully.",
  "data": {
    "users": [
      {
        "customer_email": "john@example.com",
        "id_number": "A23456789",
        "id_type": "NIN",
        "first_name": "John",
        "last_name": "Doe",
        "phone_number": "+2348012345678",
        "city": "Lagos",
        "state": "Lagos",
        "country": "Nigeria",
        "zip_code": "100001",
        "line1": "10 MyBundle Street",
        "house_name": "Victory Villa",
        "bvn": "2233445566",
        "id_image": "https://mybundlepay.com/uploads/ids/id123.png",
        "user_photo": "https://mybundlepay.com/uploads/photos/photo123.png",
        "date_of_birth": "1992-05-14",
        "ref": "USER-REF001",
        "status": "ACTIVE"
      }
    ],
    "meta": {
      "total": 1,
      "per_page": 3,
      "current_page": 1,
      "last_page": 1
    }
  },
  "mode": "test"
}
❌ Error Response (Invalid Token)

{
  "status": "failed",
  "code": "INVALID_TOKEN",
  "message": "Invalid secret key provided.",
  "mode": "test"
}
❌ Error Response (IP Not Authorized)

{
  "status": "failed",
  "code": "IP_NOT_AUTHORIZED",
  "message": "Your IP is not authorized for API access.",
  "ip": "54.86.50.139",
  "mode": "live"
}