English
API ReferenceSign In

Express Checkout

Last updated 10/27/2021

What is Express Checkout?

Express Checkout enables your customers to save their card information (and other payment method information) so that your customers don’t need to input their details every time they want to make a payment. This means:

  • Faster, more convenient checkout process for your customers
  • Higher conversion rate for your business

These features are available in Indonesia 🇲🇨 and Philippines 🇵🇭
The biggest benefit is that your customer can enjoy this seamless checkout experience immediately when they have transacted before at any of Xendit merchants who are using Express Checkout. This means that shoppers that arrive on your website for the first time - but have shopped on any other Xendit Express Checkout merchant before - will be treated as a returning customer, and can enjoy faster checkout!

Flow

Below is the example flow for each use case of your customer type:

First time customers

  1. Customer fills in their personal information (name, mobile number, email) and card information (card number, expiry date, CVV)
  2. Xendit sends the customer an OTP to the mobile number they provided. This is necessary to validate that the customer is the true owner of the mobile number provided.
  3. Assuming correct OTP input, Xendit redirects the customer to the cards payment flow. For cards with 3DS enabled, the customer will need to input an OTP from their bank. For cards without 3DS enabled, the customer’s payment will succeed immediately.
  4. Payment complete!

Returning customers

  1. Xendit detects returning customer by checking mobile number, and sends the customer an OTP to validate that this is indeed a returning customer.
  2. Assuming correct OTP input, Xendit redirects the customer to the cards payment flow.
  3. Payment complete!

Supported channels

For now, Xendit Express Checkout only supports credit and debit cards. In future, we will also let your customers save their eWallets, such as Ovo, Dana, ShopeePay, and other channels like BCA OneKlik, Kredivo, etc. Stay tuned!

How to activate

Let us know if you’re interested in this feature by reaching out to your Account Manager or contacting help@xendit.co, and we’ll switch it on for you.

How to use

When you use Create Invoice API, make sure you populate the customer object in the body request with the following parameters:

  • name
  • mobile_number
  • email

Xendit will use this information to pre-fill the customer fields in the Checkout UI, so that your customers won’t need to type them up. Although this is not mandatory for Express Checkout to work, we strongly recommend it because this is a smoother customer experience that increases the likelihood of conversion. Below is the example how Express Checkout displays on Checkout UI

Express Checkout on Checkout UI

FAQ

Some other questions you or your customers may have:

QuestionAnswer
This is the first time I’ve shopped at this business. How are my card details saved?This means you’ve shopped at a different shop/business that is also using Xendit Express Checkout! Xendit allows you to save your card details to pay with any business that uses Xendit Express Checkout, to maximize your convenience.
Is it secure?Yes. Xendit is PCI-DSS certified and authorized to securely save your payment information.
Is my data shared to anyone other than Xendit?No. Xendit will not share your personal data with any third party without your consent.
What if I want Xendit to delete all my personal information related to Express Checkout?Please send us an email to invoice@xendit.co and let us know that you want to delete all your data from Xendit Express Checkout.
How do I test the Express Checkout Flow in test mode?You can create an invoice in test mode with Express Checkout enabled. Complete the customer payment information on the Checkout UI and when you click “Pay Now,” an OTP modal will appear.

You can test the following scenarios for Express Checkout in test mode by inputting the corresponding 6-digit OTP:
111001 - OTP_EXPIRED_ERROR
111002 - OTP_MAXIMUM_ATTEMPT_ERROR
111003 - VERIFY_OTP_ERROR
111004 - MAX_OTP_CREATED_WITHN_FREQUENCY_INTERVAL_ERROR