# Send a payout

> Everything 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.

Paying out is not a payin in reverse. The money leaves a float balance you have
topped up in advance, a request above that balance fails validation rather than
queueing, and the outcome arrives on a notification rather than in the response
to your call.

Decide first whether you are paying to a bank account or a voucher: the fields
differ. Then work through the mock test cases, which are the only way to
exercise a decryption failure or an insufficient float before a real one
happens.

**Payout statuses reuse names that mean something different from payin
statuses.** Handle every payout status the statuses page lists.

## What this was built from

- Ozow Hub, commit `e0b2a572`
- `payouts-api` version 1.0, OpenAPI document: https://hub.ozow.com/api-reference/specs/payouts-api.yaml
- Build against `https://payoutsapi.ozow.com/v1` for `payouts-api`
- 9 pages, 5 operations
- Everything below inlined in one document: https://hub.ozow.com/bundles/send-a-payout-full.md

## Implement against these

Every field name, order and format on these pages is exact.

- [Send a payout](https://hub.ozow.com/integration-methods/apis/payout/send-a-payout.md): Transfer funds to a recipient's bank account with the Payouts API. There is no customer-facing step, so the whole integration lives in your backend.
- [Payout test cases](https://hub.ozow.com/integration-methods/testing/payout-test-cases.md): The mandatory tests for a payout integration, for bulk payouts from the Dashboard and for the Payouts API. You must pass these before going live.

## Background

Context for the above. Nothing here is implemented against.

- [How Ozow works](https://hub.ozow.com/getting-started.md): How Ozow connects you to South African banks and payment methods, and the two directions money moves: payins from customers, payouts to recipients.
- [Prerequisites and onboarding](https://hub.ozow.com/getting-started/prerequisites-and-onboarding.md): What to have in place before you write any code: a merchant account, Dashboard access, your credentials, and payout eligibility if you need it.
- [Payout to bank](https://hub.ozow.com/payment-products/payout/payout-to-bank.md): Paying money out from your Ozow float to a bank account.
- [Payout to voucher](https://hub.ozow.com/payment-products/payout/payout-to-voucher.md): Paying money out from your Ozow float as a voucher.
- [Float top-up guide](https://hub.ozow.com/payment-products/settlements-and-float/float-top-up.md): Payouts and refunds are funded from your float balance. Set up your static top-up reference once, then load funds whenever your float runs low.
- [Transaction and settlement statuses](https://hub.ozow.com/integration-methods/statuses.md): Every payin, payout, refund and settlement status, which are final, and what to do about each.
- [Building a secure integration](https://hub.ozow.com/getting-started/building-a-secure-integration.md): Where Ozow's security responsibility ends and yours begins: credentials, webhook endpoints, verifying notifications, and validating amounts.

## The contract

Fetch the OpenAPI document named above to generate a client, or to check a field name or an enum against the schema.

- [payouts-api#get-/getavailablebanks](https://hub.ozow.com/api-reference/payouts-api/get-getavailablebanks.md)
- [payouts-api#get-/getpayout](https://hub.ozow.com/api-reference/payouts-api/get-getpayout.md)
- [payouts-api#post-/getpayoutbyreference](https://hub.ozow.com/api-reference/payouts-api/post-getpayoutbyreference.md)
- [payouts-api#post-/requestpayout](https://hub.ozow.com/api-reference/payouts-api/post-requestpayout.md)
- [payouts-api#webhook/notificationResponse](https://hub.ozow.com/api-reference/payouts-api/webhooks/notification-response.md)
