Skip to main content
There are two ways to collect money with Tanda.

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 a stepRequired 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.