Ozow Hub
On this page9 sections
Build with AI 6 packages

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.

Filter
  • Take a paymentEverything needed to take a payment end to end with One API, from credentials through the hosted page to the webhook that confirms it, and the test cases that prove each outcome before you go live.
    View package
  • Embed checkout in your own pageEverything needed to keep the customer on your site while they pay, as an iframe, a modal, or the Wallet SDK for Apple Pay and Google Pay, with the notification that actually confirms the payment.
    View package
  • Take a recurring paymentEverything needed to collect from a customer on a schedule with One API, from the consent the customer gives once through to each collection and the webhook that reports it.
    View package

Ozow is a payment infrastructure layer that connects merchants to multiple payment methods and banking rails. Instead of building separate integrations for each bank or payment method, you integrate with Ozow to gain access to the full suite of Ozow payment products.

The two directions of money movement

Every Ozow integration moves money in one of two directions.

PayinPayin A payment made by a consumer to a merchant. The direction most of this site is about: money coming in. Its counterpart is a payout, which sends money out and is not tied to any payment anyone made you.: a customer pays you. The customer initiates the payment, Ozow processes it, and you receive the funds. This covers checkout and any other payment collection.

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.: you send funds to a recipient. Your system initiates the transfer, Ozow processes it, and the recipient receives the funds in their bank account. This covers disbursements, refunds to bank accounts, and bulk payments.

The distinction runs through everything: different APIs, different credentials, different approval processes, and a different structure in these docs. Work out which direction you need before you start. The Integration methods section is organised around it.

One integration, every way to pay

Payment methods are enabled on your Ozow account, not in your code.

Pay by BankPay by Bank The payer authorises the payment inside their own banking app or online banking, and the funds move from their bank account. No card is involved and no card details are entered. is enabled by default. Other methods you opt into (card, PayShap RequestPayShap Request The request side of PayShap. Rather than the payer pushing money, the payee asks for it: the payer receives a request and approves it in their own banking app, and the funds move once they do. Enabled by Ozow on request rather than by default.payshap.co.za, voucher, buy now pay later, crypto) are enabled by Ozow on your account, and they then appear on the Ozow payment page automatically. You don't build a new integration or call a different endpoint for each one.

This means you can go live with Pay by Bank and add methods later as a commercial decision rather than a development project.

The core payment flows

Payin

Two things to notice. The payment request is created by your server, never by the customer's browser. And the outcome arrives on your 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., not in the customer's redirectRedirect Sending the payer to the Ozow payment page to complete the payment, and returning them to your site afterwards. The alternative is embedding the checkout in your own page, where the payer never leaves it. back to your site; the customer landing on your success page is not proof of payment. See Building a secure integration.

Payout

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

Before Ozow moves any money, it calls back to your system to confirm the payout is genuine. If that call fails or can't be reached, the payout does not proceed. That's deliberate, and it's why payout integrations require testing and sign-off before they go live.

Getting paid: transactions and settlements

A completed transaction is not money in your bank account. These are two separate stages with two separate status vocabularies.

The transaction status tells you whether the customer's payment succeeded. The settlementSettlement Ozow paying the money you have collected into your bank account. Payins arrive at Ozow first and are settled to you on a schedule, so what a customer paid you today and what has been settled to you today are different amounts. status tells you whether the money has actually reached you. Settlement happens on a delay that depends on the payment method.

Use transaction status to fulfil orders. Use settlement status to reconcile your bank account. See Transaction and settlement statuses.

Paying out: your float

Money leaving Ozow doesn't come out of your incoming payments. It comes from a 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.: a balance you pre-fund by transferring money to Ozow.

Both payouts and refunds draw on the float. If it's empty, they won't process. Payins don't need a float at all, so if you're only collecting payments you can ignore this entirely.

See Float top-up.

Environments

Ozow provides separate staging and production environments. They're completely isolated, and staging credentials are different from your production credentials.

Testing requirements differ by direction. Payin integrations can go straight to production. We recommend working through the payin test cases, but you don't need to submit anything. Payout integrations require mandatory staging testing and formal sign-off from Ozow before they're enabled in production.

Getting your credentials:

  • Production credentials are available to you directly in the Ozow Dashboard. Ozow will never send them to you.
  • Staging credentials are issued on request. Ask your account manager or contact support@ozow.com.

Ozow will never share your production credentials with you, and will never ask you for them. If anyone contacts you offering to send production credentials, or asking you to share yours, treat it as fraudulent and report it to support@ozow.com.

Where to go next

How you integrate depends on how much control you want over the payment experience and how much you want to build, from no-code payment requests through to a full API integration.

Head to Integration methods: overview to choose the right path.

Last updated