Kenya 🇰🇪
Transfer funds to Kenyan Bank Accounts.
Prerequisites
- Complete your KYC and ensure that your account is approved for transactions.
- Request this feature on your account via email or our support form.
- Whitelist your server IP address to prevent security errors.
- Fund your KES balance. You can do this by:
- Directly funding via collections, this funding method is limited to a max value equivalent to $1,000.
- Indirect funding via FX conversion from a different currency balance (i.e. wallet-to-wallet transfers).
Basic terminology
- Sender: This is the merchant or individual initiating the transfer. Some of their details are required to complete the payouts.
- Beneficiary: This is the individual receiving the transfer.
Payout Flow
Like most transfers on Flutterwave, KES bank transfers are easy to execute. Simply follow these steps to make these transfers:
- Collect the sender and beneficiary's information. Some important information to collect includes the account information, sender's name, and address.
Parameter | Description | Format | Example | isRequired |
---|---|---|---|---|
account_bank | The recipient's bank code. | string | 011 | Yes |
account_number | The recipient's account number. | string | 2332128829 | Yes |
amount | Amount to be transferred. | string | 100 | Yes |
beneficiary_name | The transfer recipient's name. | string | King James | Yes |
meta.beneficiary_address | The recipient's address. | string | 221B Baker Street | No |
meta.beneficiary_mobile_number | The recipient's mobile number. | string | 020828661 | Yes |
meta.email | The recipient's email address. | string | [email protected] | No |
sender_id_type | The sender's ID document type | string | 04 | Yes |
sender_id_number | This is the number found on the sender's identification document. | string | 928929832 | Yes |
narration | This is the narration for the transfer. (Please note that this should not contain special characters) | string | Payment for goods purchased | No |
- Fetch the beneficiary's bank code using the bank and banks branches endpoints.
- 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 you have
webhooks
enabled on your dashboard, check the transfer webhooks to confirm it's 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"
}
}
Be sure to visit our helper's documentation on testing for information on how to test your transfers.
Updated about 20 hours ago