Bank Transfer Initialization
This endpoint is used to initialize a bank transfer by generating a virtual account number for the transaction. The user will transfer funds to the generated account.
Endpoint
POST https://backendapi.sayswitchgroup.com/api/s2s/banktransfer/initialize
Here is the 2 step for seamless integration
- 1 Initialize Bank Transfer
- 2 Verify Transaction
1 Initialize Bank Transfer
Send a POST request to
https://backendapi.sayswitchgroup.com/api/s2s/banktransfer/initialize
Sample cURL Request
curl -X POST https://backendapi.sayswitchgroup.com/api/s2s/banktransfer/initialize \
-H "Content-Type: application/json" \
-d '{
"email": "johndoe@gmail.com",
"amount": "100",
"currency": "NGN",
"reference": "895362787365996276345987"
}'Sample Response
{
"status": true,
"message": "Account generated successfully",
"data": {
"account_name": "SAYSWITCH",
"account_number": "8787652431",
"bank_name": "Wema Bank"
}
}Response Field
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the request was successful (true or false) |
message | string | A message describing the result of the API call |
data | object | Contains the virtual account details |
account_name | string | Name of the generated virtual account |
account_number | string | Virtual account number to receive the bank transfer |
bank_name | string | Name of the bank providing the virtual account |
2 Verify Transaction
After the user completes the bank transfer to the virtual account generated, you must verify the status of the transaction to confirm if the payment was received.
Endpoint
GET https://backendapi.sayswitchgroup.com/api/v1/your_referenceId
Verification of transaction is done by adding the reference of a specific transaction as URL path parameter
cURL Request
curl -X GET https://backendapi.sayswitchgroup.com/api/v1/SSW_17482573443162479 \
-H "Authorization: Bearer YOUR_SECRET_KEY"Sample Response
{
"success": true,
"message": "Verification successful",
"data": {
"amount": "10.12",
"currency": "NGN",
"status": "success",
"transaction_date": "2025-05-26 12:04:40",
"reference": "SSW_17482573443162479",
"domain": "live",
"gateway_response": null,
"channel": "card",
"ip_address": null,
"originator_name": "",
"originator_account_number": "",
"fees": "0.12",
"plan": null,
"requested_amount": "10"
},
"customer": {
"id": 1340,
"customer_code": "CUS_7ewvq2vt6zlqyij",
"first_name": "",
"last_name": "",
"email": "johndoe@gmail.com"
},
"card": {
"first6Digits": "506105",
"last4Digits": "7163",
"expiry": "0827",
"type": "verve",
"token": "ss-tkn-uoekyzfdvnttyqscdkemrhq9"
},
"log": {
"time_spent": null,
"attempts": null,
"authentication": null,
"errors": 2,
"success": true,
"channel": "card",
"history": [
{
"id": 8133,
"type": "PURCHASES",
"message": "{\"transactionRef\":\"SSW_17482573443162479\",\"paymentId\":\"1933911626\",\"bankCode\":\"011\",\"message\":\"Kindly enter the OTP sent to 234706***9927\",\"amount\":\"10.12\",\"responseCode\":\"T0\",\"plainTextSuppo",
"time": null,
"reference": "SSW_17482573443162479",
"channel": "interswitch",
"ip_address": "102.89.83.206",
"device": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"
},
]
}
}Note that bank transfers may take a few minutes to reflect, so ensure the transaction status is success