Frequently asked questions
The questions product, finance and compliance teams ask before an engineer is involved, answered without code.
Short answers, each with a link to the page that has the long one. If your question is not here, email info@onlink.africa.
The basics
What does the API do, in one sentence?
It converts between Kenyan shillings and USDT for your business: you send one, we send the other to a destination you registered, and we tell you when it is done. What is the OnLink Partner API? has the longer version.
Do I need to understand blockchains to use it?
No. You need a wallet that can send and receive USDT on the Tron network, which your engineers set up. Everything else — rates, matching payments, paying out — is behind the API. The Glossary covers every term you will meet.
Which currencies and networks are supported?
One pair: Kenyan shillings and USDT on the Tron network. No other currency, no other token, no other network. USDT sent on a different network cannot be credited or returned, so this is worth stating to anyone who touches a wallet. See Rails.
Is this for individuals?
No. The API is for businesses that hold a relationship with the people whose money is moving. OnLink does not offer a self-serve trade or a stablecoin wallet to individuals through it.
Money in, money out
Where does the money go?
Only to places registered in advance. Shillings are paid into a Kenyan bank account registered with us. USDT is sent to an address you registered and confirmed through the API. A payment can never be redirected somewhere new by whoever holds your credentials.
Can my customers pay with M-PESA?
Yes, when buying USDT: your payer sends shillings to your collection account by M-PESA paybill or by bank transfer. Payouts are different — shillings we send you land in a registered bank account, not in a mobile money wallet. See KES.
How long does a conversion take?
It is not immediate. An order is created first and settles later, and you find out through a webhook rather than by waiting on the request. Each quote comes with a rough estimate you can show your customer; treat it as a guide for expectations, not a deadline to build around. How it works explains the sequence.
What if the exchange rate moves?
The rate on your quote is held until the quote expires, and the order that uses it executes at that rate. If the quote expires before you act, you take a new one and see the new amounts. Nothing is ever re-priced without you seeing it. See Quotes.
Is there a minimum or a maximum?
There is no minimum beyond an amount above zero. There are two ceilings — a per-order maximum and a rolling 24-hour maximum — and both are set for your account during onboarding rather than published here. See Caps and limits.
What does it cost?
The amounts on your quote are the amounts the order executes at; there is no separate fee field on an order. Commercial terms are part of your partner agreement — ask us.
What happens if something goes wrong with an order?
An order that is never funded simply expires, and nothing is owed. An order we cannot complete is rejected: your funds are with us and resolving it is a conversation with our team, with your order id and reference to hand. Neither outcome is silent — each sends a webhook.
Responsibilities and compliance
Do my customers need an OnLink account?
No. Your customers deal with you and never with OnLink. We do not see them.
Who verifies my customers?
You do. Identifying and verifying your users is your obligation, under your own registrations, and so is deciding who may transact on your platform. We screen each movement of value and its counterparties. Who does what draws the line in full.
Will you ask me about a transaction?
Sometimes, yes. If we need information about a movement, we ask you, because you are the party who has it. Being able to reach the customer behind an order and answer promptly is part of the integration.
Getting started
Can we try it before committing?
Yes. Everything starts in sandbox, a complete copy of the service where no real value moves. Ask for access and your engineers can integrate end to end, including receiving real signed webhooks. See Get started.
Is it live in production?
Production access is enabled per partner once an integration has been built and certified in sandbox. Nothing in the code changes at that point except the address it talks to and the credentials it uses.
Can we call it from a mobile app or a website directly?
No. It is a server-to-server API. Every request is signed with a secret that must never be shipped inside an app or a web page, so your own backend makes the calls.
How is it secured?
Every request is signed, so a captured request cannot be replayed. Quotes are single-use. Creating an order twice with the same reference cannot produce two orders. Destinations are registered in advance and cannot be added by a credential. See Authentication and API credentials.
What do our engineers need to know first?
Three things: settlement is asynchronous, every amount is text with fixed decimal places, and every request is signed. Get started takes them from credentials to a first signed call and a complete order.
How do we get help?
Email info@onlink.africa. Check
onlink.africa/status first, and include the
requestId from any error response.
Status and support lists what to
include.