> ## Documentation Index
> Fetch the complete documentation index at: https://api.tandapay.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Kenya payment methods

> Supported methods, operator codes, phone number format and bank codes.

Tanda works in Kenya, in Kenyan shillings. Send `"currency": "KES"` and, where asked, `"country": "KE"`.

## What's supported

| Method | Collect | Pay out |
| :- | :-: | :-: |
| M-PESA | ✓ STK push | ✓ To wallets |
| Airtel Money | ✓ Payment prompt | ✓ To wallets |
| Bank | ✓ Virtual account | ✓ To Kenyan bank accounts |
| M-PESA paybill | | ✓ |
| M-PESA till | | ✓ |

[Checkout](https://api.tandapay.io/guides/collections/checkout.md) offers M-PESA, Airtel Money and bank transfer on one hosted page. [Get checkout methods](https://api.tandapay.io/api-reference/endpoint/get-checkout-methods.md) shows which are switched on for your account.

## Phone numbers

Use the international format **without** the `+`: `254` followed by the nine-digit number.

| Customer gives you | Send |
| :- | :- |
| `0712 345 678` | `254712345678` |
| `+254 733 123 456` | `254733123456` |
| `0110 123 456` | `254110123456` |

> [!NOTE]
>
> [Get phone number operator](https://api.tandapay.io/api-reference/endpoint/get-phone-number-operator.md) is the exception: it takes E.164 with the `+`, for example `+254712345678`.

## Mobile money operator codes

| Network | Collections (`momoOperatorId`) | Payouts (`payoutMethod.code`) |
| :- | :- | :- |
| M-PESA | `mpesa` | `mpesa` |
| Airtel Money | `airtel` | `airtel` |

For KES collections, `momoOperatorId` is optional: Tanda works out the network from the phone number. Pass it if you already know the network. For payouts, always send `code`.

[Get mobile money providers](https://api.tandapay.io/api-reference/endpoint/get-mobile-money-providers.md) returns the live list for your account.

## Payout destinations

| `destination` | Pays | `accountNumber` is | Also send |
| :- | :- | :- | :- |
| `MoMo` | M-PESA or Airtel Money wallet | Phone number, e.g. `254712345678` | `code`: `mpesa` or `airtel` |
| `Bank Account` | Kenyan bank account | Bank account number | `code`: bank code |
| `Paybill` | M-PESA paybill | The paybill account number | `businessNumber`: the paybill number |
| `Till` | M-PESA till (Buy Goods) | The till number | Nothing else |

## Bank codes

Bank payouts need the bank's code from [Get banks](https://api.tandapay.io/api-reference/endpoint/get-banks.md):

```bash theme={null}
curl "https://api.tandapay.io/api/b2b/utilities/banks?country=KE" \
  -H "Authorization: Bearer $TOKEN"
```

Codes can change, so fetch the list and cache it for a day rather than hard-coding values.

## Amounts

Amounts are in shillings, not cents: `1500` means KES 1,500. Mobile money amounts must be whole shillings. Limits depend on the method and your account; contact [support](mailto:ceo@tandapay.ke) if you need yours raised.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.