What you can build
Checkout
Send customers to a Tanda-hosted page where they pay by M-PESA, Airtel Money or bank transfer. No payment UI to build.
Collections
Trigger an M-PESA or Airtel Money prompt, or issue a virtual bank account.
Payouts
Pay suppliers, staff and customers on M-PESA, Airtel Money, Kenyan banks, paybills and tills.
Webhooks
Get notified the moment a payment or payout succeeds or fails.
How it works
1
Authenticate
Exchange your public key and API key for a bearer token. See Authentication.
2
Start a transaction
Create a checkout session, a charge or a payout. Every request carries your own unique
externalReference.3
Wait for the outcome
Money moves asynchronously. A
200 response means Tanda accepted the request, not that funds have moved. The final status arrives by webhook.4
Fulfil
Release goods or credit your customer only when the status is
successful.Key concepts
Transaction IDs and external references
Transaction IDs and external references
Every checkout session, charge, payout and refund creates a transaction with a Tanda
transactionId. You also send your own externalReference, which must be unique per attempt. You can look a transaction up by either.Asynchronous settlement
Asynchronous settlement
Customers approve M-PESA and Airtel Money prompts on their phones, and banks settle on their own schedule. Treat
pending as “not yet” and act only on successful or failed.Amounts, currency and phone numbers
Amounts, currency and phone numbers
Amounts are in Kenyan shillings (KES), not cents:
1500 means KES 1,500. Phone numbers use the international format without the +, for example 254712345678. See Kenya payment methods.Reference data
Reference data
Bank codes and enabled networks can change. Fetch them from Get banks and Get mobile money providers instead of hard-coding them.
Base URL
Start with the quickstart
Authenticate, collect your first payment and send your first payout in sandbox.

