Payouts Integration Testing

As part of the process of getting you enabled in production, we require end to end testing on Payout API, retrieving Payout statuses, Webhook integration and notifications to ensure that your integration works.


Payout API Tests

{baseUrl}/requestpayout

  • Request Payout (Minimum amount R x.xx) - minimum payout amount validation
    • Please supply json response from our api
  • Request Payout (Maximum amount R x.xx) - maximum payout amount validation
    • Please supply json response from our api
  • Receive Verification Request and respond to it successfully
    • Must be visible on the dashboard - Please supply PayoutId
  • Receive Payout Verification Success Message
    • Must be visible on the dashboard - Please supply PayoutId
  • Receive Payout Complete Message
    • Must be visible on the dashboard - Please supply PayoutId
  • Receive Payout Cancelled Message
    • Must be visible on the dashboard - Please supply PayoutId
  • Receive Insufficient Float Balance Message
    • Please send screenshot of email received (this will be sent to the email of the user opted in for the Float Balance Alert email)
  • CDV error - Account number validation error
    • Must be visible on the dashboard - Please supply PayoutId
  • Get Payout Status
    • Please supply json response from our api

Simulation records in Mock API

{baseUrl}/requestpayout (mock endpoint)

Reference: https://hub.ozow.com/docs/check-payout-status-using-api#testconfigurationmodel

  • IsAccountDecryptionFailed
    • Please supply json response from our api
  • IsNotVerifiedResponse
    • Please supply json response from our api
  • IsAccountDecryptionKeyMissing
    • Please supply json response from our api

Please note:

  • The tests for both the Mock and Payout API must be completed in staging in order to get Ozow technical sign off
  • Please note there is no real movement of funds in the staging environment.
  • Whatever float top-ups are done will be refunded once the testing process is completed.
  • Please note RTC Payments are not available in the staging environment. (default this value to false)
  • Payouts submitted in this environment will only be updated the next business day following successful / unsuccessful processing if submitted before 15:45 hrs on weekdays.
  • Once all of these tests have been performed we will give technical sign-off on our side and configure the Production environment for your integration

TestConfigurationModel

To test the different outcomes a payout request may have, a merchant will be required to configure the various outcomes that a payout request may incur based on the setting configured. Below are the two API calls that provide the Get and Set methods for access to changing the TestConfigurationModel.


Get configuration

{baseUrl}/gettestconfiguration?siteCode={siteCode}

When this method is called, the required parameter is the SiteCode of the merchant that returns the state of the configuration set by the merchant. This method can return a null object or return the current settings set for the merchant site. A null reference means the merchant has not yet set a test configuration setting.

PropertyTypeReq.Description
SiteCodeString (50)YesUnique code assigned to each merchant site. [Please contact support for SiteCode - [email protected]]

Response model: refer to table below


Set configuration

{baseUrl}/settestconfiguration

When this method is called, the merchant sets new settings or updates the current settings that will impact the result set to expect when a payout request is made. The purpose of this method is to mock the outcome of the payouts, marking the given fields as true in order to produce an expected outcome in the process of making a payout.

🚧

Constraint:

A valid method call only happens when one field is set to true. This prevents the expected outcome from only generating a response for one instance at a time. If all fields are marked as false for the test configuration model, the mock outcome will be the default payout request and a complete payout request journey will be undertaken.

🚧

Important

Add the SiteCode and ApiKey as headers for each request.

Parameters

PropertyTypeDescription
SiteCodeString (50)Unique code assigned to each merchant site. [Please contact support for SiteCode - [email protected]]
IsAccountDecryptionFailedboolWhen set to true, all payout requests will return status code 99 and sub status 205 to mock decryption failure.
IsNullResponseboolWhen set to true, all payout requests will return status code 2 and sub status 204 to mock a null response from the merchant callback.
IsInvalidStatusCodeboolWhen set to true, all payout requests will return status code 99 and sub status 202 to mock invalid status code.
IsPayoutMismatchboolWhen set to true, all payout requests will return status code 2 and sub status 204 to mock a payout mismatch.
IsNotVerifiedResponseboolWhen set to true, all payout requests will return status code 99 and sub status 202 to mock a response is not yet verified.
IsAccountNumberDecryptionKeyMissingboolWhen set to true, all payout requests will return status code 99 and sub status 205 to mock account decryption key is missing.
HasRetriedCountBeenExceededboolWhen set to true, all payout requests will return status code 99 and sub status 204 to mock retry count has been exceeded.