Post https://mybundlepay.com/ng/api/transaction/verify
HEADERS
Authorization* string
Pass your {secret_key} as a bearer token in the request header to authorize this call.
Content-Type application/json
Ensure requests are sent as JSON.
BODY PARAMS
Your unique transaction reference you used during virtual account creation. This is used to verify funding status.
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://mybundlepay.com/ng/api/transaction/verify",
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 => json_encode([
"tx_ref" => "TX8456463755"
]),
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Authorization: Bearer {secret_key}"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
var axios = require('axios');
var data = JSON.stringify({
"tx_ref": "TX8456463755"
});
var config = {
method: 'post',
url: 'https://mybundlepay.com/ng/api/transaction/verify',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer {secret_key}'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Sample Responses
✅ Successful Transaction (Funded)
{
"status": "success",
"message": "Transaction verified successfully",
"data": {
"amount": 5000,
"accountNumber": "60225522600",
"accountName": "MYBUNDLEPAYLTD Checkout",
"currency": "NGN",
"expired_at": "2025-09-18 11:22:54"
}
}
❌ Pending Transaction (Active)
{
"status": "failed",
"message": "Transaction not yet funded",
"data": {
"amount": 5000,
"accountNumber": "60225522600",
"accountName": "MYBUNDLEPAYLTD Checkout",
"currency": "NGN",
"expired_at": "2025-09-18 11:22:54"
}
}