Our Payments API is designed for flexible and modular integration. By handling 2 of our key parameters, channel_code
and channel_properties
, you will be able to switch between payment channels easily. If an integration is implemented well, you might be able to configure new payment channels to go live without code.
Channel code: a parameter used to inform Xendit of the intended payment route for payment processing.
Channel properties: a parameter that contains information required by the payment route provider to initiate payment processing.
Lookup table for channel code and channel properties parameters
Click on each row to see full details of each scenario.
Channel properties parameter definitions
Channel properties fields | Definitions | Example |
---|---|---|
success_return_url | string min length: 11, max length: 255, must be HTTPS Merchant-defined URL used for end user redirection upon successful payment on the payment provider hosted page. |
|
failure_return_url | string min length: 11, max length: 255, must be HTTPS Merchant-defined URL used for end user redirection upon failed payment on the payment provider hosted page. |
|
cancel_return_url | string min length: 11, max length: 255, must be HTTPS Merchant-defined URL used for end user redirection upon the end user triggering cancellation on the payment provider hosted page. |
|
pending_return_url | string min length: 11, max length: 255, must be HTTPS Merchant-defined URL used for end user redirection upon the end user completing payment steps on the payment provider hosted page but final payment status is yet to be confirmed. |
|
expires_at | string ISO 8601 Timestamp Timestamp set for the payment request to expire. |
|
payer_name | string Name of the payer displayed when attempting payment. For Over-The-Counter payments, counter staff might validate the payer’s name in person against the value in this field. |
|
display_name | string Name that is displayed when the end user is going through the payment flow. |
|
payment_code | string min length: 6, max length: 6 Merchant-defined payment code number for over the counter payments. |
|
virtual_account_number | string Merchant-defined Virtual Account number for bank transfers. |
|
suggested_amount | number Amount prompted when attempting payment. |
|
cashtag | string Payer’s cashtag as registered with the payment provider. |
|
card_details → cvn | string min length: 3, max length: 4 Card CVN value. This field can only be used directly on our API endpoint by merchants with a valid PCI DSS license. Please refer to Cards SDK integration for non PCI certified merchants. |
|
card_details → card_number | string min length: 15, max length: 19 Card PAN value. This field can only be used directly on our API endpoint by merchants with a valid PCI DSS license. Please refer to Cards SDK integration for non PCI certified merchants. |
|
card_details → expiry_year | string min length: 4, max length: 4 Card expiry year value. This field can only be used directly on our API endpoint by merchants with a valid PCI DSS license. Please refer to Cards SDK integration for non PCI certified merchants. |
|
card_details → expiry_month | string min length: 2, max length: 2 Card expiry month value. This field can only be used by merchants with a valid PCI DSS license. Please refer to Cards SDK integration for non PCI certified merchants. |
|
card_details → cardholder_name | string min length: 1, max length: 50 Card holder’s name as displayed on card. This field can only be used by merchants with a valid PCI DSS license. Please refer to Cards SDK integration for non PCI certified merchants. |
|
card_details → cardholder_email | string min length: 5, max length: 254 Card holder’s email as registered with their card issuer. This field can only be used by merchants with a valid PCI DSS license. Please refer to Cards SDK integration for non PCI certified merchants. |
|
card_details → cardholder_phone_number | string min length: 1, max length: 15 Card holder’s phone number as registered with their card issuer. This field can only be used by merchants with a valid PCI DSS license. Please refer to Cards SDK integration for non PCI certified merchants. |
|
mid_label | string MID label indicating the specific merchant credentials to be used when processing the request. Do ensure that same MID label is used for related set of transactions. |
|
skip_three_ds | boolean Parameter to toggle between triggering 3DS for the transaction or not. This parameter is a restricted feature in Xendit. Please ensure that access have been granted before proceeding. |
|
card_on_file_type | string Available values: CUSTOMER_UNSCHEDULED, MERCHANT_UNSCHEDULED, RECURRING MID label indicating the specific merchant credentials to be used when processing the request. Do ensure that same MID label is used for related set of transactions. |
|
billing_information | object Card holder’s billing information as registered with their card issuer. This information will be used for address verification during processing. This information should be included for US, CA, UK cards for optimal success rates. city: 2-letter ISO 3166-2 country code country: min length: 1, max length: 255 postal_code: min length: 1, max length: 255 street_line1: min length: 1, max length: 255 street_line2: min length: 1, max length: 255 province_state: min length: 1, max length: 255 |
|
statement_descriptor | string min length: 5, max length: 22, alphanumeric Description that will show up on the end user’s card statement. This feature is dependent on whether the individual’s card issuer has implemented the field. |
|
recurring_configuration → recurring_expiry | string min length: 10, max length: 10 Expiry date of the recurring schedule. |
|
recurring_configuration → recurring_frequency | number Frequency (in days) of the recurring schedule. |
|
account_email | string min length: 5, max length: 254 Email registered with the bank account used. |
|
account_mobile_number | string min length: 1, max length: 15 Mobile number registered with the payment method provider. |
|
card_last_four | string min length: 4, max length: 4 Last 4 digits of the card tied to the bank account used. |
|
card_expiry | string min length: 5, max length: 5 Expiry date of the card tied to the bank account used. |
|
account_identity_number | string The payer's identification number or passport number as registered with the payment provider. |
|
payer_email | string min length: 5, max length: 254 The payer's email. |
|
device_type | string Available values: DESKTOP, MOBILE The type of device used by the payer. |
|
description | string Description of the payment request. |
|
enable_otp | boolean Parameter to toggle on or off the OTP challenge for the payment request. |
|
allowed_payment_options | array of string Available values: GRABPAY (MYR) -
Additional fund sources that can be used to complete the transaction. There could be cost differences if another fund source is used by the payer. |
|
redeem_points | string Available values: OVO (IDR), requires approval from OVO
SHOPEEPAY (IDR)
Indicates whether or not to use the point balance in the transaction for eligible channels. |
|
payer_ip_address | string min length: 7, max length: 15 The IP address of the payer's client (e.g. 192.168.0.1). WECHATPAY (MYR)
|
|
installment_configuration → terms | string Available values: MONTH The value used n defining the installment schedule together with the interval field. |
|
installment_configuration → interval | array of number The unit of time used in defining the installment schedule. |
|