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.
API Documentation for Payout Verification Functionality V1 & V2
This documentation provides step-by-step guidance for developers to integrate functionalities for verifying payout transactions status using PHP cURL or NodeJs. Each section includes the method, endpoint, request parameters, and sample responses.
GET https://mybundlepay.com/ng/api/verify-payout/{id}
HEADERS
Authorization* string
Pass your {secret_key} as a bearer token in the request header to authorize this call
Accept application/json
BODY PARAMS
The id parameter is a required string representing the unique payout ID.
< ?php
// API endpoint for verifyWithdrawal
$url = "https://mybundlepay.com/ng/api/verify-payout"; // Replace with your actual endpoint URL
// Replace {bearer_token} with the actual token
$bearerToken = "{bearer_token}";
// Transaction reference to be verified
$txnRef = "sample_txn_ref"; // Replace with the actual txn_ref value
// Initialize cURL
$ch = curl_init();
// Set cURL options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true); // HTTP POST
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'txn_ref' => $txnRef
])); // Data to be sent in the request body
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $bearerToken",
"Accept: application/json",
"Content-Type: application/x-www-form-urlencoded",
]);
// Execute cURL request
$response = curl_exec($ch);
// Check for cURL errors
if (curl_errno($ch)) {
echo "cURL Error: " . curl_error($ch);
curl_close($ch);
exit;
}
// Close the cURL session
curl_close($ch);
// Decode and process the response
$responseData = json_decode($response, true);
if (isset($responseData['status'])) {
if ($responseData['status'] === 'success') {
// Handle successful transactions
echo "Transaction Successful:\n";
// Check if the response indicates 'SUCCESS' or 'completed'
if (isset($responseData['data']['status']) && $responseData['data']['status'] === 'SUCCESS') {
echo "Status: SUCCESS (API V2)\n";
} elseif (isset($responseData['data']['status']) && $responseData['data']['status'] === 'completed') {
echo "Status: completed (API V1)\n";
}
// Print transaction details
print_r($responseData['data']);
} else {
// Handle failed transactions
echo "Transaction Failed:\n";
echo $responseData['message'] . "\n";
if (isset($responseData['data'])) {
echo "Additional Data:\n";
print_r($responseData['data']);
}
}
} else {
echo "Invalid API response:\n";
echo $response;
}
?>
const axios = require('axios');
// API endpoint for verifyWithdrawal
const url = "https://mybundlepay.com/ng/api/verifyWithdrawal"; // Replace with your actual endpoint URL
// Replace {bearer_token} with the actual token
const bearerToken = "{bearer_token}";
// Transaction reference to be verified
const txnRef = "sample_txn_ref"; // Replace with the actual txn_ref value
// Request payload
const data = new URLSearchParams({
txn_ref: txnRef
}).toString();
// Request configuration
const config = {
method: 'post',
url: url,
headers: {
'Authorization': `Bearer ${bearerToken}`,
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded'
},
data: data
};
// Make the request
axios(config)
.then(response => {
const responseData = response.data;
if (responseData.status) {
if (responseData.status === 'success') {
console.log("Transaction Successful:");
// Check if the response indicates 'SUCCESS' or 'completed'
if (responseData.data?.status === 'SUCCESS') {
console.log("Status: SUCCESS (API V2)");
} else if (responseData.data?.status === 'completed') {
console.log("Status: completed (API V1)");
}
// Print transaction details
console.log(responseData.data);
} else {
console.error("Transaction Failed:");
console.error(responseData.message);
if (responseData.data) {
console.log("Additional Data:");
console.log(responseData.data);
}
}
} else {
console.error("Invalid API response:");
console.error(responseData);
}
})
.catch(error => {
console.error("Error occurred:", error.message);
});
Pending Transaction Response
{
"status": "success",
"data": {
"id": "txn_12345",
"amount": 10000,
"status": "PENDING",
"bank_name": "First Bank of Nigeria",
"account_number": "1234567890",
"account_name": "John Doe"
}
}
Completed Transaction Response
Transaction Successful:
Status: completed (API V1)
Array
(
[txn_ref] => sample_txn_ref
[amount] => 5000
[bank_name] => Test Bank
[acct_name] => Test User
[status] => completed
[created_at] => 2025-01-10 14:00:00
)
Transaction Successful:
Status: SUCCESS (API V2)
Array
(
[txn_ref] => sample_txn_ref
[amount] => 5000
[destination_account_name] => Mybundlepay User
[destination_bank_name] => Mybundlepay Bank
[status] => SUCCESS
[created_at] => 2025-01-10 14:00:00
)