Move money between USDT and Kenyan shillings
One Kenyan counterparty for both legs: USDT settles on Tron, shillings over M-PESA, PesaLink, RTGS or EFT, and the rate is locked before anything moves.
How value moves
Both legs settle with the same counterparty. We issue the reference on every order, so attribution is exact rather than reconciled afterwards.
USDT on Tron
TRC-20
OnLink
quotes · locks · settles
Kenyan shillings
M-PESA · PesaLink · RTGS · EFT
M-PESA
Pay out to a phone number, or collect over Paybill. A KES 20,000 payout costs KES 53 on the August 2026 business tariff.
PesaLink
Bank-to-bank, typically under 30 minutes, for amounts M-PESA limits will not carry.
RTGS
High-value settlement, value-dated on the business day.
EFT
Batched payouts where next-day value is acceptable.
A stolen credential moves nothing
Quoting and matching are programmatic; releasing value is not. Every send — USDT out, or shillings out — waits for a named OnLink admin behind step-up authentication. Your locked rate holds while it waits.
The licence question
We are applying and expect to be granted a licence. Kenyan law lets us keep operating while the application is decided.
The legal basis
The Virtual Asset Service Providers Regulations 2026 carry a transitional provision for businesses, like OnLink, that were already operating when the rules were published on 22 July 2026. Our licence application is in progress ahead of the 4 November 2026 deadline; no VASP authorisation has been granted to anyone in Kenya yet.
For whoever is integrating
Signed requests
HMAC-SHA256 over the method, path, timestamp, nonce and a hash of the body, with replay-protected nonces.
Single-use quotes
A retried request cannot open a second position.
Second approval for new addresses
A leaked credential on its own cannot redirect value.
POST /webhooks/onlink HTTP/1.1
X-OnLink-Signature: t=1755612131, v1=6f2a9c4b…
X-OnLink-Nonce: 5b0cf2d1
{
"event": "order.settled",
"orderId": "ord_01J8LG…",
"direction": "usdt_to_kes",
"rail": "mpesa",
"reference": "OLK-58291",
"settledAt": "2026-08-19T14:02:11Z"
}Illustrative. The generated reference below describes exactly what is live.
Questions we get asked
- Which stablecoin and which chain?
- USDT on Tron (TRC-20) against Kenyan shillings. Other assets and chains are not offered on the API today.
- How is the rate set?
- A fixed shilling spread either side of the USD/KES rate, published on this page and returned by the same rate engine the API quotes from. You get a quote with a locked rate before anything moves.
- How long does sandbox access take?
- Credentials are issued by hand, usually within one business day. Issuing them requires an OnLink admin with step-up authentication, because the credential authenticates to the live partner plane — so there is no self-serve signup, on purpose.
- What are the limits?
- Per-order and daily caps are set per partner and agreed before you go live. Tell us what you moved last month and we will tell you whether we can carry it.
- Do you handle the shilling collection as well as the payout?
- Yes — both directions, over M-PESA, PesaLink, RTGS or EFT, against a dedicated collection account so an inbound reference matches exactly one order.
- What do I get as evidence of a transaction?
- A transaction hash or a settlement confirmation, plus a PDF invoice and receipt per order, and a signed webhook when state changes.