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 Balance — 400
{
"status": "failed",
"message": "Insufficient balance to fund card."
}
Validation Error — 400
{
"status": "failed",
"message": "The amount field must be at least 1."
}
Invalid Token — 401
{
"status": "failed",
"message": "Invalid token format"
}
Card Not Found — 404
{
"status": "failed",
"message": "Card not found"
}