POST https://mybundlepay.com/ng/api/v2/virtual-card/fetch-card

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 virtual card details.
  • Live calls return actual virtual card data for your business.
  • Ensure your IP address is whitelisted on your MyBundlePay Dashboard.

⚠️ 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
card_id Unique identifier of the virtual card to fetch.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://mybundlepay.com/ng/api/v2/virtual-card/fetch-card',
  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 =>'{
    "card_id": "xxxxx-8535-4961-a720-xxxxxxx"
  }',
  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 = {
  card_id: "xxxxx-8535-4961-a720-xxxxxxx"
};

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

{
  "status": "success",
  "message": "Card fetched successfully.",
  "data": {
    "card_Id": "xxxxx-8535-4961-a720-xxxxxxx",
    "card_balance": "5000.00",
    "cardNumber": "411111******1111",
    "cardName": "Test User",
    "cardType": "Virtual",
    "cardBrand": "VISA",
    "cvv2": "123",
    "card_expiry": "12/30",
    "card_status": "ACTIVE",
    "valid": "10/2028",
    "card_reference": "SIM-REF-001",
    "card_city": "Lagos",
    "card_street": "10 MyBundlePay Ave",
    "card_country": "NG",
    "card_zipCode": "100001",
    "card_countryCode": "NG"
  },
  "mode": "test"
}
❌ Error Response (Invalid Token)

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

{
  "status": "failed",
  "message": "Card not found or not assigned to your business.",
  "mode": "live"
}