Checkout (recommended)
One API call returns a link to a Tanda-hosted payment page. The customer picks M-PESA, Airtel Money or bank transfer. You build no payment UI.
Direct APIs
You collect the customer’s details in your own app and call the method’s endpoint yourself.
Direct APIs
Which should I use?
- Online checkout, invoices, payment links: use checkout.
- You already have the customer’s phone number (wallet top-ups, POS): use a mobile money charge. It’s one call, and the prompt lands on the customer’s phone.
- Large B2B payments: use a bank transfer.
The flow for every method
1
Start the charge
Send a unique
externalReference with every request. Store the transactionId Tanda returns next to your order.2
Show the customer what to do
Redirect to the checkout link, tell them to check their phone, or show the virtual account details.
3
Wait for the outcome
Listen for
transaction_updated webhooks. Use Get transaction as a fallback.4
Fulfil on success only
Release value when the status is
successful. A pending status or a redirect back to your site is not a payment.Steps the customer may need to take
Some charges pause with astepRequired value in the webhook or transaction. The transaction stays pending until the step is done.
Checkout handles the phone prompt and bank details on the hosted page for you.

