# How to integrate with Ozow

> Choose how to integrate with Ozow: no code, a plugin, or building against our APIs.

Source: https://hub.ozow.com/integration-methods/

There are three ways to integrate with Ozow, and the right one depends on how much you want to
build. This page helps you choose, then points you at the guide.

> ℹ️ **You integrate once.** Pay by Bank is enabled by default, and any other payment methods you
> opt into are enabled by Ozow on your account; they then appear on the Ozow payment page with no
> further development work. See [One integration, every payment
> method](https://hub.ozow.com/integration-methods/apis/payin.md#one-integration-every-payment-method).

## Three ways to integrate

All three are supported, and you can combine them; a plugin on your online store, say, plus payment
links for invoicing.

|  | No code | Plugins and platforms | APIs |
|---|---|---|---|
| **What it is** | Create and send payment requests from the Ozow Dashboard | Install an Ozow extension on your ecommerce platform | Call our APIs from your own application |
| **Best for** | Invoicing, ad-hoc requests, occasional payouts | Standard online stores on a supported platform | Custom checkout, full control, flows a plugin can't handle |
| **You need** | Dashboard access | A supported platform and admin access to it | A developer |

### No code

Everything happens in the Ozow Dashboard. No developer, no deployment needed.

- [Payment requests](https://hub.ozow.com/integration-methods/no-code/payment-requests.md): generate a single link or upload a batch, then send
  them by email, SMS or WhatsApp
- [Refunds](https://hub.ozow.com/integration-methods/no-code/refunds.md): refund a completed transaction. Single transactions only; needs a
  [funded float](https://hub.ozow.com/payment-products/settlements-and-float/float-top-up.md)
- [Bulk payouts](https://hub.ozow.com/integration-methods/no-code/bulk-payouts.md): upload a CSV of payouts for approval. Needs Ozow approval
  and a funded float

### Plugins and platforms

If your store runs on one of these, install the plugin and configure it with your Ozow credentials.
Nothing to build.

[Shopify](https://hub.ozow.com/integration-methods/plugins-and-platforms/shopify.md) · [Magento](https://hub.ozow.com/integration-methods/plugins-and-platforms/magento.md) ·
[WooCommerce](https://hub.ozow.com/integration-methods/plugins-and-platforms/woocommerce.md) · [OpenCart](https://hub.ozow.com/integration-methods/plugins-and-platforms/opencart.md)
· [WHMCS](https://hub.ozow.com/integration-methods/plugins-and-platforms/whmcs.md) · [Xero](https://hub.ozow.com/integration-methods/plugins-and-platforms/xero.md) ·
[PrestaShop](https://hub.ozow.com/integration-methods/plugins-and-platforms/prestashop.md) ·
[nopCommerce](https://hub.ozow.com/integration-methods/plugins-and-platforms/nopcommerce.md) ·
[VirtueMart](https://hub.ozow.com/integration-methods/plugins-and-platforms/virtuemart.md) · [Drupal](https://hub.ozow.com/integration-methods/plugins-and-platforms/drupal.md)

Plugins cover accepting payments. Refund support varies by platform: check your platform's page.
Some platforms have additional plugins for specific payment methods, such as Capitec Pay or voucher
redemption.

### APIs

Build it yourself, for full control over the experience. This is the only route to recurring
payments and API-driven payouts.

New integrations use the **One API**. Payouts use the **Payouts API**. If you built your integration
before the One API, see [Already integrated with Ozow?](#already-integrated-with-ozow) below.

| You want to | Start here |
|---|---|
| Accept payments from your customers | [Choosing a checkout experience](https://hub.ozow.com/integration-methods/apis/payin.md) |
| Pay money out to bank accounts | [Send a payout](https://hub.ozow.com/integration-methods/apis/payout/send-a-payout.md): needs Ozow approval, staging testing and sign-off |
| Return money for a payment you've received | [Refund a payment](https://hub.ozow.com/integration-methods/apis/refunds/refund-a-payment.md): needs a [funded float](https://hub.ozow.com/payment-products/settlements-and-float/float-top-up.md) |
| Charge a customer on a repeating schedule | [Set up recurring payments](https://hub.ozow.com/integration-methods/apis/recurring-payments/set-up-recurring-payments.md): limited availability, by approval only |

Payins and payouts are separate integrations, with different APIs, different credentials and
different approval processes. If you need both, treat them as two pieces of work.

## Choosing a checkout experience

If you're accepting payments through our APIs, you then choose where the customer pays: redirect to
an Ozow-hosted page, embed the checkout in your own page, or, when it's available, collect the
details yourself.

**Redirect is the recommended starting point.** It's the fastest to build, it supports every payment
method enabled on your account, and Ozow carries the PCI DSS scope. You can move to an embedded
experience later without changing how you create payment requests.

→ [Choosing a checkout experience](https://hub.ozow.com/integration-methods/apis/payin.md) compares all three,
including the embedded variants, Apple Pay and Google Pay, and standalone payment buttons for
individual banks and methods.

## Before you go live

|  | Testing | Sign-off |
|---|---|---|
| Payin | [Payin test cases](https://hub.ozow.com/integration-methods/testing/payin-test-cases-one-api.md): recommended, no evidence required | Not required |
| Payout | [Payout test cases](https://hub.ozow.com/integration-methods/testing/payout-test-cases.md): mandatory, in staging | Required before production |
| Refunds | Test in staging | Funded float required |
| Recurring payments | Test in staging | See the go-live checklist in [Set up recurring payments](https://hub.ozow.com/integration-methods/apis/recurring-payments/set-up-recurring-payments.md) |

Payin testing is guidance: we recommend working through the test cases, but you don't need to submit
anything.

> 🚨 Payout testing is a gate, not guidance. Payouts and bulk payouts need explicit approval from
> Ozow, mandatory staging testing, and formal sign-off before they're enabled in production. There
> are no exceptions.

## Already integrated with Ozow?

If your integration posts to `api.ozow.com` and builds a SHA512 hash, you're on the Payments API,
which is deprecated. It remains supported and your integration keeps working, but new payment
methods and features are released on the One API only, and no new merchants are onboarded onto it.

We recommend moving when you next have development capacity. [Migrating to One
API](https://hub.ozow.com/integration-methods/apis/deprecated-integrations/migrating-to-one-api.md) walks through the differences.