Payment API guide
Collect Uganda mobile money from Collections & wallet or through a server-side API key. Read this guide here, copy it for your developer, or open the plain-text version for an LLM.
Collections send a real prompt to the payer. The wallet is credited only after ioTec confirms success. Withdrawals are requests for manual review; submitting one does not send money.
Collection rules
Enter the UGX amount the merchant should receive. Billwebb adds YakaApp's 1% app charge and a withdrawal reserve of UGX 600, 1,200, 2,000 or 2,400 according to amount. ioTec charges its 4% separately to the payer. The merchant wallet receives the requested UGX amount after confirmation. Keep the API key private on your server.
API endpoints
Use https://billwebb.admin.yakani.org as the base URL. Create an API key in Collections & wallet and store it on your server. Never paste it into an LLM prompt or put it in browser code.
- POST
/api/v1/transactionswithx-api-keyand a uniqueIdempotency-Keyheader (12–100 letters, numbers or hyphens). Amount is the merchant's UGX credit before charges; minimum UGX 500. - GET
/api/v1/transactions?reference=BW-…to verify final status. Onlysuccessmeans paid; a sent prompt is pending. - GET
/api/v1/merchant-walletwith the same key to view the confirmed UGX balance and recent withdrawal status. - POST
/api/v1/merchant-withdrawalswith the same key and a newIdempotency-Keyto request a verified withdrawal.
Create a collection
curl -X POST 'https://billwebb.admin.yakani.org/api/v1/transactions' \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_SERVER_SIDE_API_KEY' \
-H 'Idempotency-Key: order-123456789' \
-d '{"amount":50000,"phone":"0771234567","payerName":"Customer"}'Check its status
curl 'https://billwebb.admin.yakani.org/api/v1/transactions?reference=BW-YOUR_REFERENCE' \
-H 'x-api-key: YOUR_SERVER_SIDE_API_KEY'These are live requests. Replace the placeholders with your own private key and reference. Do not run the collection example against a real phone just to test the guide.
Withdrawals
Withdrawals are available from the dashboard and API. First have your identity, business, phone, and payout destination approved. Mobile-money withdrawals start at UGX 901 and bank withdrawals at UGX 7,501. The requested amount is held from the UGX wallet; the recipient receives that amount minus the displayed fee. Every request is manually reviewed and paid. Rejected requests release the held funds.
Request a mobile-money withdrawal
curl -X POST 'https://billwebb.admin.yakani.org/api/v1/merchant-withdrawals' \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_SERVER_SIDE_API_KEY' \
-H 'Idempotency-Key: withdrawal-123456789' \
-d '{"amountUgx":50000,"method":"mobile_money","phone":"0771234567"}'Use method: "bank" with bankName, accountName, and accountNumber for a previously approved bank account. Reusing the same idempotency key with the same details returns the original request; using it with different details returns HTTP 409.
For developers and LLM tools
Read the complete plain-text API guide for response shapes, error codes, idempotency and payment verification. Copy the full guide above and paste it into your coding assistant without your secret key.