Payment Scenarios
Payment Scenarios
Xendit supports multiple payment scenarios in the Test environment that allows you to simulate how various successes and failures would occur and how you can handle them in Production. Refer to the list of supported scenarios below for testing.
When you trigger a POST to /direct_debits/
, change the amount
parameter in your request body to simulate the following scenarios:
- 11000 -
“503 CHANNEL AVAILABLE”
: channel is experiencing downtime - 11001 -
“MAX_AMOUNT_LIMIT_ERROR”
: transaction exceeds the channel’s allowed daily limit - 11002 -
“INSUFFICIENT_BALANCE”
: end-customer’s balance is insufficient for the transaction - 11003 -
“OTP_DELIVERY_ERROR”
: channel failed to send an OTP to the end-customer - 11004 -
“ACCOUNT_ACCESS_BLOCKED”
: channel has blocked access to the account
Note:
- The amount scenarios are applicable to all Direct Debit Channels except for RCBC
- The failure codes above will be returned in a payment failure webhook.
OTP Scenarios
When you trigger a POST to /direct_debits/{direct_debit_id}/validate_otp
, change the otp_code
parameter in your request body to simulate the following scenarios:
- “222000” - successful payment using a correct OTP
- “222001” -
“400 EXPIRED_OTP_ERROR”
: expired OTP - “222002” -
“400 MAX_OTP_ATTEMPTS_ERROR”
: end-customer reaches the channel’s limit on OTP attempts - “222003” -
“400 INVALID_OTP_ERROR”
: incorrect OTP - “222005” -
"400 INSUFFICIENT_BALANCE"
: end-customer’s balance is insufficient for the transaction - “{{Any code not specified above}}” -
“400 INVALID_OTP_ERROR”
: incorrect OTP
Note:
- The OTP scenarios are applicable to all Direct Debit channels.
When testing in production, trigger a POST to /direct_debits/{direct_debit_id}/resend_otp
should you need to request a new OTP.
Need more assistance? Feel free to reach out to our Customer Success or your Indonesia or Philippines Xendit Sales for further assistance.
Last Updated on 2024-11-20