GuidesRecipesAPI ReferenceChangelog
Guides

Payouts to Kenya

What are the specific requirements for KES payouts to Kenya?

Review these Kenya-specific requirements before initiating KES payouts. For the general cross-border payment flow, see Sending Cross-Border Payments.

Supported configurations

Kenya payouts support the following participant types:

  • C2C (consumer-to-consumer) — individual customer to individual counterparty
  • B2C (business-to-consumer) — business customer to individual counterparty
  • B2B (business-to-business) — business customer to business counterparty

Two routes are available:

  • bank_account — KEBANK rail, SWIFT/BIC routing
  • mobile_wallet — MPESA rail, phone number routing

All participant types are supported on both routes.

Trading account requirement

Kenya payouts require a USDC_SOL trading account as the source. Other trading account types (such as USDC or USDC_NPL) are not supported for KES payouts.

Verify KES payout availability

Confirm your bank supports KES payouts for your participant type and the routes you plan to use.

ℹ️

Bank configuration required

Contact Cybrid support to enable KES payouts and configure Kenya as a supported corridor for your bank.

GET /api/banks/{bank_guid}
Authorization: Bearer YOUR_TOKEN

Look for entries in supported_payout_symbols where:

  • symbol: KES-USD or KES-USDC_SOL
  • country_code: KE
  • participants_type: C2C, B2C, or B2B
  • route: bank_account or mobile_wallet

You can also query prices for Kenya:

GET /api/prices?payout_country_code=KE
Authorization: Bearer YOUR_TOKEN

Identity verification requirements

The platform validates all required KYC fields when you create a plan for KES payouts.

Originator (Customer)

Individual originator (C2C):

  • name.first, name.last
  • date_of_birth
  • phone_number
  • email_address
  • address.street, address.country_code
  • identification_numbers
⚠️

Extra fields required for individual originators

Unlike other C2C corridors, Kenya requires phone_number, email_address, and identification_numbers on the individual originator.

Business originator (B2C, B2B):

  • name.full
  • address.street, address.country_code
  • identification_numbers with one of:
    • tax_identification_number
    • employer_identification_number
    • business_registration_number

Receiver (Counterparty)

Create the counterparty with the standard required fields for the appropriate type (individual or business). The counterparty must be in verified state before you can create the external bank account and plan.

Individual counterparty (C2C, B2C): This corridor requires no additional counterparty fields beyond the platform defaults.

Business counterparty (B2B): This corridor requires no additional counterparty fields beyond the platform defaults.

Purpose of transaction

For Kenya payouts, purpose_of_transaction is required for all participant types. All standard purpose values are accepted.

External bank account setup

Send a POST request to /api/external_bank_accounts with one of the following formats.

Bank account

Uses SWIFT/BIC routing with bank_code_type: SWIFT_BIC and payment_rail: KEBANK.

{
  "account_kind": "raw_routing_details",
  "name": "Kenyan beneficiary account",
  "counterparty_bank_account_details": [{
    "bank_code_type": "SWIFT_BIC",
    "bank_code": "NBKEKENX",
    "account_identifier": "1234567890",
    "payment_rail": "KEBANK"
  }],
  "counterparty_guid": "counterparty_guid",
  "customer_guid": "customer_guid",
  "asset": "KES"
}

Mobile wallet

Uses account_identifier_type: PHONE_NUMBER with an E.164 phone number and payment_rail: MPESA. Omit bank_code and bank_code_type.

{
  "account_kind": "raw_routing_details",
  "name": "Kenyan beneficiary mobile wallet",
  "counterparty_bank_account_details": [{
    "account_identifier": "+254712345678",
    "account_identifier_type": "PHONE_NUMBER",
    "payment_rail": "MPESA"
  }],
  "counterparty_guid": "counterparty_guid",
  "customer_guid": "customer_guid",
  "asset": "KES"
}
ℹ️

API versioning

Creating external bank accounts with foreign raw routing details requires Accept-Version: 2025-10-01 or later.

For the full account model and field reference, see Create Foreign Fiat External Bank Accounts.

Validation rules

  • SWIFT/BIC: Standard 8 or 11 alphanumeric characters
  • MPESA phone number: Must be in E.164 format (e.g., +254712345678)
  • Payment rail: Must be KEBANK for bank account payouts or MPESA for mobile wallet payouts

Supported banks and mobile wallets

Bank account

The following 27 banks are available for KES payouts to Kenya across all supported participant types. Use the SWIFT/BIC code when setting up the external bank account.

Bank NameSWIFT/BICSandbox
Absa Bank Kenya PlcBARCKENXNo
African Banking CorporationABCLKENANo
Bank of Africa Kenya LtdAFRIKENXNo
Bank of BarodaBARBKENANo
Bank of IndiaBKIDKENANo
Central Bank of KenyaCBKEKENANo

Mobile wallet

The MPESA route is available in both sandbox and production for all participant types.

Common validation errors

Error CodeDescription
invalid_destination_account_exceptionExternal bank account not completed or missing routing details
invalid_purpose_of_transactionMissing or invalid purpose value for Kenya payouts
invalid_parameterKYC requirements not met (originator or receiver PII incomplete)
invalid_asset_exceptionBank does not support KES payouts for the requested participant type
invalid_payment_rail_for_countryPayment rail not supported for Kenya

Related resources