OnLink

OnLink API

Move money into and out of Kenya from inside your own product. Start with the plain-language overview, or go straight to a signed first call.

OnLink is a business-to-business API for moving money into and out of Kenya. Your partner account holds a Kenyan shilling balance: shillings arrive in it over the Kenyan rails your payers already use, and leave it to M-PESA or a bank account in a single call or a batch. On top of that balance, one product converts between shillings and USDT — a US-dollar stablecoin that moves over the Tron network — and the other opens USD collections for contributors paying from the US. On that second product you can convert the dollars to shillings, or pay them out as dollars. Every movement is asynchronous: we accept the instruction, move the money, and send you a signed message when it is done.

Each partner account is set up for one product, and your credentials carry only that product's scopes. Products and scopes has the split.

You do not need to know anything about blockchains or bank rails to follow these docs. The Overview explains the product in plain language, with no code. The technical sections begin at Get started.

Choose your path

What you can build

Take shillings in on a Kenyan rail

Payers top up your KES balance by M-PESA or bank transfer — or you raise the M-PESA prompt on their phone yourself.

Pay out shillings to M-PESA or a bank

One call moves money out of your KES balance, confirmed with a one-time code sent to someone you nominated.

Pay many recipients at once

Up to 100 transfers under one instruction and one confirmation, each settling on its own.

Turn USDT into shillings

Sell from your USDT balance at a quoted rate; shillings land in a bank account registered to you.

Turn shillings into USDT

Buy at a quoted rate, paid for straight out of your KES balance — there is no payment step to wait on.

Send USDT to a wallet you registered

Move USDT from your balance to a withdrawal address you registered and confirmed ahead of time.

Collect US dollars from US contributors

Open a collection, hand your contributor a reference and US deposit details, and be paid the net into your USD account.

Turn US dollars into shillings

Convert the USD in your USD account into KES in your KES account with one call, then pay it out in Kenya. Or pay the dollars out as dollars.

Know the moment money moves

Signed webhooks for orders, transfers, USDT sends, collections, conversions and every credit that lands on your account.

Control where value can go

Sell proceeds land in your own OnLink KES account, withdrawal addresses are registered ahead of time, and every transfer and USDT send waits for a one-time code sent to someone you nominated. You can ask OnLink to waive the code for your account. In production it then applies only when you call with an API key that has an IP allowlist.

Remittance operators, exchanges, treasury teams and platforms paying suppliers in Kenya combine these in different ways. See Use cases for how.

How a conversion works

Every order, in either direction, follows the same three steps:

  1. Lock a rate. You ask for a quote and we hold that rate for a short window.
  2. Create an order against the quote, with a reference of your own. The order is paid for from funds you already hold with us. A buy uses your KES. A sell uses your USDT balance, or USDT we collect from your own wallet if your account is set up with one. There is nothing to send and no payment to match.
  3. We settle and tell you. We deliver the other side and send you a webhook when the order reaches its final state.

Settlement is not immediate. The order is created first and completes later, the way a bank transfer does rather than a tap-to-pay. That one fact shapes how an integration is built, so it has its own page: How it works for the plain-language version and Asynchronous settlement for the version you build against.

Find your way around

Environment

Every example in these docs uses the sandbox at https://sandbox.onlink.africa. Sandbox is where you integrate and certify. Production access is enabled per partner once your integration is ready, and nothing in your code changes except the base URL and your credentials. Read Sandbox for what it can and cannot do.

Getting help

Email info@onlink.africa with integration questions, incidents and credential requests. It is a monitored inbox. Check onlink.africa/status first if something looks wrong, and quote the requestId from any error response when you write to us — it is the one handle that finds your request in our logs. See Status and support for what to include.

On this page