Post https://www.web.metropayhq.com/api/kuda/request
HEADERS
Authorization* string
Pass your {secret_key} as a bearer token in the request header to authorize this call
BODY PARAMS
Kuda service type. Use one of the supported service types listed below.
Request payload for the selected service type.
Optional request reference. If omitted, we generate one.
RESPONSE STRUCTURE
{ "message": "success | failed", "status": "success | failed", "data": { ...Kuda response... }, "request_ref": "string" }
SUPPORTED SERVICE TYPES
Banking: BANK_LIST, NAME_ENQUIRY, ADMIN_CREATE_VIRTUAL_ACCOUNT, ADMIN_UPDATE_VIRTUAL_ACCOUNT, ADMIN_ENABLE_VIRTUAL_ACCOUNT, ADMIN_DISABLE_VIRTUAL_ACCOUNT, ADMIN_VIRTUAL_ACCOUNTS, RETRIEVE_SINGLE_VIRTUAL_ACCOUNT, RETRIEVE_VIRTUAL_ACCOUNT_BALANCE, ADMIN_VIRTUAL_ACCOUNT_TRANSACTIONS, ADMIN_RETRIEVE_MAIN_ACCOUNT_BALANCE, ADMIN_MAIN_ACCOUNT_TRANSACTIONS, SINGLE_FUND_TRANSFER, VIRTUAL_ACCOUNT_FUND_TRANSFER, FUND_VIRTUAL_ACCOUNT, WITHDRAW_VIRTUAL_ACCOUNT, COLLECTION_ACCOUNT_FUND_TRANSFER, ADMIN_CREATE_DYNAMIC_COLLECTION_ACCOUNT, DYNAMIC_COLLECTION_ACCOUNT_TSQ
Bills: VERIFY_BILL_CUSTOMER, BILL_TSQ, PURCHASE_BILL, GET_BILLER_TYPE, ADMIN_PURCHASE_BILL, GET_PURCHASED_BILLS, ADMIN_GET_PURCHASED_BILLS
Savings: GET_SAVING_PLAN, CREATE_SAVING_PLAN, UPDATE_PLAIN_SAVING, GET_ALL_SAVING_PLAN, GET_OPEN_FLEXIBLE_SAVE, PLAIN_SAVING_TRANSACTION, GET_CLOSED_FLEXIBLE_SAVE, CREATE_OPEN_FLEXIBLE_SAVE, CREATE_CLOSE_FLEXIBLE_SAVE, GET_SPEND_SAVE_TRANSACTIONS, GET_ALL_CUSTOMER_SAVING_PLAN, RETRIEVE_PLAIN_SAVINGS_TRANSACTIONS
Gift Cards: GETGIFTCARD, BUYGIFTCARD, GIFTCARD_TSQ, ADMIN_BUY_GIFTCARD
Cards: BLOCKCARD, GETCARDPIN, REQUESTCARD, UNBLOCKCARD, ACTIVATECARD, CHANGECARDPIN, DEACTIVATECARD, MANAGECARDLIMIT, GETCUSTOMERCARD, MANAGECARDCHANNEL
Bulk: BULK_PAYMENT_TSQ, MAIN_ACCOUNT_BULK_PAYMENT, COLLECTION_ACCOUNT_BULK_PAYMENT, BULK_TRANSFER_TSQ
You can also list all service types via https://www.web.metropayhq.com/api/kuda/service-types
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://www.web.metropayhq.com/api/kuda/request",
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([
"service_type" => "ADMIN_CREATE_VIRTUAL_ACCOUNT",
"request_ref" => "req_123456",
"data" => [
"email" => "customer@example.com",
"phoneNumber" => "08012345678",
"lastName" => "Doe",
"firstName" => "John",
"businessName" => "Example Store",
"trackingReference" => "TRK-00001"
]
]),
CURLOPT_HTTPHEADER => array(
"Accept: application/json",
"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({
"service_type": "SINGLE_FUND_TRANSFER",
"request_ref": "req_7890",
"data": {
"amount": 500000,
"beneficiaryBankCode": "090267",
"beneficiaryAccountNumber": "0123456789",
"beneficiaryName": "John Doe",
"narration": "Payout"
}
});
var config = {
method: 'post',
url: 'https://www.web.metropayhq.com/api/kuda/request',
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);
});
Example: Pay with Transfer
{
"service_type": "ADMIN_CREATE_DYNAMIC_COLLECTION_ACCOUNT",
"data": {
"Amount": 250000,
"IsFlexiblePayment": true,
"RemittingAccounts": [
{
"SplitPercentage": 100,
"AccountName": "Example Store",
"AccountNumber": "3020000000"
}
]
}
}