Ozow Hub
On this page4 sections
Build with AI 1 package

A build package is every page for one task, with the API operations they use. Copy the prompt into a coding assistant, or hand it the package itself: slim links to each page, full inlines all of them in one document.

  • Send a payoutEverything needed to pay money out to a customer's bank account or voucher with the Payouts API, including how to exercise the failure paths before going live.
    View package

PayoutPayout Money sent from a merchant to a bank account. Unlike a refund, a payout is not tied to a payment anyone made you, so you can pay anyone with a bank account. Payouts draw on your float rather than on your incoming payments, and they are not self-service: they need approval from Ozow and testing in staging first. to bank sends money from your Ozow floatFloat The balance held with Ozow that payouts and refunds are paid out of. Both draw on it, and neither will process while it is empty. Payins do not need one, so if you only take payments you never meet it. account into someone else's South African bank account.

Unlike a refund, a payout isn't tied to a payment anyone made you. You can pay anyone with a supported bank account.

Payouts run entirely from your backend or from the Ozow Dashboard. There's no customer-facing step and nothing for the recipient to do.

Payouts are not self-service. They need explicit approval from Ozow, mandatory testing in staging, and formal sign-off before they're enabled in production. See Enabling payouts.

How a payout works

  1. You submit a payout with the recipient's bank account details and the amount.
  2. Ozow confirms the payout is genuinely intended before any money moves, through your verification webhookWebhook A URL of yours that Ozow calls when something happens, rather than you polling to find out. The call carries no credential of yours and arrives at a public URL, so authenticate it before acting on it: a hash field on the Payments API, a Svix signature on One API. if you're using the API, or an approval if you're uploading from the Dashboard.
  3. Ozow submits the payout to the recipient's bank.
  4. The funds arrive, immediately if the payout is sent in real time, otherwise within 1-2 business days.
  5. Ozow notifies your system of the final status.

There is no customer-facing step. The whole flow happens between your backend and Ozow.

Enabling payouts

Payouts move money out of your account, so the process to switch them on is deliberately strict. There are no exceptions to any of the three steps.

1. Approval. Speak to your account manager. Ozow reviews your use case before payouts are enabled.

2. Staging testing. You must complete the payout test cases in staging. This is mandatory and evidence is required.

3. Sign-off. Ozow signs off on your staging results before payouts are enabled in production.

You'll also need a funded float before any payout will process. See Float top-up.

Payments from your customers don't fund your float.

When a customer pays you, that money is settled to your bank account. Your float is separate, and you fund it yourself by transferring money to Ozow. A busy sales day doesn't give you more capacity to refund or pay out; only a top-up does.

Need a different arrangement? Speak to your account manager if you'd like your incoming payments to flow into your float rather than being settled to your bank account. Ozow approves these at its discretion based on your use case; approval isn't guaranteed.

Things to know

Payouts come from your float, not from your incoming payments. Money customers pay you gets settled to your bank account; it doesn't top up your payout balance. If your float is empty, payouts won't process. Keep it funded ahead of when you need it; topping up takes time to clearClearing Moving funds between two banks so the recipient can rely on them. It is a separate step from a payment being approved: a payment can succeed and the money still be in transit. Real-Time Clearing is the immediate version..

Timing depends on how the payout is sent. Real-time payouts arrive immediately. Standard payouts take 1-2 business days. You choose per payout.

Every payout is checked before money moves. How depends on how you send it. On the API, Ozow calls back to your system to confirm the payout is legitimate; if your webhook rejects it, or Ozow can't reach it, the payout fails and nothing moves. From the Dashboard, a second person has to approve the batch before it's released. Either way the check is deliberate: it's what stops a single compromised credential or one person's mistake from draining your float. If you're on the API, that means keeping your webhook reachable and making sure Ozow has the current URL if you ever change it.

Recipient account details are your responsibility. Ozow validates what it can, but an account number that's valid and belongs to the wrong person will still be paid. Verify recipient details before you submit.

Payouts can be returned. If the destination account has closed or can't accept the payment, the payout comes back and the funds return to your float. You'll see this as a returned status rather than a failure at submission.

Never blindly resubmit a failed payout. Most failures are safe to retry once you've fixed the cause. An insufficient-balance failure is not: top up your float instead, and the payout processes automatically. Resubmitting that one risks paying the recipient twice. See Transaction and settlement statuses for what each status means and what to do about it.

Recipient has no bank account? See Payout to voucher.

Integrating payouts

Bulk payouts from the Dashboard: upload a CSV, no development required. Uses a two-role approval model; Ozow recommends that the person who uploads a batch is different from the person who approves it. Same approval and staging process as the API. → Bulk payouts

Payouts API: submit payouts from your own system, individually or in volume. Covers the verification webhook, account number encryption, status notifications and the status check API. → Send a payout

Before you go live: Payout test cases

Last updated