GET https://mybundlepay.com/ng/api/v2/virtual-card/{card_id}/transactions

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 keys use sandbox endpoints for mock data.
  • Live keys connect directly to your MyBundlePay virtual card account.
  • Ensure your IP is whitelisted in your MyBundlePay Dashboard.

⚠️ Unauthorized IPs or live key misuse will be blocked automatically.

HEADERS

Authorization * string

Send your {secret_key} as a Bearer token.

Content-Type application/json

JSON format is required.

IP WHITELISTING

Only registered server IPs can call this endpoint. Update your IP list in your MyBundlePay Dashboard.

QUERY PARAMS

Parameter Required Description
order Transaction order (ASC or DESC). Default: ASC
page Pagination page number. Default: 1
take Number of transactions per page. Default: 10

PATH PARAM

Parameter Required Description
card_id Unique ID of the virtual card to fetch transactions for.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://mybundlepay.com/ng/api/v2/virtual-card/xxxx-a228-4ec2-9337-xxxxxxx/transactions?order=DESC&page=1&take=10',
  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_HTTPHEADER => array(
    'Authorization: Bearer {secret_key}'
  ),
));

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

const axios = require('axios');

axios.get("https://mybundlepay.com/ng/api/v2/virtual-card/xxxx-a228-4ec2-9337-xxxxxxx/transactions?order=DESC&page=1&take=10", {
  headers: {
    "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 transactions fetched successfully.",
    "data": {
        "transactions": [
            {
                "id": "xxxx-81dc-475f-bdac-xxxx",
                "createdAt": "2025-11-02T23:18:13.090Z",
                "amount": "5",
                "cardBalanceAfter": "4450",
                "type": "credit",
                "method": "topup",
                "narrative": "Top-up card",
                "status": "success",
                "currency": "usd",
                "reference": "MBP-TEST-amount055216564",
                "cardId": "xxxx-a228-4ec2-9337-xxxxxxx"
            }
        ],
        "meta": {
            "page": 1,
            "take": 10,
            "itemCount": 12,
            "pageCount": 2,
            "hasPreviousPage": false,
            "hasNextPage": true
        }
    },
    "mode": "test"
}
❌ Error Response (Missing Parameter)

{
  "status": "failed",
  "message": "The card_id parameter is required.",
  "mode": "test"
}
❌ Error Response (Invalid Token)

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

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