Kenya
Learn about the dLocal supported payment methods in Kenya.
Market specifications
Take a look of all the payment methods available.
Country reference Cards supported APM supportedCards
Find all the information about the card supported capabilities.
Capabilities Process Card PaymentsMarket specifications
Do you want to know more information about Kenya's market? Go to the Expand Your Reach in Africa’s eCommerce Market article.
Country reference
country code | currency code | amount decimals | document name | document format | document required? |
|---|---|---|---|---|---|
KE | KES | 0 | National ID Card or Maisha Id | Between 6 and 9 digits | Yes |
Cards supported
payment_method_id | Brand ID | Name | payment_method_type | Details | Allowed Flows | Logo |
|---|---|---|---|---|---|---|
CARD | VI | Visa | CARD | Credit Card | DIRECT REDIRECT | |
CARD | VD | Visa Debit | CARD | Debit Card | DIRECT REDIRECT | |
CARD | MC | Mastercard | CARD | Credit Card | DIRECT REDIRECT | |
CARD | MD | Mastercard Debit | CARD | Debit Card | DIRECT REDIRECT |
To offer all the card options that may be available in your integration, send the
payment_method_idasCARD.
Alternative Payment Method supported
payment_method_id | Name | payment_method_type | Allowed Flows | Logo |
|---|---|---|---|---|
AN / Airtel | Mobile Money | BANK_TRANSFER | DIRECT | |
SF / Safaricom | Mobile Money | BANK_TRANSFER | DIRECT |
Cards
Capabilities
| Visa Credit | Mastercard Credit | Visa Debit | Mastercard Debit | |
|---|---|---|---|---|
| Minimum amount | 51 KES | 51 KES | 51 KES | 51 KES |
| Refunds | Yes | Yes | Yes | Yes |
| Recurring | Yes | Yes | Yes | Yes |
| Chargeback option | Yes | Yes | Yes | Yes |
| Chargeback Dispute option | Yes | Yes | Yes | Yes |
| Descriptor | Merchant name | Merchant name | Merchant name | Merchant name |
How to process Card Payments?
Learn how to process payments with credit and debit cards with dLocal in our Card Payments section.
Alternative Payment Method
Mobile Money
What is Mobile Money?
Across Africa, mobile money functions as a bank-free digital currency system that allows anyone with a mobile phone to store, send, and spend money directly without needing a traditional bank account.
Retail Pay-Ins in Kenya
In Kenya, leading mobile wallets like M-Pesa and Airtel Money use this system to power instant retail pay-ins across physical storefronts via merchant tills, while also enabling seamless digital checkouts across e-commerce platforms and super-app ecosystems.
Customize payment options
- M-Pesa (Safaricom). To offer M-Pesa, complete
"payment_method_id": "SF". - Airtel Money. To offer Airtel, complete
"payment_method_id": "AN".
Choosing the right operatorMake sure to know the user's telecommunications company before initiating the payment, and send the corresponding
payment_method_id(SForAN).
GenericMWpayment method IDThe generic
MWpayment method ID still works as a legacy catch-all across all supported telecom operators in Kenya. However, we recommend pointing directly to the operator (SFfor M-Pesa orANfor Airtel) for more precise routing and processing.
To find all the available payment options, refer to the Alternative Payment Method supported section.
Capabilities
| Mobile Money | |
|---|---|
| Min. amount | 51 KES |
| Max. expiration time supported | 5 minutes |
| Notification delay | Immediate |
| Refunds | Yes |
| Flow | DIRECT |
| Supported wallets | mPesa/Safaricom, Airtel. |
UX Flow
Flow might slightly differ depending on the provider.

Alternative flow

