Testing Your Integration
Testing Your Integration
Before taking your integration live, you’ll want to test your integration thoroughly in development mode. Use our test information to simulate various positive and negative scenarios and ensure the flows in your integration are handled correctly.
Note: We recommend using Postman collections for testing. Please see our postman integrations page for more details on how to set up your collections.
Instructions
- Be sure to use your Development API keys to test payouts.
- One currency = One dashboard account with corresponding country of operation = One API key
- If you want to payout to currency: PHP, then you must create a dashboard where country of operation: Philippines and create an API Key with Money Out Read and Write permission from that dashboard. If you would also like to payout to currency: IDR, then you must create another dashboard account where country of operation: Indonesia and similarly create an API Key using that dashboard account
- Post a Create Payout request using any of the following test details to simulate successful and failed payouts.
- When a Payout is successfully created (but still in the process of sending out), you will receive a response with status “ACCEPTED”.
- When the Payout has been successfully executed, you will receive a callback at your callback URL with status “SUCCEEDED”. If the payout failed, you will receive a callback at your callback URL with status “FAILED”; refer to the failure_code for more details of the failure.
Simulation Scenarios
Positive Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Successful bank payout | Send valid Create Payout request with a bank channel, with any account_holder_name and account_number | Payout will be SUCCEEDED |
Simulate a cancellation flow - bank/ewallet | Send valid Create Payout request with a bank channel, and account_number: 131313 | Payout status will remain ACCEPTED.You can then try a Cancel Payout request. |
Simulate a cancellation flow - cash payout | Send valid Create Payout request with a cash payout channel, and account_number: 141414 | Payout status will remain REQUESTED. You can then try a Cancel Payout request. |
Successful cash payout | Send valid Create Payout request with a supported cash payout channel, and beneficiary_id_name: any | Payout will be SUCCEEDED |
Negative Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Duplicate idempotency key with same payload | Try a payout with a duplicate idempotency key and the exact same payload. | Will return the same payout as the original request. |
Duplicate idempotency key with different payload | Try a payout with an active duplicate idempotency key and a different payload. | DUPLICATE_ERROR |
Switching network is experiencing downtime | account_number: 123456 | Payout will be FAILED with failure_code = TEMPORARY_TRANSFER_ERROR |
Bank networks have rejected the transaction due to maintenance or unknown reason | account_number: 999999 | Payout will be FAILED with failure_code = REJECTED_BY_CHANNEL |
Destination account does not exist/is invalid. | account_number: 121212 | Payout will be FAILED with failure_code = INVALID_DESTINATION |
Cash payout expired | channel_properties.recipient_given_names: “Justin Baby” expires_at: any future time | Payout will be EXPIRED after 2 minutes |
Not enough balance | Initiate a payout greater than the balance you have. | Payout will be FAILED with failure_code = INSUFFICIENT_BALANCE |
Request forbidden | Try an API key without the right permissions to perform the request. | REQUEST_FORBIDDEN_ERROR |
Reversed payout | Send valid Create Payout request with a bank channel, and account_number: 654321 | Payout status will be SUCCEEDED then REVERSED within 5 minutes |
Last Updated on 2024-02-27