Kenya 🇰🇪

Transfer funds to Kenyan Bank Accounts.

ℹ️

Feature Request

Transfers to Kenyan bank accounts are not available by default. To enable this feature, submit a request.

Prerequisites

  1. Complete your KYC verification and confirm that your account is approved for transactions.
  2. Whitelist your server IP address to prevent security errors.
  3. 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).

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

KES bank transfers on Flutterwave are straightforward. Simply follow these steps to make these transfers:

  1. 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
        }
    ]
}

  1. Fetch the beneficiary's bank code using the bank and bank branches endpoints to get the account_bank.
  2. 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 TypeCode
International Passport01
Driving License02
ID Card03
Voter Carc04
Labour Card05
Bar Association Card06
Defence Personnel Identity07
Govt. Id08
Other09
Pan Card10
Ration Card (with photo)11
IBL Customer12
Iqama13
Citizenship card14
Federal ID15
Military identification card16
Commercial Registration17
CNIC18
Work Permit19
Birth Certificate20
Business registration/license21
Social security22
Student ID23
Border Paper24
Royal decree25
License Permit26
GCC identity document27
Saudi Family Book28
Entry permit29
National ID30

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"
    }
}
  1. Verify your transfer status; there are many ways to do this:

    • You can get the transfer status using the transfer status endpoint.
    • If webhooks are 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"
	}
}

Check our testing guide for details on testing transfers.