> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.crisscross.money/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.crisscross.money/_mcp/server.

# Kenya Payouts

Use this guide when you want to send KES payouts to recipients in Kenya. Kenya supports **bank transfers** and **mobile wallets (M-Pesa, Airtel)**.

## Overview

* **Currency:** KES
* **Payment location:** `KEN`
* **Supported rails:** Bank transfer, Mobile wallet
* **Payment methods:**
  * Bank transfer → `paymentMethodId: "banktransfer"`, `recipient.type: "bank_account"`
  * Mobile wallet → `paymentMethodId: "mobilemoney"`, `recipient.type: "mobile_money"`

## Required fields by rail

### Bank transfer

| Field               | Required | Notes                |
| ------------------- | -------- | -------------------- |
| `accountNumber`     | Yes      | Bank account number  |
| `bankCode`          | Yes      | Local bank code      |
| `accountHolderName` | Yes      | Name on the account  |
| `country`           | Yes      | `KEN`                |
| `phoneNumber`       | No       | International format |

### Mobile wallet (M-Pesa, Airtel)

| Field         | Required | Notes                          |
| ------------- | -------- | ------------------------------ |
| `phoneNumber` | Yes      | MSISDN in international format |
| `country`     | Yes      | `KEN`                          |
| `operator`    | Yes      | Use `mpesa` or `airtel`        |
| `name`        | No       | Recipient name                 |

Top-level required fields for every payout: `merchantId`, `merchantReference`, `destinationValue` (with `minorAmount` and `currency`), `paymentMethodId`, `paymentLocation`, `recipient`, `sender` (see [Sender Details](#sender-details-required)).

## Sender Details (Required)

Every payout requires a `sender` object with `fullName`, `identity`, and `identityNumber` for KYT/KYC screening. Kenya payouts additionally require the fields below for regulatory compliance.

| Field            | Type   | Required | Description                                                                                                            | Example             |
| ---------------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------- | ------------------- |
| `fullName`       | string | **Yes**  | Sender's full name                                                                                                     | `"Jane Smith"`      |
| `phoneNumber`    | string | **Yes**  | Sender's phone number                                                                                                  | `"27821234567"`     |
| `nationality`    | string | **Yes**  | ISO 3-letter country code                                                                                              | `"ZAF"`             |
| `identity`       | string | **Yes**  | Document type: `passport`, `nationalId`, `driversLicense`, `residencePermit`, `businessRegistrationNumber`, or `other` | `"passport"`        |
| `identityNumber` | string | **Yes**  | Identity document number                                                                                               | `"A12345678"`       |
| `dateOfBirth`    | string | **Yes**  | Date of birth (YYYY-MM-DD)                                                                                             | `"1990-01-15"`      |
| `purposeOfFunds` | string | **Yes**  | Purpose of the transfer                                                                                                | `"salary"`          |
| `sourceOfFunds`  | string | **Yes**  | Source of funds                                                                                                        | `"business income"` |
| `relationship`   | string | **Yes**  | Relationship to recipient                                                                                              | `"employer"`        |

> If `nationality` is not provided, the system falls back to `country`, `countryCode`, or the merchant's configured home country.

## Example requests

### Bank transfer

```json
{
  "merchantId": "your-merchant-id",
  "merchantReference": "PAYOUT-KE-001",
  "destinationValue": {
    "minorAmount": 200000,
    "currency": "KES"
  },
  "paymentMethodId": "banktransfer",
  "paymentLocation": "KEN",
  "recipient": {
    "type": "bank_account",
    "accountNumber": "0123456789",
    "bankCode": "01",
    "accountHolderName": "Wanjiku Njeri",
    "country": "KEN"
  },
  "sender": {
    "fullName": "Jane Smith",
    "phoneNumber": "27821234567",
    "nationality": "ZAF",
    "identity": "passport",
    "identityNumber": "A12345678",
    "dateOfBirth": "1990-01-15",
    "purposeOfFunds": "salary",
    "sourceOfFunds": "business income",
    "relationship": "employer"
  }
}
```

### Mobile wallet (M-Pesa) — Individual sender

```json
{
  "merchantId": "your-merchant-id",
  "merchantReference": "PAYOUT_550e8400-e29b-41d4-a716-446655440000",
  "destinationValue": {
    "minorAmount": 2000,
    "currency": "KES"
  },
  "paymentMethodId": "mobilemoney",
  "paymentLocation": "KEN",
  "attributes": {},
  "recipient": {
    "type": "mobile_money",
    "name": "John Doe",
    "operator": "mpesa",
    "country": "KEN",
    "phoneNumber": "254723993187"
  },
  "sender": {
    "fullName": "Jane Smith",
    "phoneNumber": "27821234567",
    "nationality": "ZAF",
    "identity": "passport",
    "identityNumber": "A12345678",
    "dateOfBirth": "1990-01-15",
    "purposeOfFunds": "salary",
    "sourceOfFunds": "business income",
    "relationship": "employer"
  }
}
```

### Mobile wallet (M-Pesa) — Company sender

When the sender is a company, use the company's registered details:

```json
{
  "merchantId": "your-merchant-id",
  "merchantReference": "PAYOUT_660e8400-e29b-41d4-a716-446655440001",
  "destinationValue": {
    "minorAmount": 50000,
    "currency": "KES"
  },
  "paymentMethodId": "mobilemoney",
  "paymentLocation": "KEN",
  "attributes": {},
  "recipient": {
    "type": "mobile_money",
    "name": "John Doe",
    "operator": "mpesa",
    "country": "KEN",
    "phoneNumber": "254723993187"
  },
  "sender": {
    "fullName": "Acme Corporation Ltd",
    "phoneNumber": "27110001234",
    "nationality": "ZAF",
    "identity": "businessRegistrationNumber",
    "identityNumber": "2020/123456/07",
    "dateOfBirth": "2015-03-20",
    "purposeOfFunds": "vendor payment",
    "sourceOfFunds": "business revenue",
    "relationship": "business"
  }
}
```

**Company sender mapping:**

| Sender field     | Company value                      |
| ---------------- | ---------------------------------- |
| `fullName`       | Company registered name            |
| `identity`       | `"businessRegistrationNumber"`     |
| `identityNumber` | Company registration number        |
| `dateOfBirth`    | Date of incorporation (YYYY-MM-DD) |

## Important notes

* **Sender Details**: The `sender` object is required for all payouts. Requests missing required sender fields will be rejected with a validation error.

## Related guides

* [Bank Transfers](/payout-bank-transfers)
* [Mobile Wallet](/payout-mobile-wallet)
* [Supported Destinations](/payout-supported-destinations)