Bank Payins
Introduction
Bank Payins allow you to receive payments directly from customer bank accounts.
With the Global Payments API, businesses can seamlessly collect funds from local and international banks across 35+ countries.
Why Bank Payins?
- Direct Bank Payments: Customers pay straight from their bank accounts into your platform.
- Secure & Compliant: All transactions follow strict banking and regulatory standards.
- Instant Confirmation: Get notified as soon as a bank transfer is processed.
Endpoint
POST https://api.mypayd.app/api/v3/payments
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. We will need to add the customer Information to pick the customer KYC.
basic title : "json"
{
"username": "techconsultants",
"account_name": "bank",
"amount": 210,
"phone_number": "+278123456789",
"channel_id": "1cd9ece9-461a-4157-9140-35c9c2e69c3d",
"redirect_url": "https://payd-test.free.beeceptor.com",
"narration": "Payment for goods",
"currency": "ZAR",
"callback_url": "https://payd-test.free.beeceptor.com",
"transaction_channel": "bank"
}
Below are code examples in different programming languages demonstrating how to receive bank payments from different banks worldwide.
- Curl
- Go
- Nodejs
- Python
- PHP
curl --location 'https://api.mypayd.app/api/v3/payments'
--header 'Content-Type: application/json'
--data-raw '{
"username": "techconsultants",
"account_name": "bank",
"amount": 210,
"phone_number": "+278123456789",
"channel_id": "1cd9ece9-461a-4157-9140-35c9c2e69c3d",
"redirect_url": "https://payd-test.free.beeceptor.com",
"narration": "Payment for goods",
"currency": "ZAR",
"callback_url": "https://payd-test.free.beeceptor.com",
"transaction_channel": "bank"
}
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.mypayd.app/api/v3/payments"
method := "POST"
payload := strings.NewReader(`{
"username": "techconsultants",
"account_name": "bank",
"amount": 210,
"phone_number": "+278123456789",
"channel_id": "1cd9ece9-461a-4157-9140-35c9c2e69c3d",
"redirect_url": "https://payd-test.free.beeceptor.com",
"narration": "Payment for goods",
"currency": "ZAR",
"callback_url": "https://payd-test.free.beeceptor.com",
"transaction_channel": "bank"
}`)
client := &http.Client{}
req, err := http.NewRequest(method, 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, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
var axios = require('axios');
var data = JSON.stringify({
"username": "techconsultants",
"account_name": "bank",
"amount": 210,
"phone_number": "+278123456789",
"channel_id": "1cd9ece9-461a-4157-9140-35c9c2e69c3d",
"redirect_url": "https://payd-test.free.beeceptor.com",
"narration": "Payment for goods",
"currency": "ZAR",
"callback_url": "https://payd-test.free.beeceptor.com",
"transaction_channel": "bank"
});
var config = {
method: 'post',
url: 'https://api.mypayd.app/api/v3/payments',
headers: { 'Content-Type': 'application/json' },
data: data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
import requests
url = "https://api.mypayd.app/api/v3/payments"
payload = {
"username": "techconsultants",
"account_name": "bank",
"amount": 210,
"phone_number": "+278123456789",
"channel_id": "1cd9ece9-461a-4157-9140-35c9c2e69c3d",
"redirect_url": "https://payd-test.free.beeceptor.com",
"narration": "Payment for goods",
"currency": "ZAR",
"callback_url": "https://payd-test.free.beeceptor.com",
"transaction_channel": "bank"
}
headers = { "Content-Type": "application/json" }
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mypayd.app/api/v3/payments",
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(
"username" => "techconsultants",
"account_name" => "bank",
"amount" => 210,
"phone_number" => "+278123456789",
"channel_id" => "1cd9ece9-461a-4157-9140-35c9c2e69c3d",
"redirect_url" => "https://payd-test.free.beeceptor.com",
"narration" => "Payment for goods",
"currency" => "ZAR",
"callback_url" => "https://payd-test.free.beeceptor.com",
"transaction_channel" => "bank"
)),
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 of a successful response
{
"status": "SUCCESS",
"transaction_reference": "BNK20250923XYZ",
"success": true,
"message": "Processed successfully",
"trackingId": "BANK987654321",
"reference": "INV-20250923-002",
"result": {
"bank_name": "Standard Bank",
"account_number": "****6789",
"account_name": "PAYD Commerce Limited"
}
}
Conclusion
The Bank Payins API enables you to collect funds directly from customer bank accounts in local currencies with a single integration acrross countries.