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:
Scenario | Description | Expected Outcome |
---|---|---|
Request Payout below minimum amount | Request a payout amount less than the configured minimum. | Minimum payout amount validation error. Please supply JSON response from our API. |
Request Payout above maximum amount | Request a payout amount greater than the configured maximum. | Maximum payout amount validation error. Please supply JSON response from our API. |
Receive Verification Request | Receive a verification request from Ozow. | Successfully respond to the verification request. Payout ID must be visible on the dashboard. |
Receive Payout Verification Success Message | Receive a notification that the payout verification was successful. | Payout ID must be visible on the dashboard. |
Receive Payout Complete Message | Receive a notification that the payout is complete. | Payout ID must be visible on the dashboard. |
Receive Payout Cancelled Message | Receive a notification that the payout was cancelled. | Payout ID must be visible on the dashboard. |
Receive Insufficient Float Balance Message | Receive an email notification about insufficient float balance. | Send a screenshot of the email received. |
CDV error - Account number validation error | Encounter a CDV error due to an invalid account number. | Payout ID must be visible on the dashboard. |
Get Payout Status | Retrieve 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
Scenario | Description | Expected Outcome |
---|---|---|
IsAccountDecryptionFailed | Account decryption failed. | Please supply JSON response from our API. |
IsNotVerifiedResponse | Account is not verified. | Please supply JSON response from our API. |
IsAccountDecryptionKeyMissing | Account 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.
Property | Type | Req. | Description |
---|---|---|---|
SiteCode | String (50) | Yes | Unique 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
Property | Type | Description |
---|---|---|
SiteCode | String (50) | Unique code assigned to each merchant site. [Please contact support for SiteCode - [email protected]] |
IsAccountDecryptionFailed | bool | When set to true, all payout requests will return status code 99 and sub status 205 to mock decryption failure. |
IsNullResponse | bool | When set to true, all payout requests will return status code 2 and sub status 204 to mock a null response from the merchant callback. |
IsInvalidStatusCode | bool | When set to true, all payout requests will return status code 99 and sub status 202 to mock invalid status code. |
IsPayoutMismatch | bool | When set to true, all payout requests will return status code 2 and sub status 204 to mock a payout mismatch. |
IsNotVerifiedResponse | bool | When set to true, all payout requests will return status code 99 and sub status 202 to mock a response is not yet verified. |
IsAccountNumberDecryptionKeyMissing | bool | When set to true, all payout requests will return status code 99 and sub status 205 to mock account decryption key is missing. |
HasRetriedCountBeenExceeded | bool | When set to true, all payout requests will return status code 99 and sub status 204 to mock retry count has been exceeded. |
Updated about 2 months ago