Payouts / Transfers

Initiate a bank or mobile money transfer.

The request is logged and processed asynchronously. Final settlement status is delivered through webhook notification.

Endpoint

POST https://backendapi.sayswitchgroup.com/api/v1/bank_transfer

Headers

Authorization: Bearer YOUR_SECRET_KEY
Content-Type: application/json

Request Body Parameters

ParameterTypeRequiredDescription
account_nameStringYesBeneficiary account name
account_numberStringYesBeneficiary account number or mobile number
amountStringYesTransfer amount in KES or GHS
bank_codeStringYesBank or mobile money provider code from the bank list
bank_nameStringYesBank or mobile money provider name
currencyStringYesCurrency code. Use KES or GHS
narrationStringYesTransfer description or memo
referenceStringYesUnique transaction reference. UUID v4 is recommended
paymentModeStringYesUse bank for bank transfer or momo for mobile money

Example Request Body

{
  "account_name": "John Doe",
  "account_number": "0245690993",
  "amount": "10",
  "bank_code": "MTNGH",
  "bank_name": "MTNGH",
  "currency": "GHS",
  "narration": "Test transfer",
  "reference": "e34e9b38-e0ac-4007-bf98-1fbad45964d2",
  "paymentMode": "momo"
}

Sample cURL

curl -X POST "https://backendapi.sayswitchgroup.com/api/v1/bank_transfer" \
  -H "Authorization: Bearer YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "account_name": "John Doe",
    "account_number": "0245690993",
    "amount": "10",
    "bank_code": "MTNGH",
    "bank_name": "MTNGH",
    "currency": "GHS",
    "narration": "Test transfer",
    "reference": "e34e9b38-e0ac-4007-bf98-1fbad45964d2",
    "paymentMode": "momo"
  }'

Success Response

HTTP 200 OK

{
  "success": true,
  "message": "Transfer successfully logged and Processing",
  "data": {
    "reference": "e34e9b38-e0ac-4007-bf98-1fbad45964d2",
    "currency": "GHS",
    "amount": "10",
    "fee": 1,
    "stamp_duty": 0,
    "bank_code": "MTNGH",
    "bank_name": "MTNGH",
    "countryCode": "GH",
    "serviceCode": null,
    "paymentMode": "momo",
    "account_number": "233245690993",
    "account_name": "JOSHUA AKANYIFE",
    "narration": "Test transfer",
    "domain": "live",
    "status": "pending",
    "created_at": "2026-05-12T12:25:30.000000Z"
  }
}

Response Data Fields

FieldTypeDescription
referenceStringUnique transaction reference
currencyStringTransaction currency
amountStringTransfer amount
feeNumberTransaction fee charged
stamp_dutyNumberGovernment stamp duty, if applicable
bank_code / bank_nameStringDestination bank identifiers
paymentModeStringTransfer mode: bank or momo
account_numberStringBeneficiary account or phone number, normalized
account_nameStringVerified beneficiary name
domainStringlive or test
statusStringInitial status. The transfer is returned as pending
created_atStringISO 8601 timestamp of creation