Bank Payouts
Bank Payouts allow you to send money directly to customer bank accounts in supported countries.
With the Global Payments API, businesses can seamlessly disburse funds to local and international banks.
Endpoint
POST https://api.mypayd.app/api/v3/withdrawal
Authorization
Every request must include authentication headers:
AUTHORIZATION: Basic Auth
Username <username>
Password <password>
Request Body
The request body should include the necessary parameters for the transaction. Example:
{
"account_id": "3875ed8d-83f2-4e4f-b076-9a45a9baec5e",
"phone_number": "+234712345678",
"channel": "bank",
"account_name": "bank",
"account_number": "+23412345678",
"network_code": "344f1324-11fb-4875-bd74-fbb43cd2b32d",
"provider_code": "100004",
"provider_name": "OPay",
"bank_name": "OPay",
"channel_id": "fe8f4989-3bf6-41ca-9621-ffe2bc127569",
"account_holder_name": "Faith Samuel",
"amount": 1800,
"currency": "NGN",
"narration": "Subscriptions"
}
Below are code examples in different programming languages demonstrating how to send bank payouts worldwide.
- Curl
- Nodejs
- Python
- Go
- PHP
curl --location 'https://api.mypayd.app/api/v3/withdrawal' \
--header 'Content-Type: application/json' \
--data-raw '{
"account_id": "3875ed8d-83f2-4e4f-b076-9a45a9baec5e",
"phone_number": "+234712345678",
"channel": "bank",
"account_name": "bank",
"account_number": "+23412345678",
"network_code": "344f1324-11fb-4875-bd74-fbb43cd2b32d",
"provider_code": "100004",
"provider_name": "OPay",
"bank_name": "OPay",
"channel_id": "fe8f4989-3bf6-41ca-9621-ffe2bc127569",
"account_holder_name": "Faith Samuel",
"amount": 1800,
"currency": "NGN",
"narration": "Subscriptions"
}'
var axios = require('axios');
var url = 'https://api.mypayd.app/api/v3/withdrawal';
var payload = {
account_id: "3875ed8d-83f2-4e4f-b076-9a45a9baec5e",
phone_number: "+234712345678",
channel: "bank",
account_name: "bank",
account_number: "+23412345678",
network_code: "344f1324-11fb-4875-bd74-fbb43cd2b32d",
provider_code: "100004",
provider_name: "OPay",
bank_name: "OPay",
channel_id: "fe8f4989-3bf6-41ca-9621-ffe2bc127569",
account_holder_name: "Faith Samuel",
amount: 1800,
currency: "NGN",
narration: "Subscriptions"
};
var config = {
method: 'post',
url: url,
headers: { 'Content-Type': 'application/json' },
data: payload
};
axios(config)
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error.response ? error.response.data : error.message);
});
import requests
url = "https://api.mypayd.app/api/v3/withdrawal"
payload = {
"account_id": "3875ed8d-83f2-4e4f-b076-9a45a9baec5e",
"phone_number": "+234712345678",
"channel": "bank",
"account_name": "bank",
"account_number": "+23412345678",
"network_code": "344f1324-11fb-4875-bd74-fbb43cd2b32d",
"provider_code": "100004",
"provider_name": "OPay",
"bank_name": "OPay",
"channel_id": "fe8f4989-3bf6-41ca-9621-ffe2bc127569",
"account_holder_name": "Faith Samuel",
"amount": 1800,
"currency": "NGN",
"narration": "Subscriptions"
}
headers = { "Content-Type": "application/json" }
response = requests.post(url, headers=headers, json=payload)
print(response.text)
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.mypayd.app/api/v3/withdrawal"
payload := strings.NewReader(`{
"account_id": "3875ed8d-83f2-4e4f-b076-9a45a9baec5e",
"phone_number": "+234712345678",
"channel": "bank",
"account_name": "bank",
"account_number": "+23412345678",
"network_code": "344f1324-11fb-4875-bd74-fbb43cd2b32d",
"provider_code": "100004",
"provider_name": "OPay",
"bank_name": "OPay",
"channel_id": "fe8f4989-3bf6-41ca-9621-ffe2bc127569",
"account_holder_name": "Faith Samuel",
"amount": 1800,
"currency": "NGN",
"narration": "Subscriptions"
}`)
client := &http.Client{}
req, err := http.NewRequest("POST", url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mypayd.app/api/v3/withdrawal",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode(array(
"account_id" => "3875ed8d-83f2-4e4f-b076-9a45a9baec5e",
"phone_number" => "+234712345678",
"channel" => "bank",
"account_name" => "bank",
"account_number" => "+23412345678",
"network_code" => "344f1324-11fb-4875-bd74-fbb43cd2b32d",
"provider_code" => "100004",
"provider_name" => "OPay",
"bank_name" => "OPay",
"channel_id" => "fe8f4989-3bf6-41ca-9621-ffe2bc127569",
"account_holder_name" => "Faith Samuel",
"amount" => 1800,
"currency" => "NGN",
"narration" => "Subscriptions"
)),
CURLOPT_HTTPHEADER => array("Content-Type: application/json"),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
?>
Example response
{
"status": "success",
"message": "Payout sent successfully",
"transaction_id": "e3b2c1d2-4f5a-4a6b-9c2e-123456789abc"
}
Conclusion
Bank Payouts provide a secure and efficient way to send funds directly to customer bank accounts across supported countries. By using the unified payout endpoint, businesses can streamline disbursements and enhance customer experience.