Accept Payments
Bank Transfer Initialization
POST
https://backendapi.sayswitchgroup.com/api/s2s/banktransfer/initializeThis 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.
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
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
JSON
{
"status": true,
"message": "Account generated successfully",
"data": {
"account_name": "SAYSWITCH",
"account_number": "8787652431",
"bank_name": "Wema Bank"
}
}Response Field
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.
GET
https://backendapi.sayswitchgroup.com/api/v1/your_referenceIdVerification of transaction is done by adding the reference of a specific transaction as URL path parameter
cURL Request
cURL
curl -X GET https://backendapi.sayswitchgroup.com/api/v1/SSW_17482573443162479 \
-H "Authorization: Bearer YOUR_SECRET_KEY"Sample Response
JSON
{
"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