Wallet-To-Wallet Transfer

Move funds between SaySwitch NGN wallets.

Endpoint

POST /api/s2s/v1/wallet/transfer

Request Body

{
  "source_wallet_code": "NGN169SOURCE",
  "destination_wallet_code": "NGN200DEST",
  "amount": 5000,
  "reference": "WTW_1234567890123456",
  "narration": "Move funds"
}

Sample Response

{
  "success": true,
  "message": "Wallet transfer successful",
  "data": {
    "reference": "WTW_1234567890123456",
    "amount": 5000,
    "fee": 0,
    "currency": "NGN",
    "status": "success",
    "wallet_id": 123,
    "wallet_code": "NGN169SOURCE",
    "account_number": "NGN200DEST",
    "bank_name": "SaySwitch Wallet"
  }
}

Rules

  • source_wallet_code must belong to the authenticated merchant.
  • destination_wallet_code can belong to any merchant on SaySwitch.
  • Source and destination wallets must both be NGN.
  • Source and destination wallets must be on the same domain.
  • Test wallets cannot transfer to live wallets, and live wallets cannot transfer to test wallets.
  • Source wallet must have sufficient balance.
  • Fee is 0.
  • A webhook is sent using the existing payout/transfer webhook flow.