Money is integers
All amounts are minor units — cents — as integers. No decimals cross the wire, so nothing rounds differently on your side than ours.
REST over HTTPS, JSON in and out, idempotency on every write, and webhooks that retry until you acknowledge them. Amounts are integers in cents, because floating point has no business near money.
All amounts are minor units — cents — as integers. No decimals cross the wire, so nothing rounds differently on your side than ours.
Send an Idempotency-Key on every POST. Retry as often as you like; the same key returns the original result instead of charging twice.
Every charge response carries amount, fee, tax and net as separate fields. You never have to derive one from the others.
Events retry with backoff for 24 hours until you return 2xx. Each carries a signature header you should verify before trusting the body.
A charge ends in succeeded, failed or reversed. Nothing silently changes state after it settles.
Publishable keys can only create payment intents. Secret keys never belong in client code or a repository.
| Endpoint | Method | What it does |
|---|---|---|
| /v1/charges | POST | Collect from a wallet, mobile money account or card. |
| /v1/charges/:id | GET | Retrieve a charge with its fee, tax and net breakdown. |
| /v1/refunds | POST | Refund all or part of a charge; fees are returned pro rata. |
| /v1/payouts | POST | Send funds to a wallet, mobile money number or bank account. |
| /v1/payouts/batches | POST | Submit up to 5,000 payouts in one call; each line succeeds or fails independently. |
| /v1/balances | GET | Available and pending balance, per currency. |
| /v1/settlements | GET | Settlements with the transaction list behind each one. |
| /v1/events | GET | Replay webhook events you may have missed. |
Every event carries a ThumaPay-Signature header. Compute an HMAC of the raw body with your endpoint secret and compare in constant time. Reject anything that does not match, and reject timestamps older than five minutes to stop replay.
Sandbox access does not wait for full verification. Get keys, wire up a charge, and see the fee breakdown in your own response body.
ThumaPay is not open for accounts yet. We are completing licence applications with the Reserve Bank of Zimbabwe, and we will not onboard customers or hold funds until that is done.
Tell us you want in and we will contact you when the service launches in your area. We will use your details for that and nothing else.
This opens your email app with the details filled in. Nothing you type here is stored in your browser.
ThumaPay Zimbabwe (Pvt) Limited is preparing to operate a regulated payment service. This notice covers how we handle data today, and how we will handle it once live.
If you join the waitlist or contact us, we hold your email address and what you told us, so we can reply and let you know when the service opens. Nothing more.
To provide the service, to meet anti-money-laundering and record-keeping duties under Zimbabwean financial services law, to investigate disputes, and to prevent fraud.
Request a copy, ask us to correct it, or complain: hello@thumapay.com. Where a legal duty requires retention, we cannot delete on request.
With regulators and law enforcement where legally required, and with providers processing it on our instructions under contract. We do not sell personal data.
These terms cover use of this website. Terms of service for the ThumaPay wallet will be published before the service opens and presented for acceptance at that point.
Nothing here is an offer of financial services, an invitation to deposit money, or a promise that a product will launch on a particular date. Services are described as intended, subject to authorisation.
Fee examples and calculators demonstrate how pricing will be presented. They are not quotations and are not binding until published as live rates by the licensed entity.
ThumaPay Zimbabwe (Pvt) Limited is not currently licensed by the Reserve Bank of Zimbabwe. Applications are in progress. We do not accept deposits or hold customer funds.
Product descriptions may change as authorisation progresses and as regulators comment on our applications.
Required for the site to work: security, session handling and remembering your cookie choice. Always on.
Load only after you choose "Accept all". Choosing "Essential only" means no analytics or advertising scripts load at all.
Clear this site's data in your browser to be asked again.
Typefaces are served from our own domain, so no third party is contacted before you choose.