POST https://mybundlepay.com/ng/api/v1/card/fund-card

KEY USAGE POLICY

Important: Always begin testing with your test_secret_key. This simulates requests without funding real cards.

  • Use test_secret_key for sandbox calls.
  • Switch to secret_key (Live Key) only when ready for production.
  • test_secret_key returns simulated responses and does not affect live balances.
  • secret_key will debit your wallet and actually fund the card.

⚠️ Going live without testing may cause failed transactions or blocked access.

HEADERS

Authorization * string

Pass your {secret_key} as a Bearer token.

Content-Type * application/json

All requests must be sent in JSON format.

BODY PARAMS

The ID of the virtual card to be funded (UUID generated when card is issued).

The amount to be funded, expressed in the smallest denomination of the card's currency.
Example: For USD, send in cents ($1).


<?php
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => "https://mybundlepay.com/ng/api/v1/card/fund-card",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => json_encode([
        "card_id" => "{card_id}",
        "amount" => $1
    ]),
    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: "{card_id}",
  amount: $1
};

axios.post("https://mybundlepay.com/ng/api/v1/card/fund-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);
});

curl -X POST "https://mybundlepay.com/ng/api/v1/card/fund-card" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {secret_key}" \
-d '{
  "card_id": "{card_id}",
  "amount": $1
}'
Success Response

{
  "status": "success",
  "message": "Card funded successfully",
  "data": {
    "card_id": "{card_id}",
    "amount": 100,
    "currency": "USD",
    "balance": 1500,
    "transaction_id": "txn_12345",
    "raw_response": { /* MyBundlePay response */ }
  }
}
Common Error Responses

Insufficient Balance400


{
  "status": "failed",
  "message": "Insufficient balance to fund card."
}

Validation Error400


{
  "status": "failed",
  "message": "The amount field must be at least 1."
}

Invalid Token401


{
  "status": "failed",
  "message": "Invalid token format"
}

Card Not Found404


{
  "status": "failed",
  "message": "Card not found"
}