Documentation Index

Fetch the complete documentation index at: https://docs.xendit.co/llms.txt

Use this file to discover all available pages before exploring further.

Payouts

Prev Next

Before taking your integration live, we recommend you to test your integration thoroughly in development mode. Use our Test Mode simulation to simulate various positive and negative scenarios and ensure the flows in your integration are handled correctly.

Before you start

Important Note

Simulation is only available in Test Mode. Ensure you are using a Development API Key to test.

  • Create an API Key in your Xendit Dashboard. You will need the API Key to make API calls.

  • Set up your webhook URL. Configure this to receive real-time notifications on payout status changes.

  • Check Payout Coverage for channel-specific information. You need to know what information needs to be collected to start sending payouts.

Test Guideline

  • Test calling all Payout endpoints that you are implementing

  • Test as much simulation scenarios as possible according to your use case

  • Ensure your subscribed webhook events are received and handled in your integration

Simulation Scenarios

Call Create Payouts API using any of the following test details to simulate the scenario you’re testing.

Positive Scenarios

Scenario

Criteria

Expected Result

Successful Payout

Send valid Create Payout request, with any account_holder_name and account_number

Payout will be SUCCEEDED

Negative Scenarios

Scenario

Criteria

Expected Result

Failed Payout due to request containing duplicate idempotency key but same payload

Try a payout with a duplicate idempotency key and the exact same payload.

Will return the same payout as the original request.

Failed Payout due to request containing duplicate idempotency key but different payload

Try a payout with an active duplicate idempotency key and a different payload.

DUPLICATE_ERROR

Failed Payout due to

account_number: 98018521

Payout will be FAILED with failure_code = TRANSFER_ERROR

Failed Payout due to switching network experiencing downtime

account_number: 123456

Payout will be FAILED with failure_code = TEMPORARY_TRANSFER_ERROR

Failed Payout due to rejection from recipient channel

account_number: 999999

Payout will be FAILED with failure_code = REJECTED_BY_CHANNEL

Failed Payout due to invalid destination account

account_number: 121212

Payout will be FAILED with failure_code = INVALID_DESTINATION

Failed Payout due to sanction list screening on Sender

account_holder_name:  Walter Green

account_number: 72019761

Payout will be FAILED with failure_code = SLS_SENDER

Failed Payout due to sanction list screening on Recipient

account_holder_name: Walter White

account_number: 79018761

Payout will be FAILED with failure_code = SLS_RECIPIENT

Failed Payout due to insufficient balance

Initiate a payout greater than the balance you have.

Payout will be FAILED with failure_code = INSUFFICIENT_BALANCE

Failed Payout due to forbidden request

Try an API key without the right permissions to perform the request.

REQUEST_FORBIDDEN_ERROR