---
title: "Cross-Border Payouts"
slug: "test-scenarios-cross-border-payouts"
updated: 2025-02-07T03:20:04Z
published: 2025-02-07T03:20:04Z
---

> ## 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.

# Cross-Border Payouts

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.

*Note: We recommend using Postman collections for testing. Please see our postman integrations page for more details on how to set up your collections.*

## Before you start

> [!WARNING]
> **Important Note**
> 
> Simulation is only available in Test Mode. Ensure you are using a Development API Key to test.

- Ensure that you have the right API Key for the currency you want to test
  - One currency = One dashboard account = 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

## Test Guideline

- Test calling all Cross Border Payouts 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 Cross Border Payouts API` using any of the following test details to simulate the scenario you’re testing.

### Positive Scenarios

  

| Scenario | Criteria | Expected Result |
| --- | --- | --- |
| Successful remittance to Indonesia Channel | First, create new customers representing the sender and recipient. Use the following values for the recipient customer: Option 1 - identity_accounts - company: ID_PANIN - properties: - account_holder_name: Maria Wenger - account_number: 818181 Option 2 - identity_accounts - company: ID_OVO - properties: - account_holder_name: Ari Fernandes - account_number: 081234567890 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will complete remittance and send a callback to your callback URL with status: “SUCCEEDED” |
| Successful remittance to Philippine Channel | First, create new customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: PH_BDO - properties - account_holder_name: Kal Stones - account_number: 828282 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will complete remittance and send a callback to your callback URL with status: “SUCCEEDED” |
| Successful remittance to Singapore Channel | First, create new customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: SG_BOC - properties - account_holder_name: Ruth Langmore - account_number: 838383 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will complete remittance and send a callback to your callback URL with status: “SUCCEEDED” |
| Successful remittance to Thailand Channel | First, create new customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: TH_SCB - properties - account_holder_name: Justin Morph - account_number: 267267 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will complete remittance and send a callback to your callback URL with status: “SUCCEEDED” |
| Remittance has been assessed to be medium or high risk and requires compliance verification. Remittance is eventually approved by compliance and succeeds | First, create customers representing the sender and recipient. Use the following values for the recipient customer: Option 1 - identity_accounts - company: ID_MANDIRI - properties - account_holder_name: Evan Dimas - account_number: 808080 Option 2 - identity_accounts - company: Anything - properties - account_holder_name: Anything - account_number: 87778798 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will send a callback to your callback URL with status: “PENDING_COMPLIANCE_ASSESSMENT” Then, will send a second callback to your callback URL with status: “SUCCEEDED” |
| Remittance transaction is stuck in compliance assessment | First, create customers representing the sender and recipient. Use the following values for the recipient customer: Option 1 - identity_accounts - company: ID_MANDIRI - properties - account_holder_name: Shawn - account_number: 898989 Option 2 - identity_accounts - company: Anything - properties - account_holder_name: Anything - account_number: 4455445544 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will send a callback to your callback URL with status: “PENDING_COMPLIANCE_ASSESSMENT” |
| Successful remittance to Indonesia Cash Channel | First, create customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: ID_ALFAMART - properties - payment_code: 898900 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will send a callback to your callback URL with disbursement_code and status: “READY” Then,will send a callback to your callback URL with status: “LOCKED” Then,will complete remittance and send a callback to your callback URL with status: “SUCCEEDED” |
| Simulate an online remittance cancellation flow | First, create customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: ID_MANDIRI - properties - account_holder_name: Gustafo Vring - account_number: 10101010 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Remittance status will remain on ACCEPTED. You can then try a Cancel Remittance request |
| Cash remittance ready to pick up | First, create customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: ID_ALFAMART - properties - payment_code: 898911 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will send a callback to your callback URL with disbursement_code and status: “READY” Remittance status will remain on READY. |
| Simulate a cash remittance cancellation flow | First, create customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: ID_ALFAMART - properties - payment_code: 898911 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Remittance status will remain on READY. You can then try a Cancel Remittance request |
| Successful remittance to Singapore Channel | First, create new customers representing the sender and recipient. Use the following values for the recipient customer: Option 1 - identity_accounts - company: SG_DBS - properties: - account_number: 818181 | Will complete remittance and send a callback to your callback URL with status: “SUCCEEDED” |

## Negative scenarios

  

| Scenario | Criteria | Expected Result |
| --- | --- | --- |
| Remittance has been assessed to be medium or high risk and requires compliance verification. Remittance is eventually rejected by compliance | First, create customers representing the sender and recipient. Use the following values for the recipient customer: Option 1 - identity_accounts - company: ID_MANDIRI - properties - account_holder_name: Cynthia Rodriguez - account_number: 909090 Option 2 - identity_accounts - company: Anything - properties - account_holder_name: Anything - account_number: 987654321 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will send a callback to your callback URL with status: “PENDING_COMPLIANCE_ASSESSMENT” Then, we will send a second callback to your callback URL with status: “COMPLIANCE_REJECTED |
| Destination account does not exist/is invalid. | First, create customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: ID_MANDIRI - properties - account_holder_name: Teo Alcantara - account_number: 4567890 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will send a callback to your callback URL with status: “FAILED” and failure_code: “INVALID_DESTINATION” |
| Transaction has been rejected by the destination channel without a clear error reason | First, create customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: ID_CIMB - properties - account_holder_name: Ichwan De Bruyne - account_number: 8787878 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will send a callback to your callback URL with status: “FAILED” and failure_code: "REJECTED_BY_CHANNEL" |
| Transaction failed because of a known temporary issue | First, create customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: PH_OMNI - properties - account_holder_name: Ayrton Da Silva - account_number: 868686 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will send a callback to your callback URL with status: “FAILED” and failure_code: “TEMPORARY_TRANSFER_ERROR” |
| Insufficient Balance | First, create customers representing the sender and recipient (which field detail is different with above specifications) Then, Create remittance payout request with amount greater than the balance you have | Will send a callback to your callback URL with status: “FAILED” and failure_code: “INSUFFICIENT_BALANCE” |
| Cash remittance expired | First, create customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: ID_ALFAMART - properties - payment_code: 898922 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will send a callback to your callback URL with disbursement_code and status: “READY” Then,will send a callback to your callback URL with status: “EXPIRED” |
| Singapore bank networks have rejected the transaction due to maintenance or unknown reason | First, create customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - channel_code: SG_DBS - properties - account_number: 999999 | Payout will be FAILED with failure_code = REJECTED_BY_CHANNEL |
| Destination account does not exist/is invalid for Singapore channel | First, create customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: SG_BOC - properties - account_holder_name: Darlene Snell - account_number: 733810 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will send a callback to your callback URL with status: “FAILED” and failure_code: “INVALID_DESTINATION” |
| Destination account does not exist/is invalid for Thailand channel | First, create customers representing the sender and recipient. Use the following values for the recipient customer: - identity_accounts - company: TH_SCB - properties - account_holder_name: Harry Johnson - account_number: 588372 Then create a Remittance using required params (refer to Create Remittance Payout) and the above sender and recipient customer ids | Will send a callback to your callback URL with status: “FAILED” and failure_code: “INVALID_DESTINATION” |
