A deposit is a collection — money moves from your customer into your Kotani Pay deposit balance. There are three collection methods: mobile money, bank checkout, and card.Documentation Index
Fetch the complete documentation index at: https://developers.kotanipay.com/llms.txt
Use this file to discover all available pages before exploring further.
Before You Start
- An API key — see API Keys
- A fiat wallet for the currency you’re collecting in
- A customer record for the person paying — see Create Customer
- A publicly reachable
callbackUrlon your server
Mobile Money Deposit
The most common collection method across Kenya, Uganda, Tanzania, Ghana, and other markets. 1. Create the customer if you haven’t already. The customer record holds the phone number and network details needed to trigger the collection. 2. Initiate the deposit — call POST /api/v3/deposit/mobile-money with yourcallbackUrl. The API responds immediately with a PENDING transaction. The customer has not paid yet.
3. The customer confirms. Depending on the network:
- M-PESA / Airtel — STK push, customer enters PIN to approve
- MTN / others — USSD prompt or SMS confirmation
callbackUrl when the transaction settles:
SUCCESSFUL— funds collected, your deposit balance will be creditedFAILED— collection failed (declined, insufficient funds, timeout)
If you have a webhook secret configured, the callback arrives in a signed envelope with
X-Kotani-Signature, X-Kotani-Event, and X-Kotani-Integrator headers. Without a secret, the transaction fields are posted directly to your callbackUrl. See Webhooks.Bank Checkout Deposit
Kotani Pay generates a checkout URL and the customer completes payment on the bank’s hosted page. 1. Initiate the checkout — call POST /api/v3/deposit/bank-checkout with yourcallbackUrl and a redirectUrl (where to send the customer after they finish on the bank page).
2. Redirect the customer to the checkoutUrl in the response. They complete payment there.
3. Kotani Pay notifies you via your callbackUrl when the bank confirms — same event structure as mobile money.
4. Poll for status if needed — GET /api/v3/deposit/bank-checkout/status/:reference_id.
Card Deposit
1. Initiate the charge — call POST /api/v3/deposit/card with yourcallbackUrl.
2. Handle 3DS if required. If the response includes a redirect URL, send the customer there to complete 3D Secure authentication before the charge can settle.
3. Kotani Pay notifies you via your callbackUrl when the charge settles.
4. Poll for status if needed — GET /api/v3/deposit/card/status/:reference_id.
Monitoring from the Dashboard
- Log in to backoffice.kotanipay.com
- Use the country and currency selector to filter by market
- Navigate to Collections in the left sidebar
Successful deposits land in your deposit balance, not your payout balance. To use collected funds for withdrawals, transfer them to your payout balance first — see Balances & Settlement.