One integration for payments, cards, bills and payouts.
MyBundlePay gives developers a clean payment gateway, virtual account funding, payout rails, card issuing tools, bill payments, webhooks and merchant-ready checkout experiences.
API Test Console
Test the current endpoint directly from the documentation. Secret keys stay inside this browser session.
Enter your test key, review the sample body for this page, then send a request.
POST https://mybundlepay.com/ng/api/v2/dynamic/verify
Description
Verify the payment status of a previously generated Dynamic Virtual Account
using the transaction reference (tx_ref) returned during account creation.
HEADERS
Authorization * String
Pass your Secret Key as a Bearer Token.
Content-Type application/json
All requests must be sent as JSON.
BODY PARAMETERS
The unique transaction reference generated during Dynamic Virtual Account creation.
Response Fields
| Field | Description |
|---|---|
| reference | Your transaction reference. |
| amount | Amount paid. |
| charges | Transaction processing fee. |
| accountNumber | Virtual account number used for payment. |
| accountName | Virtual account name. |
| bank | Bank assigned to the virtual account. |
| status | Payment status (PAID, PENDING, EXPIRED). |
| paymentReference | Provider payment reference. |
| sessionId | NIBSS Session ID. |
| contractReference | Provider contract reference. |
| originatorAccountNumber | Sender account number. |
| originatorName | Name of the payer. |
| service | Payment channel/service. |
| narration | Payment narration. |
| created_at | Transaction creation time. |
| updated_at | Last transaction update. |
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://mybundlepay.com/ng/api/v2/dynamic/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" => "MBP-0012-001"
]),
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Authorization: Bearer {secret_key}"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
const axios = require('axios');
axios.post(
'https://mybundlepay.com/ng/api/v2/dynamic/verify',
{
tx_ref: 'MBP-0012-001'
},
{
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer {secret_key}'
}
}
)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.log(error.response.data);
});
Sample Response
{
"status": "success",
"message": "Transaction verified successfully.",
"data": {
"reference": "MBP-0012-001",
"amount": "100.00",
"charges": "10.00",
"accountNumber": "8880002192",
"accountName": "MYBUNDLEPAY CHECKOUT",
"bank": "Rubies Bank",
"status": "PAID",
"paymentReference": "4Y5TWIAB16WMVQRICYQ4ZO35XX5M24",
"sessionId": "4Y5TWIAB16WMVQRICYQ4ZO35XX5M24",
"contractReference": "20260706FT00000000000000012602",
"originatorAccountNumber": "1000001421",
"originatorName": "MYBUNDLEPAY LTD",
"service": "INTERNAL",
"narration": "test",
"created_at": "2026-07-06 14:24:12",
"updated_at": "2026-07-06 14:25:46"
}
}