Skip to main content
Bank transfer collections work by generating a temporary account for a specific amount. The customer sends the exact amount to it before it expires, and the payment is reconciled to your Zerocash account automatically.
This collection method is available for Kenya (KES) and Nigeria (NGN) only.
Use it for larger payments, invoice-style collections, and customers who prefer bank transfer over mobile money or card.

Happy path

1

Create the account

Generate a temporary account for the expected amount and currency.
2

Show the details

Display the account number, bank name, amount, and expiry to the customer.
3

Customer transfers

They send the exact amount before the account expires.
4

Confirm

Listen for the webhook or query the transaction status.
5

Fulfil

Only once the transfer is successful.

1. Create the account

Send a request to Bank Transfer.
Request
Response

2. Show the details to your customer

Render these fields from the response so the customer can complete the transfer:
The customer must transfer the exact amount to the account before expiresAt. A partial or late transfer will not reconcile cleanly.

3. Check the transaction status

Call Get Transaction with the transactionId or your externalReference.

4. Handle webhooks

5. Handle expiry

Accounts created this way are temporary and expire at expiresAt. After that:
  • The account can no longer receive new transfers.
  • Transfers received after expiry may not reconcile automatically.
  • Create a new account if the customer needs more time.
If a transfer lands after expiry, you may need to reconcile manually. Contact support@zerocash.tech for help.

Best practices

Verify before fulfilling

Confirm the status even after receiving a webhook. Never release goods on account creation alone.

Store both references

Keep transactionId and externalReference for reconciliation and support tickets.

Surface the deadline

Show the customer a live countdown to expiresAt, and re-issue an account when it lapses.

Prefer webhooks

Use webhooks for real-time updates rather than polling the status endpoint in a loop.