Kenya
Transfer funds to Kenyan Bank Accounts.
Transfers to Kenyan bank accounts are not available by default. To enable this feature, submit a request.
Prerequisites
- Complete your KYC verification and confirm that your account is approved for transactions.
- Whitelist your server IP address to prevent security errors.
- Fund your KES balance. You can do this by:
- Directly funding via collections, this method allows funding up to the equivalent of $1,000.
- Indirect funding via FX conversion from a different currency balance (i.e., wallet-to-wallet transfers).
 
Payout Flow
Here are the steps to send money to Kenyan bank accounts.
- Collect the sender and beneficiary's information. Some important information to collect includes the account information, the sender's name, and the address.
{
    "account_number": "", // merchant_input
    "account_bank": "", // merchant_input
    "narration": "", // merchant_input
    "amount": 0.0, // merchant_input
    "currency": "", // merchant_input
    "beneficiary_name": "", // beneficiary_information
    "meta": [
        {
            "beneficiary_address": "", // beneficiary_information
            "sender_city": "", // sender_information
            "is_cash_pickup": false,
            "beneficiary_country": "", // beneficiary_information
            "sender_id_number": "", // sender_information
            "sender_id_type": "", // sender_information
            "sender": "", // sender_information
            "email": "", // sender_information
            "sender_id_expiry": "", // sender_information
            "sender_mobile_Number": "", // sender_information
            "sender_date_of_birth": "" // sender_information
        }
    ]
}
- Fetch the beneficiary's bank code using the bank and bank branches endpoints to get the account_bank.
- Send your payment request with all the needed transfer information to the transfers endpoint to create the payout.
{
  "account_bank": "11",
  "account_number": "2332128829",
  "amount": 400,
  "narration": "Example KE Bank Transfer",
  "currency": "KES",
  "reference": "EX001",
  "beneficiary_name": "Flutterwave Developers",
  "meta":[{
    "beneficiary_address": "221B Baker Street",
    "beneficiary_mobile_number":"020828661",
    "email":"[email protected]",
    "sender_id_number":"928929832",
    "sender_id_type":"04"
  }]
}
A key parameter to note is sender_id_type, which specifies the type of identification required to verify the sender. Below are the supported identification types and their corresponding codes:
| Identification Type | Code | 
|---|---|
| International Passport | 01 | 
| Driving License | 02 | 
| ID Card | 03 | 
| Voter Carc | 04 | 
| Labour Card | 05 | 
| Bar Association Card | 06 | 
| Defence Personnel Identity | 07 | 
| Govt. Id | 08 | 
| Other | 09 | 
| Pan Card | 10 | 
| Ration Card (with photo) | 11 | 
| IBL Customer | 12 | 
| Iqama | 13 | 
| Citizenship card | 14 | 
| Federal ID | 15 | 
| Military identification card | 16 | 
| Commercial Registration | 17 | 
| CNIC | 18 | 
| Work Permit | 19 | 
| Birth Certificate | 20 | 
| Business registration/license | 21 | 
| Social security | 22 | 
| Student ID | 23 | 
| Border Paper | 24 | 
| Royal decree | 25 | 
| License Permit | 26 | 
| GCC identity document | 27 | 
| Saudi Family Book | 28 | 
| Entry permit | 29 | 
| National ID | 30 | 
You'll get a response like this:
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 1231828,
        "account_number": "2332128829",
        "bank_code": "11",
        "full_name": "King James",
        "created_at": "2025-02-12T11:46:17.000Z",
        "currency": "KES",
        "debit_currency": "NGN",
        "amount": 400,
        "fee": 45,
        "status": "NEW",
        "reference": "EX001",
        "meta": [
            {
                "BeneficiaryAddress": "221B Baker Street",
                "BeneficiaryMobileNumber": "020828661",
                "EmailAddress": "[email protected]",
                "SenderIdNumber": "928929832",
                "SenderIdType": "04",
                "MobileNumber": "020828661"
            }
        ],
        "narration": "Example KE Bank Transfer",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "Co-operative Bank of Kenya Limited"
    }
}
- 
Verify your transfer status; there are many ways to do this: - You can get the transfer status using the transfer status endpoint.
- If webhooksare enabled on your dashboard, check them to confirm the transfer status.
- For transfers with callback_id, we'll send the transfer details with their status using the specified URL.
 
{
   "event": "transfer.completed",
   "event.type": "Transfer",
   "data": {
    "id": 1231828,
    "account_number": "2332128829",
    "bank_name": "Co-operative Bank of Kenya Limited",
    "bank_code": "11",
    "fullname": "King James",
    "created_at": "2024-07-29T11:36:14.000Z",
    "currency": "KES",
    "debit_currency": "NGN",
    "amount": 400,
    "fee": 45,
    "status": "SUCCESSFUL",
    "reference": "EX001",
    "meta": [
      {
        "Sender": "Flutterwave Developers",
        "SenderCountry": "NG",
        "SenderAddress": "Gotham III"
      }
    ],
    "narration": "Example KE Bank Transfer",
    "approver": null,
    "complete_message": "Successful",
    "requires_approval": 0,
    "is_approved": 1
   }
 }
{
	"status": "success",
	"message": "Transfer fetched",
	"data": {
		"id": 1231828,
		"account_number": "2332128829",
		"bank_code": "11",
		"full_name": "King James",
		"created_at": "2024-07-29T11:36:14.000Z",
		"currency": "KES",
		"debit_currency": "NGN",
		"amount": 400,
		"fee": 45,
		"status": "SUCCESSFUL",
		"reference": "4d2ba109f22cd912",
		"meta": [
			{
				"sender": "Flutterwave Developers"
			}
		],
		"narration": "Example KE Bank Transfer",
		"approver": null,
		"complete_message": "Successful",
		"requires_approval": 0,
		"is_approved": 1,
		"bank_name": "Co-operative Bank of Kenya Limited"
	}
}
Testing Transfers
Check our testing guide for details on testing transfers.
Updated 5 months ago