Request Parameters
| Property | Type | Description | Mandatory? |
|---|---|---|---|
amount | Number | Amount to be charged. | Yes |
currency | String | KESTransaction currency in ISO 4217. | Yes |
country | String | KE Transaction country in ISO 3166. | Yes |
payment_method_id | String | SF (M-Pesa) or AN (Airtel) ID of the selected payment method | Yes |
payment_method_flow | String | DIRECT | Yes |
payer.name | String | Name of the payer. | Yes |
payer.email | String | Email of the payer. | Yes |
payer.phone | String | Phone number of the payer. | Yes |
payer.document | String | Document of the payer. | Yes |
order_id | String | ID of the capture given by the merchant in their system. Think of it as an external ID of the capture. | No |
notification_url | String | Notifications will be sent in every change of status of a payment to the notification_url specified by the merchant. | No |
Examples
M-Pesa (SF)
SF){
"amount": 1000,
"currency": "KES",
"country": "KE",
"payment_method_id": "SF",
"payment_method_flow": "DIRECT",
"payer": {
"name": "Jane Doe",
"email": "[email protected]",
"phone": "254746488970",
"document": "12345678",
"address": {
"country": "KE",
"state":"Mombasa",
"city": "Mombasa",
"zip_code": "8858",
"street": "Main St.",
"number": "540"
}
},
"order_id": "34545sk3483kqw0",
"description": "Tshirt",
"notification_url": "http://merchantsite.com/notification/new",
"callback_url": "http://merchantsite.com/success_page"
}{
"id": "D-4-a3e6938f-j76s-4855-b84a-e9d50a6d04a0",
"amount": 1000,
"currency": "KES",
"payment_method_id": "SF",
"payment_method_type": "BANK_TRANSFER",
"payment_method_flow": "DIRECT",
"country": "KE",
"bank_transfer": {},
"ticket": {},
"created_date": "2023-01-23T17:20:21.000+0000",
"status": "PENDING",
"status_detail": "The payment is pending.",
"status_code": "100",
"order_id": "34545sk3483kqw0",
"notification_url": "http://merchant.com/notification/new"
}{
"id": "D-4-a3e6938f-j76s-4855-b84a-e9d50a6d04a0",
"amount": 1000,
"currency": "KES",
"payment_method_id": "SF",
"payment_method_type": "BANK_TRANSFER",
"payment_method_flow": "DIRECT",
"country": "KE",
"created_date": "2023-01-23T17:20:21.000+0000",
"status": "PAID",
"status_detail": "The payment was paid.",
"status_code": "200",
"order_id": "34545sk3483kqw0",
"notification_url": "http://merchantsite.com/notification/new"
}Airtel Money (AN)
AN){
"amount": 1000,
"currency": "KES",
"country": "KE",
"payment_method_id": "AN",
"payment_method_flow": "DIRECT",
"payer": {
"name": "Jane Doe",
"email": "[email protected]",
"phone": "254746488970",
"document": "12345678",
"address": {
"country": "KE",
"state":"Mombasa",
"city": "Mombasa",
"zip_code": "8858",
"street": "Main St.",
"number": "540"
}
},
"order_id": "34545sk3483kqw0",
"description": "Tshirt",
"notification_url": "http://merchantsite.com/notification/new",
"callback_url": "http://merchantsite.com/success_page"
}{
"id": "D-4-a3e6938f-j76s-4855-b84a-e9d50a6d04a0",
"amount": 1000,
"currency": "KES",
"payment_method_id": "AN",
"payment_method_type": "BANK_TRANSFER",
"payment_method_flow": "DIRECT",
"country": "KE",
"bank_transfer": {},
"ticket": {},
"created_date": "2023-01-23T17:20:21.000+0000",
"status": "PENDING",
"status_detail": "The payment is pending.",
"status_code": "100",
"order_id": "34545sk3483kqw0",
"notification_url": "http://merchant.com/notification/new"
}{
"id": "D-4-a3e6938f-j76s-4855-b84a-e9d50a6d04a0",
"amount": 1000,
"currency": "KES",
"payment_method_id": "AN",
"payment_method_type": "BANK_TRANSFER",
"payment_method_flow": "DIRECT",
"country": "KE",
"created_date": "2023-01-23T17:20:21.000+0000",
"status": "PAID",
"status_detail": "The payment was paid.",
"status_code": "200",
"order_id": "34545sk3483kqw0",
"notification_url": "http://merchantsite.com/notification/new"
}Updated 2 days ago
