Testing Scenarios
You can simulate in TEST mode both the success scenario as well as various error and failure codes that might be returned in LIVE mode. Refer to the list of supported scenarios below for testing.
Testing Scenarios for One-Time Payment via eWallet Charge Endpoint
Positive Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Successful payment | Any number other than 10100-10102 and 20101-20111 | A response with “PENDING” as the payment status will be returned immediately. Once end user authorizes the payment, completed or failed, a callback will be returned with “SUCCEEDED” or “FAILED” status |
Negative Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Payment request failed because this specific payment channel has not been activated through Xendit. Please activate via Xendit dashboard or our customer service | Amount = 10100 | API Response Error 403 CHANNEL_NOT_ACTIVATED |
The payment channel requested is currently experiencing unexpected issues. The eWallet provider will be notified to resolve this issue | Amount = 10101 | API Response Error 503 CHANNEL_UNAVAILABLE |
An unexpected error occured, our team has been notified and will troubleshoot the issue | Amount = 10102 | API Response Error 500 SERVER_ERROR |
End user’s account cannot be accessed as it has been restricted by the eWallet provider. End user should contact the provider for resolution | Amount = 20103 | Failure Code via Callback ACCOUNT_ACCESS_BLOCKED |
Merchant credentials met with an error with the eWallet provider. Please contact Xendit customer support to resolve this issue | Amount = 20104 | Failure Code via Callback INVALID_MERCHANT_CREDENTIALS |
End user declined the payment request | Amount = 20105 | Failure Code via Callback USER_DECLINED_PAYMENT |
End user provided incorrect information for this transaction | Amount = 20106 | Failure Code via Callback INVALID_ACCOUNT_DETAILS |
Accumulated value of payment requested for this end user went above the maximum transaction limit set by end user or eWallets. Payment can be retried when the transaction limit is reset | Amount = 20107 | Failure Code via Callback MAXIMUM_LIMIT_REACHED |
End user’s device cannot be reached at this moment. Common reasons include unstable network, device error or jailbroken device | Amount = 20108 | Failure Code via Callback USER_UNREACHABLE |
The payment channel requested is currently experiencing unexpected issues. The eWallet provider will be notified to resolve this issue | Amount = 20109 | Failure Code via Callback CHANNEL_UNAVAILABLE |
End user has insufficient balance to complete the transaction | Amount = 20110 | Failure Code via Callback INSUFFICIENT_BALANCE |
End user’s account cannot be accessed as it has not been activated. End user should set up their account and ensure there is sufficient balance before retrying | Amount = 20111 | Failure Code via Callback ACCOUNT_NOT_ACTIVATED |
Details related to the failed payment request were not provided by the eWallet provider | Amount = 20112 | Failure Code via Callback FAILURE_DETAILS_UNAVAILABLE |
Testing Scenarios for Tokenized Payment (Redirection/Non-Auto Debit) via eWallet Charge Endpoint for the Following eWallet Channels:
- OVO
- DANA
- ShopeePay (ID)
- LinkAja
Positive Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Successful payment | Any number other than 10100-10103 and 20101-20112 | A response with “PENDING” as the payment status will be returned immediately. Once end user authorizes the payment, completed or failed, a callback will be returned with “SUCCEEDED” or “FAILED” status |
Negative Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Payment request failed because this specific payment channel has not been activated through Xendit. Please activate via Xendit dashboard or our customer service | Amount = 10100 | API Response Error 403 CHANNEL_NOT_ACTIVATED |
The payment channel requested is currently experiencing unexpected issues. The eWallet provider will be notified to resolve this issue | Amount = 10101 | API Response Error 503 CHANNEL_UNAVAILABLE |
An unexpected error occured, our team has been notified and will troubleshoot the issue | Amount = 10102 | API Response Error 500 SERVER_ERROR |
Account linking token for this end user has expired. Please reinitiate account linking before retrying | Amount = 10103 | API Response Error 401 INVALID_TOKEN |
Binding for this end user has expired. Please reinitiate binding before retrying | Amount = 20102 | Failure Code via Callback INVALID_TOKEN |
End user’s account cannot be accessed as it has been restricted by the eWallet provider. End user should contact the provider for resolution | Amount = 20103 | Failure Code via Callback ACCOUNT_ACCESS_BLOCKED |
Merchant credentials met with an error with the eWallet provider. Please contact Xendit customer support to resolve this issue | Amount = 20104 | Failure Code via Callback INVALID_MERCHANT_CREDENTIALS |
End user declined the payment request | Amount = 20105 | Failure Code via Callback USER_DECLINED_PAYMENT |
End user provided incorrect information for this transaction | Amount = 20106 | Failure Code via Callback INVALID_ACCOUNT_DETAILS |
Accumulated value of payment requested for this end user went above the maximum transaction limit set by end user or eWallets. Payment can be retried when the transaction limit is reset | Amount = 20107 | Failure Code via Callback MAXIMUM_LIMIT_REACHED |
End user’s device cannot be reached at this moment. Common reasons include unstable network, device error or jailbroken device | Amount = 20108 | Failure Code via Callback USER_UNREACHABLE |
The payment channel requested is currently experiencing unexpected issues. The eWallet provider will be notified to resolve this issue | Amount = 20109 | Failure Code via Callback CHANNEL_UNAVAILABLE |
End user has insufficient balance to complete the transaction | Amount = 20110 | Failure Code via Callback INSUFFICIENT_BALANCE |
End user’s account cannot be accessed as it has not been activated. End user should set up their account and ensure there is sufficient balance before retrying | Amount = 20111 | Failure Code via Callback ACCOUNT_NOT_ACTIVATED |
Details related to the failed payment request were not provided by the eWallet provider | Amount = 20112 | Failure Code via Callback FAILURE_DETAILS_UNAVAILABLE |
Testing Scenarios for Tokenized Payment (Auto Debit) via eWallet Charge Endpoint for the Following eWallet Channels:
- Maya (PayMaya)
- GrabPay
- ShopeePay (PH)
Positive Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Successful payment | Any number other than 10100-20107 and 20109-20112 | A response with “PENDING” as the payment status as well as a payment completion callback will be returned immediately |
Negative Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Payment request failed because this specific payment channel has not been activated through Xendit. Please activate via Xendit dashboard or our customer service | Amount = 10100 | API Response Error 403 CHANNEL_NOT_ACTIVATED |
The payment channel requested is currently experiencing unexpected issues. The eWallet provider will be notified to resolve this issue | Amount = 10101 | API Response Error 503 CHANNEL_UNAVAILABLE |
An unexpected error occured, our team has been notified and will troubleshoot the issue | Amount = 10102 | API Response Error 500 SERVER_ERROR |
Account linking token for this end user has expired. Please reinitiate account linking before retrying | Amount = 10103 | API Response Error 401 INVALID_TOKEN |
Details related to the failed payment request were not provided by the eWallet provider | Amount = 20101 | Failure Code via Callback FAILURE_DETAILS_UNAVAILABLE |
Binding for this end user has expired. Please reinitiate binding before retrying | Amount = 20102 | Failure Code via Callback INVALID_TOKEN |
End user’s account cannot be accessed as it has been restricted by the eWallet provider. End user should contact the provider for resolution | Amount = 20103 | Failure Code via Callback ACCOUNT_ACCESS_BLOCKED |
Merchant credentials met with an error with the eWallet provider. Please contact Xendit customer support to resolve this issue | Amount = 20104 | Failure Code via Callback INVALID_MERCHANT_CREDENTIALS |
End user declined the payment request | Amount = 20105 | Failure Code via Callback USER_DECLINED_PAYMENT |
End user provided incorrect information for this transaction | Amount = 20106 | Failure Code via Callback INVALID_ACCOUNT_DETAILS |
Accumulated value of payment requested for this end user went above the maximum transaction limit set by end user or eWallets. Payment can be retried when the transaction limit is reset | Amount = 20107 | Failure Code via Callback MAXIMUM_LIMIT_REACHED |
The payment channel requested is currently experiencing unexpected issues. The eWallet provider will be notified to resolve this issue | Amount = 20109 | Failure Code via Callback CHANNEL_UNAVAILABLE |
End user has insufficient balance to complete the transaction | Amount = 20110 | Failure Code via Callback INSUFFICIENT_BALANCE |
End user’s account cannot be accessed as it has not been activated. End user should set up their account and ensure there is sufficient balance before retrying | Amount = 20111 | Failure Code via Callback ACCOUNT_NOT_ACTIVATED |
Testing Scenarios for Tokenized Payment (Auto Debit) via eWallet Charge Endpoint for the Following eWallet Channels:
- OVO
- DANA
- ShopeePay (ID)
- LinkAja
Positive Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Successful payment | Amount = 13579 | A response with “PENDING” as the payment status as well as a payment completion callback will be returned immediately |
Negative Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Payment request failed because this specific payment channel has not been activated through Xendit. Please activate via Xendit dashboard or our customer service | Amount = 10100 | API Response Error 403 CHANNEL_NOT_ACTIVATED |
The payment channel requested is currently experiencing unexpected issues. The eWallet provider will be notified to resolve this issue | Amount = 10101 | API Response Error 503 CHANNEL_UNAVAILABLE |
An unexpected error occured, our team has been notified and will troubleshoot the issue | Amount = 10102 | API Response Error 500 SERVER_ERROR |
Account linking token for this end user has expired. Please reinitiate account linking before retrying | Amount = 10103 | API Response Error 401 INVALID_TOKEN |
Binding for this end user has expired. Please reinitiate binding before retrying | Amount = 21102 | Failure Code via Callback INVALID_TOKEN |
End user’s account cannot be accessed as it has been restricted by the eWallet provider. End user should contact the provider for resolution | Amount = 21103 | Failure Code via Callback ACCOUNT_ACCESS_BLOCKED |
Merchant credentials met with an error with the eWallet provider. Please contact Xendit customer support to resolve this issue | Amount = 21104 | Failure Code via Callback INVALID_MERCHANT_CREDENTIALS |
End user provided incorrect information for this transaction | Amount = 21106 | Failure Code via Callback INVALID_ACCOUNT_DETAILS |
Accumulated value of payment requested for this end user went above the maximum transaction limit set by end user or eWallets. Payment can be retried when the transaction limit is reset | Amount = 21107 | Failure Code via Callback MAXIMUM_LIMIT_REACHED |
The payment channel requested is currently experiencing unexpected issues. The eWallet provider will be notified to resolve this issue | Amount = 21109 | Failure Code via Callback CHANNEL_UNAVAILABLE |
End user has insufficient balance to complete the transaction | Amount = 21110 | Failure Code via Callback INSUFFICIENT_BALANCE |
End user’s account cannot be accessed as it has not been activated. End user should set up their account and ensure there is sufficient balance before retrying | Amount = 21111 | Failure Code via Callback ACCOUNT_NOT_ACTIVATED |
Details related to the failed payment request were not provided by the eWallet provider | Amount = 21112 | Failure Code via Callback FAILURE_DETAILS_UNAVAILABLE |
Testing Scenarios for eWallet Void via Void eWallet Payment Endpoint
INFO
The amount
values for eWallet Void are entered at the Create eWallet Charge stage via eWallet Charge Endpoint.
Positive Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Successful void | Any number other than 10200-10202 and 20200 | A response with “PENDING” as the void status as well as a void completion callback will be returned immediately |
Negative Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Void feature is not available as the method is not provided by eWallet provider | Amount = 10200 | API Response Error 400 VOID_NOT_SUPPORTED |
Void feature is unavailable between 00:00:00 and 05:00:00 each day for ShopeePay transactions. Please try again after 05:00:00 | Amount = 10201 | API Response Error 400 VOID_TEMPORARILY_UNAVAILABLE |
Payment has already passed its void validity period (after 23:50:00) for requested operation or status of charge is not SUCCEEDED | Amount = 10202 | API Response Error 403 INELIGIBLE_TRANSACTION |
Void could not be processed because the amount returned will cause end user's wallet balance to exceed maximum allowable value | Amount = 20200 | Failure Code via Callback MAXIMUM_USER_BALANCE_EXCEEDED |
Testing Scenarios for eWallet Refund via Refund eWallet Payment Endpoint
Positive Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Successful refund | Any number other than 10300-10306 and 20300-20304 | A response with “PENDING” as the refund status as well as a refund completion callback will be returned immediately |
Negative Scenarios
Scenario | Criteria | Expected Result |
---|---|---|
Requested refund amount cannot exceed remaining unrefunded amount of the successful charge | Amount = 10300 | API Response Error 400 MAXIMUM_REFUND_AMOUNT_REACHED |
Partial refund feature is not available as the method is not provided by the eWallet provider | Amount = 10301 | API Response Error 400 PARTIAL_REFUND_NOT_SUPPORTED |
Refund feature is unavailable between 23:50:00 and 05:00:00 each day for ShopeePay transactions. Please try again after 05:00:00 | Amount = 10302 | API Response Error 400 REFUND_TEMPORARILY_UNAVAILABLE |
Refund feature is not available as the method is not provided by the eWallet provider | Amount = 10303 | API Response Error 400 REFUND_NOT_SUPPORTED |
Concurrent refund requests to a single eWallet charge is not allowed. Please wait for the pending refund request to be completed before initiating a new one | Amount = 10304 | API Response Error 400 REFUND_IN_PROGRESS |
Requested refund transaction cannot be processed as the transaction is in "FAILED", "PENDING", or "VOIDED" status | Amount = 10305 | API Response Error 403 INELIGIBLE_TRANSACTION |
There is insufficient balance in your account to perform a refund. Please top up your balance with a sufficient amount before retrying the refund | Amount = 10306 | API Response Error 403 INSUFFICIENT_BALANCE |
Transaction has already passed its validity period for the requested operation or the number of refunds requested has exceeded the allowable number of tries | Amount = 20300 | Failure Code via Callback INELIGIBLE_TRANSACTION |
Switcher account does not have sufficient balance to perform a refund. Please retry after ensuring there is sufficient balance in the switcher account | Amount = 20301 | Failure Code via Callback INSUFFICIENT_BALANCE |
Refund is temporarily unavailable because of settlement constraints with the eWallet provider. Please try again later | Amount = 20302 | Failure Code via Callback REFUND_TEMPORARILY_UNAVAILABLE |
Refund could not be processed because the amount returned will cause end user's wallet balance to exceed maximum allowable value | Amount = 20303 | Failure Code via Callback MAXIMUM_USER_BALANCE_EXCEEDED |
Transaction specified is not eligible for partial refund because of eWallet provider's limitations. You can retry refund by doing full refund. GrabPay doesn't allow partial refunds for transactions made under promos or using GrabPay points | Amount = 20304 | Failure Code via Callback INELIGIBLE_PARTIAL_REFUND_TRANSACTION |
Last Updated on 2023-07-18
- Testing Scenarios for One-Time Payment via
- Testing Scenarios for Tokenized Payment (Redirection/Non-Auto Debit) via
- Testing Scenarios for Tokenized Payment (Auto Debit) via
- Testing Scenarios for Tokenized Payment (Auto Debit) via
- Testing Scenarios for eWallet Void via
- Testing Scenarios for eWallet Refund via