Check Payout status using API (recommended)

Even though this step is optional, we highly recommend it to ensure that responses received reflect the correct transaction status. This will eliminate the chance that anyone is able to spoof the Ozow response to update a transaction status on the merchant site.

Each API call needs an http header value with the merchant's API key. The following API methods can be used to check the transaction status:

  • GetPayout
  • GetPayoutByReference

GetPayout

{baseUrl}/getpayout?payoutId={payoutId}

Before you start

N.B. Please ensure that the relevant SiteCode and ApiKey are included in the headers for all requests to the Payouts endpoints

This method is called when you want to query a payout using the payoutId.

PropertyTypeReq.Description
PayoutIdGuidYesThe unique payout identifier.

GetPayoutByReference

{baseUrl}/getpayoutbyreference

Before you start

N.B. Please ensure that the relevant SiteCode and ApiKey are included in the headers for all requests to the Payouts endpoints

This method is called when you want to query a payout using the MerchantReference or CustomerBankReference.

Post Variables

PropertyTypeReq.Description
pageSizeIntegerYesNumber of results to return. Set to 10 initially
pageIndexIntegerYesPage number based on the number items returned. Set to 1 initially
searchFieldsIntegerYes1 - Search by MerchantReference
2 - Search by CustomerBankReference
searchStringStringYesThe (unique) reference for the payout

Response

Payout - a successful call will return a payout object. The payout object is described further down.

{
    "id": "00000000-0000-0000-0000-000000000000",
    "amount": 0.01,
    "merchantReference": "123",
    "customerBankReference": "ABC123",
    "siteCode": "[YOUR SITE CODE]",
    "notifyUrl": "https://requestcatcher.com/",
    "isRtc": false,
    "bankingDetails": {
        "bankGroupId": "13999FA-3A32-4E3D-82F0-A1DF7E9E4F7B",
        "branchCode": "198765",
        "accountNumber": "ff313a955ad9a8ddff32cb734d49fbcddd8eeb1e235009d59a801bc5af78270cfd"
    },
    "payoutStatus": {
        "status": 5,
        "subStatus": 0,
        "errorMessage": "this field may contain an error if the status is not complete"
    }
}

Payout object

This is the object referred to in the response of the API calls above.

PropertyTypeDescription
IdGuidOzow's unique reference for the payout.
AmountDecimal (9,2)The payout amount.
SiteCodeString (50)Unique code assigned to each merchant site. [Please contact support for SiteCode - [email protected]]
MerchantReferenceString (20)Merchant's payout reference.
CustomerMerchantReferenceString (20)The reference that will be pre-populated in the "their reference" field in the customers online banking site. This will be the payout reference that appears on the merchant’s bank statement and can be used for recon purposes.
NotifyUrlString (150)The URL that we should use to post all payout notifications.
IsRTCboolWhether the payout should be processed as an RTC payout.
BankingDetailsObjectPayout destination banking details. Refer to the Banking Details table below.
PayoutStatusObjectPayout status. Refer to Payout Status table.

BankDetailsObject

PropertyTypeReq.Description
BankGroupIdGuidYesThe unique bank identifier.
AccountNumberStrong (32)YesThe bank account number the payment should be made to.
BranchCodeString (10)YesThe destination bank branch code.

Payout Status

PropertyTypeDescription
StatusIntThe payout status. Possible values are:

1 - PayoutReceived - The payout has been received
2 - Verification - The payout is being verified
3 - SubmittedForProcessing - The payout is being processed
4 - PayoutProcessingError- There was an error with the payout
5 – PayoutComplete – The payout has been completed
6 – PayoutPendingInvestigation – The payout is being investigated
90 – PayoutReturned – The Payout could not be paid into recipient account
99 - Payout Cancelled - The payout was cancelled
SubStatusIntThe payout 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 webhook returned a failed response
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
206 - Verification_Success_Awaiting_Funds - Verification Success - Awaiting float top-up
207 - Verification_Success_Awaiting_Submission - Verification Success - Awaiting submission
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 - processing of the instruction has failed
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 - Payout Cancellation - CDV account number validation failed
ErrorMessageString (250)Error message.

What’s Next