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

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

The following scenario need to be tested:

{baseUrl}/requestpayout

ScenarioDescriptionExpected Outcome
Request Payout below minimum amountRequest a payout amount less than the configured minimum.Minimum payout amount validation error. Please supply JSON response from our API.
Request Payout above maximum amountRequest a payout amount greater than the configured maximum.Maximum payout amount validation error. Please supply JSON response from our API.
Receive Verification RequestReceive a verification request from Ozow.Successfully respond to the verification request. Payout ID must be visible on the dashboard.
Receive Payout Verification Success MessageReceive a notification that the payout verification was successful.Payout ID must be visible on the dashboard.
Receive Payout Complete MessageReceive a notification that the payout is complete.Payout ID must be visible on the dashboard.
Receive Payout Cancelled MessageReceive a notification that the payout was cancelled.Payout ID must be visible on the dashboard.
Receive Insufficient Float Balance MessageReceive an email notification about insufficient float balance.Send a screenshot of the email received.
CDV error - Account number validation errorEncounter a CDV error due to an invalid account number.Payout ID must be visible on the dashboard.
Get Payout StatusRetrieve the status of a specific payout.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


ScenarioDescriptionExpected Outcome
IsAccountDecryptionFailedAccount decryption failed.Please supply JSON response from our API.
IsNotVerifiedResponseAccount is not verified.Please supply JSON response from our API.
IsAccountDecryptionKeyMissingAccount decryption key is missing.Please supply JSON response from our API.

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.