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

ScenarioCriteriaExpected Result
Successful bank payoutSend valid Create Payout request with a bank channel, with any account_holder_name and account_numberPayout will be SUCCEEDED
Simulate a cancellation flow - bank/ewalletSend valid Create Payout request with a bank channel, and account_number: 131313Payout status will remain ACCEPTED.You can then try a Cancel Payout request.
Simulate a cancellation flow - cash payoutSend valid Create Payout request with a cash payout channel, and account_number: 141414Payout status will remain REQUESTED. You can then try a Cancel Payout request.
Successful cash payoutSend valid Create Payout request with a supported cash payout channel, and beneficiary_id_name: anyPayout will be SUCCEEDED

Negative Scenarios

ScenarioCriteriaExpected Result
Duplicate idempotency key with same payloadTry 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 payloadTry a payout with an active duplicate idempotency key and a different payload.DUPLICATE_ERROR
Switching network is experiencing downtimeaccount_number: 123456Payout will be FAILED with failure_code = TEMPORARY_TRANSFER_ERROR
Bank networks have rejected the transaction due to maintenance or unknown reasonaccount_number: 999999Payout will be FAILED with failure_code = REJECTED_BY_CHANNEL
Destination account does not exist/is invalid.account_number: 121212Payout will be FAILED with failure_code = INVALID_DESTINATION
Cash payout expiredchannel_properties.recipient_given_names: “Justin Baby” expires_at: any future timePayout will be EXPIRED after 2 minutes
Not enough balanceInitiate a payout greater than the balance you have.Payout will be FAILED with failure_code = INSUFFICIENT_BALANCE
Request forbiddenTry an API key without the right permissions to perform the request.REQUEST_FORBIDDEN_ERROR
Reversed payoutSend valid Create Payout request with a bank channel, and account_number: 654321Payout status will be SUCCEEDED then REVERSED within 5 minutes

Last Updated on 2024-02-27