Ozow Hub
POSThttps://payoutsapi.ozow.com/v1/requestpayoutProduction
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

Request a 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. of the specified amount to the destination.

Authentication

  • API key in the ApiKey header

Header parameters

  • SiteCode string required

    A unique code for the site currently in use. A site codeSite code The unique code for a site registered under a merchant. A site is a place to transact: a website, or a branch of a store. A merchant can have several, and each transaction names the one it belongs to, so sending the wrong code files the payment against the wrong place. is generated when adding a site in the Ozow merchant admin section. [Please contact support for SiteCode - support@ozow.com]

    max length50

Request body

  • siteCode string required

    A unique code for the site currently in use. A site codeSite code The unique code for a site registered under a merchant. A site is a place to transact: a website, or a branch of a store. A merchant can have several, and each transaction names the one it belongs to, so sending the wrong code files the payment against the wrong place. is generated when adding a site in the Ozow merchant admin section. [Please contact support for SiteCode - support@ozow.com]

    max length50
  • amount number double required

    The 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. amount in ZARZAR The ISO 4217 code for the South African rand, and the currency every amount on this site is in unless a page says otherwise. Amounts are decimal rand rather than cents, so 100.00 is one hundred rand..

  • merchantReference string required

    The merchant's reference for the transaction.

    max length20
  • customerBankReference string required

    The reference that will appear on the customer’s bank statement.

    Only alphanumeric characters, spaces and dashes are allowed.

    max length20pattern^[A-Za-z0-9 -]+
  • isRtc boolean required

    Whether the 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. should be processed as an RTCReal-Time Clearing Payments that clear immediately rather than waiting for a batch. A batch run settles at set times through the day; a Real-Time Clearing payment moves the funds between the two bank accounts as it is made, so the recipient can rely on them straight away.PayInc payout. RTC is not available in the staging environment so should always be set to false when testing in this environment

  • notifyUrl string uri

    The URL that we should use to post all 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. notifications.

    max length150
  • bankingDetails BankDetails required

    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. destination banking details.

    Fields of BankDetails
    • bankGroupId string uuid required

      The unique bank identifier.

    • accountNumber string required

      The bank account number the payment should be made to. The account number should be encrypted by the encryption method detailed above.

      max length21
    • branchCode string required

      The destination bank branch codeBranch code The six-digit number identifying a South African bank branch, the equivalent of a sort code or a routing number elsewhere. Each bank publishes one universal branch code that works for every account it holds, which is the one to use unless you have been given another..

      max length10
    Open BankDetails on its own page
  • hashCheck string required

    SHA512SHA-512 A hashing algorithm. Ozow uses it to sign the values in a request or a notification so you can tell that they arrived unaltered and came from us. Hashing is one-way: the hash cannot be turned back into what produced it.Wikipedia hash used to ensure that certain fields in the message have not been altered after the hash was generated. Check the generate hash section in the documentation for more details on how to generate the hash.

Responses

200 OK. The request reached the API, which is not the same as the payout being accepted. A rejected payout is also a 200, with the reason in `payoutStatus.errorMessage` and no `payoutId`. Check that field, not the status code.
  • payoutId string uuid required

    A unique identifier that should be used to identify the 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..

  • payoutStatus PayoutStatus required

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

    Fields of PayoutStatus
    • status integer int32 required

      The 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. status.

      1: Payout Received. The payout has been received.

      2: Verification. The payout is being verified.

      3: Payout Submitted For Processing. The payout is being processed.

      4: Payout Processing Error. There was an error with the payout.

      5: Payout Completed. The payout has been completed.

      6: Payout Pending Investigation. The payout is being investigated.

      7: Payout Pending Cancellation. Cancellation has been requested and is not yet settled.

      90: Payout Returned. The payout could not be paid into the recipient account.

      99: Payout Cancelled. The payout was cancelled.

      values12345679099min0
    • subStatus integer required

      The 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. sub status. Possible values are:

      100: Payout_Unclassified – No sub status.

      101: Payout_ValidationFailed – Request validation failed and error description will be in the ErrorMessage field.

      201: Verification_Pending – Awaiting webook verification.

      202: Verification_Failed – The 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. returned a failed.

      203: Verification_Success – Successful payout verification via webhook.

      204: Verification_Error – Unable to reach the verification webhook.

      205: Verification_AccountNumberDecryptionFailed – Decryption of the account number failed using the key received via webhook.

      301: SubmittedForProcessing_PayoutAddedToBatch – The payout has been added to the payout batch.

      302: SubmittedForProcessing_PayoutSubmittedToBank – The payout batch has been processed and submitted to the bank.

      303: SubmittedForProcessing_PayoutSubmittedToPpi – Payout submitted for processing.

      401: PayoutProcessingError_PayoutRejected – The payout has been rejected by the bank.

      402: PayoutProcessingError_PayoutCancelled – The payout has been cancelled.

      403: PayoutProcessingError_Insufficient_Balance – Insufficient balance.

      404: PayoutProcessingError_PayoutInternalError.

      405: PayoutProcessingError_InvalidAccountNumber – The payout has an invalid account number.

      601: PayoutPendingInvestigation_AmountMismatch – The payout failed due to mismatch in amounts.

      9001: PayoutReturned_Unpaid – Rejected by destination bank.

      9901: Cancellation_AddedToBatch – Cancellation request added to batch for processing.

      9902: Cancellation_SubmittedToBank – Cancellation request has been submitted to the bank.

      9903: Cancellation_RejectedByBank – Cancellation request has been rejected by the bank.

      9904 - Cancellation_AccountNumberValidationFailed – CDV account number validation failed.

      min0
    • errorMessage string

      Error message generated when validating the request.

      max length250
    Open PayoutStatus on its own page

Guides