Your support team in Nairobi gets paid in shillings, mostly on M-PESA. Your revenue arrives in USDC, and exchange cash-outs keep eating into payroll.
Converting USDC to KES through Yativo is one payout. You lock a quote, and your recipient gets Kenyan shillings in their bank account or M-PESA wallet in under 30 minutes.
Kenya received about US$5.037 billion in diaspora remittances in 2025, per Central Bank of Kenya data. M-PESA alone processed about KSh 38.29 trillion in FY2025.
This guide shows how USDC to KES conversion works on Yativo, which local rails you can use, and what to collect from recipients. It ends with dashboard steps and a full API example.
What It Means to Convert USDC to KES and Pay Out Locally
Converting USDC to KES means turning a dollar-backed stablecoin balance into Kenyan shillings that lands in a real local account. People call this an off-ramp. The hard part is not the conversion itself. It is getting the money to the right bank account or M-PESA wallet quickly and at a known rate.
Most businesses that hold USDC want one of two outcomes. They want to pay someone in Kenya, such as a supplier, a contractor or an employee. Or they want to move their own treasury into KES for local costs.
Yativo handles both with one flow. You hold USDC or USD in your float balance. When you send a payout, Yativo converts the value and a licensed local payout partner credits KES over a local rail such as Local Payout and Mobile Money.
Why Converting USDC to KES Through an Exchange Is Harder Than It Looks
Selling USDC on an exchange looks simple on screen. In practice it adds steps between your balance and your recipient.
Two hops instead of one. You sell on the exchange, withdraw KES to your own bank, then send a second transfer to the recipient. Each hop adds time, limits and another point of failure.
Spreads and withdrawal fees stack up. The quoted price on an order book is rarely what you net after spreads and withdrawal charges. Sending small amounts across borders already costs an average of 6.36% of the amount sent, according to the World Bank.
Banks may question the funds. Some banks ask for extra documents when money arrives from a crypto exchange. That review can freeze the payment you needed to make today.
Wallets and banks need different details. M-PESA needs a registered phone number, while banks need an account number. One integration that handles both saves rework.
We break down more of these costs in the hidden costs of international payments.
How USDC to KES Conversion Works with Yativo
Yativo is payment infrastructure, not a bank or an exchange. We use stablecoins as the settlement layer, and a licensed local payout partner delivers the KES on a domestic rail.
- You fund your Yativo float balance with a fiat or stablecoin deposit, such as USDC.
- You request a quote that shows the rate, the fees and the exact KES amount.
- Yativo settles the payout value on-chain with a licensed local payout partner in Kenya.
- The partner converts the stablecoin to KES and sends a local payment to the recipient’s bank account or M-PESA wallet.
- Your recipient sees Kenyan shillings in their account like any other domestic credit.
Your recipient does not need a crypto wallet. They never see or touch stablecoins. On their side, the payment looks like a normal local KES transfer.
On the local side, PesaLink moves bank-to-bank payments instantly, 24/7, across more than 80 participants. For the wider picture, read our overview of the on-ramp and off-ramp API for businesses and how to receive international payments in stablecoins.
Local Rails for USDC to KES Payouts
Kenya has one local payout gateway that covers banks and mobile money, a dedicated mobile money gateway, and SWIFT options. See our Kenya bank and mobile money guide and Kenya mobile money guide.
Local Payout KES (gateway ID 868)
Gateway 868 pays shillings to Kenyan bank accounts and mobile money wallets under one method. It is the broadest way to turn USDC into KES.
Required details: the fields returned by the form for gateway 868. Expect the recipient name and either a bank and account number or an M-PESA phone number.
Settlement time: Under 30 minutes.
Limits: 150 KES minimum and 999,999 KES maximum per payout in our catalog.
Best for: payroll, supplier payments and mixed bank and wallet runs.
Mobile Money (KE) (gateway ID 1323)
Gateway 1323 pays mobile money wallets directly, including M-PESA. Use it for gig workers, riders and small contractor payouts.
Settlement time: Under 30 minutes.
Limits: 20 KES minimum and 150,000 KES maximum per payout in our catalog.
SWIFT (POBO) and SWIFT
SWIFT (POBO), gateway 1119, delivers KES through SWIFT on behalf of your business. SWIFT, gateway 631, delivers USD instead. Any gateway with POBO in its name requires a POBO endorsement on your account.
Settlement time: T+1 (next business day) for both.
What You Need Before Your First USDC to KES Payout
The form in your dashboard, or the authenticated GET /beneficiary/form/show/868 call, is the authoritative field list. For field details, see API documentation. Collect the items below before you send.
- A verified Yativo business account. KYB must be complete before you can pay out.
- A funded balance. Deposit USDC or fiat into your float balance. USDC deposits credit your balance once confirmed on-chain.
- The customer record, if you are a fintech. Payouts made on behalf of a customer need that customer’s ID.
- M-PESA number, for wallets. Confirm the number is registered to the recipient’s own name.
- Bank and account number, for bank payouts. Ask for both from a statement or banking app.
- A payment reference. An invoice number or payroll period helps the recipient reconcile the credit.
Use the international format for phone numbers, starting with 254. It prevents most wallet payout failures.
How to Convert USDC to KES and Pay Out via Yativo
Option 1: Dashboard (for manual payouts)
- Fund your Yativo float balance with either a fiat or a stablecoin deposit, such as USDC.
- Go to Transfer in your Yativo dashboard.
- Select the float wallet you are paying with, for example USD, EUR, MXN or whichever balance you funded.
- Choose the customer you are paying on behalf of. This step is necessary for fintechs that run payouts on behalf of their customers.
- Choose Kenya as the destination and Local Payout KES as the payout method.
- Enter the recipient details the payout form asks for, such as the recipient name and their bank account or M-PESA number.
- Enter the amount in USD or KES.
- Review the quote: exchange rate, fees, delivery time and the exact KES amount your recipient receives.
- Confirm with your PIN and 2FA.
- Track the payout in real time and download the receipt for your records.
Option 2: API (for automated and bulk payouts)
Every endpoint below is in the Yativo API documentation. Production calls go to https://api.yativo.com/api/v1, and the sandbox runs at https://smtp.yativo.com/api/v1.
Authenticate every request with the X-Api-Key and X-Api-Secret headers. Each key only works from the server IPs listed on it. These keys replaced bearer tokens, as covered in our October update. Every POST also needs a unique Idempotency-Key header.
Step 1. Generate a USDC deposit address on Solana to fund your balance:
POST https://api.yativo.com/api/v1/crypto/create-wallet
X-Api-Key: $YATIVO_API_KEY
X-Api-Secret: $YATIVO_API_SECRET
Idempotency-Key: 1f4edb6d-d2d4-4b42-9465-b5d45d749b8a
Content-Type: application/json
{
"currency": "USDC_SOL"
}
Step 2. List the payout methods available for Kenya:
curl "https://api.yativo.com/api/v1/payment-methods/payout?country=KEN" \
-H "X-Api-Key: $YATIVO_API_KEY" \
-H "X-Api-Secret: $YATIVO_API_SECRET" \
-H "Accept: application/json"
Local Payout KES carries gateway ID 868. Always read the ID from the live response instead of hardcoding it.
Step 3. Fetch the required fields for that gateway:
GET https://api.yativo.com/api/v1/beneficiary/form/show/868
X-Api-Key: $YATIVO_API_KEY
X-Api-Secret: $YATIVO_API_SECRET
The response lists every required field and its accepted values. Build your payment_data object from it.
Step 4. Create the beneficiary. Replace the placeholder with the fields the form returned:
POST https://api.yativo.com/api/v1/beneficiaries/payment-methods/
X-Api-Key: $YATIVO_API_KEY
X-Api-Secret: $YATIVO_API_SECRET
Idempotency-Key: 95362926-380f-4aa6-a0c8-05c3c0243ff3
Content-Type: application/json
{
"gateway_id": 868,
"nickname": "Otieno Support Ltd",
"currency": "KES",
"customer_id": "e8caa491-57b6-4c39-9e3a-d2c97e47fbf0",
"payment_data": {
"{field_from_form}": "{value}"
}
}
Step 5. Lock your KES rate. Quotes hold for 5 minutes:
POST https://api.yativo.com/api/v1/exchange-rate
X-Api-Key: $YATIVO_API_KEY
X-Api-Secret: $YATIVO_API_SECRET
Idempotency-Key: 178fd65a-a080-4d99-899a-854f73b2f883
Content-Type: application/json
{
"from_currency": "USD",
"to_currency": "KES",
"method_id": 868,
"method_type": "payout",
"amount": 900
}
Step 6. Initiate the payout from your balance:
POST https://api.yativo.com/api/v1/wallet/payout
X-Api-Key: $YATIVO_API_KEY
X-Api-Secret: $YATIVO_API_SECRET
Idempotency-Key: 464830b9-0945-4da3-9d15-6c4479eda9e0
Content-Type: application/json
{
"debit_wallet": "USD",
"amount": 900,
"payment_method_id": 6450,
"customer_id": "e8caa491-57b6-4c39-9e3a-d2c97e47fbf0",
"quote_id": "4a72ecf8-6c8a-4e38-9971-8aabe9f785ed"
}
Use the id from the beneficiary response as payment_method_id. For bulk runs, repeat the call per beneficiary, as described on our payouts page.
Yativo vs an Exchange vs a SWIFT Wire for USDC to KES
| Yativo off-ramp | Exchange sale + bank withdrawal | SWIFT wire | |
| Steps to reach the recipient | One payout | Sell, withdraw, then transfer again | One wire through correspondent banks |
| Settlement | Under 30 minutes | Depends on the exchange and your bank | T+1 or longer |
| KES amount known upfront | Yes, in the quote | Only after the trade and fees | Often not, intermediaries may deduct fees |
| Recipient needs crypto | No | No, but you need an exchange account | No |
| Best for | Paying people in Kenya from USDC | Occasional personal conversions | Large payments with no local rail |
Best Practices for Converting USDC to KES
Lock the rate on large payouts. Quotes hold for 5 minutes, so request one right before you approve a big KES payment.
Validate details at onboarding. Check account formats in your own form before you save a beneficiary. Most failed payouts start with a typo.
Match the name to the account. Use the exact legal name the bank account or M-PESA wallet is registered under. Mismatches can trigger compliance holds.
Keep a USDC buffer. Hold enough balance for your next payout cycle so on-chain confirmation time never delays a payment run.
Route by amount. Mobile Money 1323 caps at 150,000 KES per payout, so send larger sums through Local Payout 868 to a bank account.
Use idempotency keys everywhere. A unique Idempotency-Key on every POST stops a retry from sending the same payout twice.
Frequently Asked Questions
Does my recipient need a crypto wallet to receive KES?
No. Your recipient gets Kenyan shillings in their normal bank account or M-PESA wallet. They never touch USDC, and the credit looks like any other domestic payment.
Is converting USDC to KES this way legal and compliant?
Yes, when it runs through regulated infrastructure. Yativo is registered with FinCEN as a Money Services Business, registration number 31000270723339. A licensed local payout partner handles the KES leg. Your own tax and reporting duties still apply, so confirm them with your advisor.
How long does a USDC to KES payout take?
Local Payout and Mobile Money payouts to Kenya settle in under 30 minutes. SWIFT and SWIFT (POBO) settle T+1.
What exchange rate do I get when I convert USDC to KES?
You see the rate, the fees and the exact KES amount before you confirm. Quotes from the exchange-rate endpoint hold for 5 minutes, so you can lock a rate before you approve a large payout.
Do I need an exchange account to convert USDC to KES?
No. You deposit USDC into your Yativo balance and pay out directly on a local rail. There is no separate exchange order, withdrawal request or bank transfer to manage.
Can I pay M-PESA directly from USDC?
Yes. Your recipient gets shillings in their M-PESA wallet. They never see USDC, and the credit looks like any local transfer.
Start Converting USDC to KES with Yativo
Kenya took in about US$5.037 billion in remittances in 2025, and most of it ends up on mobile money. Yativo turns your USDC into KES through a licensed local payout partner in under 30 minutes. Book a demo to set up your first KES payout, or contact sales if you already know your monthly volume.
Sources
- Eastleigh Voice: Kenyans in diaspora sent home Sh649.9 billion in 2025, CBK data shows
- Safaricom: Safaricom Kenya Performance Review (FY2025)
- PesaLink: About PesaLink
- World Bank: Remittance Prices Worldwide
- Yativo: Yativo API Documentation
- Yativo: Safer API access, three new virtual accounts and new payment links