
Charges
Collect money from your customers via mobile money, bank transfer, card, or OPay — across
every market Zerocash supports.
Payouts
Send money to recipients’ mobile money wallets and bank accounts, with saved beneficiaries
and cross-currency debits.
Base URL
Every endpoint in this documentation is served from a single host.Start here
1
Get your keys
Grab your public key and API key from the Developers → API Keys page of your
dashboard.
2
Generate a bearer token
Exchange those keys for a short-lived bearer token, then send it as
Authorization: Bearer <token> on every other request.3
Move money in the sandbox
Run a charge and a payout against the sandbox with test credentials before you go live.
4
Listen for webhooks
Transactions settle asynchronously. Webhooks tell you the final status — never grant value
on the initial API response alone.
Quickstart
Make your first charge and your first payout.
How the API is shaped
Everything is a transaction
Everything is a transaction
Charges and payouts both create a transaction with a
transactionId. You attach your own
externalReference at creation time, and you can look a transaction up later by either
identifier through Get Transaction.Money movement is asynchronous
Money movement is asynchronous
A
200 on a charge or payout means the request was accepted for processing, not that funds
moved. The final outcome arrives by webhook or by polling
the transaction. Treat only a terminal successful status as settlement.Reference data drives the request
Reference data drives the request
Bank codes, mobile money operator codes, and country coverage change over time. Fetch them
from the reference data endpoints rather than
hard-coding them.
Idempotency comes from your reference
Idempotency comes from your reference
externalReference must be unique per transaction. Reusing one is how you avoid creating
duplicate charges or payouts when a request is retried.Get help
support@zerocash.tech
Reach the team for integration support, coverage questions, or production access.