Xendit Integration

Xendit is a payment gateway that allows you to accept payments from customers through various payment methods. Qiscus Shop supports Xendit via Payment Session, the recommended integration method.

Note

The previous Xendit Payment Link integration is now considered Legacy. We recommend migrating to Payment Session for better payment method coverage and reliability. Its setup steps are kept at Xendit Integration (Old Documentation).


Prerequisites & Setup

Before you begin, make sure you have an active Xendit account.


Step 1: Generate Your Xendit API Key

  1. Log in to your Xendit Dashboard.

  2. Navigate to Settings → API Keys.

  3. Click Generate API Key.


  1. Enter a name for your API key (e.g. Qiscus Shop).

  2. Set the permissions as follows — leave everything not listed as None:

Permission

Setting

Money-in products

Write

Transaction

Read

All other permissions

None


Why these permissions?
  • Money-in products → Write: Required to create Payment Sessions and accept payments via all supported channels (cards, virtual accounts, e-wallets, etc.)

  • Transaction → Read: Required for Qiscus Shop to verify payment status and automatically update order status.

  1. Click Generate key.

  2. Copy and save both the Public Key and Secret Key immediately — the Secret Key will only be shown once.


Step 2: Add Xendit as a Payment Gateway

  1. Go to Qiscus Shop Dashboard → Payment Gateway from the left sidebar.

  2. Click Add Payment Gateway.


  1. Fill in the following fields:

Field

Description

Account Name

A name to identify this payment gateway (e.g. Xendit)

Account Description

A short description (e.g. Xendit)

Service Charge Type (optional)

Select whether to apply a service charge — choose Fixed or Percentage

Charge Value (optional)

Enter the charge amount based on the selected charge type

Payment Gateway Service

Select Xendit from the dropdown



Step 3: Configure Xendit Account Settings

Under the Xendit Account Settings section, fill in:

Field

Description

Public Key

Your Xendit Public Key

Secret Key

Your Xendit Secret Key

Test Mode

  • Check Enable Test Mode if you want to run the integration in a sandbox environment before going live.

  • When Test Mode is enabled, make sure to use your Xendit test API keys.

Webhook Verification Token

  • Enter the webhook verification token used to validate that incoming webhook callbacks genuinely originate from Xendit.

  • Get this token from your Xendit Dashboard under Settings → Developers → Webhooks.

Payment Expiry Duration

  • Set how long customers have to complete their payment. This overrides the expiry set in your Xendit dashboard.

  • Enter a value and select a time unit: Minutes, Hours, or Days. The default is 24 Hours, the minimum is 15 minutes, and the maximum is 30 days.

  • Once the duration elapses without payment, the order is cancelled and payment reminders stop.



Step 4: Configure Payment Channels

Under the Payment Channels section:

  1. Select a Country from the dropdown.

    • The system will use your store's currency combined with the selected country to determine which payment methods are available.

    • Only payment methods supported for that country and currency combination will be shown.

  2. Select the payment methods you want to enable for your customers.



Info

Tip: Make sure your store currency matches the currency used in your Xendit account to avoid payment method loading issues.


Step 5: Test Your Configuration

Under the Test Payment Channels section:

  1. Click Run Test to verify your Xendit configuration.

  2. You can test individual channels or run a full test across all configured channels.

  3. Confirm all channels return a successful result before going live.



Step 6: Save the Configuration

Click the Create button at the top right of the page to save your Xendit Payment Gateway configuration.


Step 7: Set Up Order Status Update Automation

To automatically update your order status when a payment is completed, you need to configure the callback URL in your Xendit dashboard.

  1. After saving, you will be redirected to the Payment Gateway list page. Find the Xendit gateway you just created and click Settings.


  1. Scroll to the bottom of the page and copy the Payment Session Callback URL by clicking Copy.


  1. Log in to your Xendit Dashboard.

  2. Navigate to Settings → Webhooks.

  3. Go to the Payment Session section.

  4. Add the copied URL to the following webhook events:

    • Payment Session Completed

    • Payment Session Expired


  1. Save your webhook settings.

Important

The callback URL is only available after the payment gateway has been saved. Complete Steps 2–6 first, then return to copy the URL.


Troubleshooting

Issue

Solution

No payment methods appear

Check that your store currency matches the selected country's supported currency in Xendit

Test fails

Verify your Public Key and Secret Key are correct and match the selected mode (Test/Live)

Orders not updating

Confirm the callback URL is correctly added to the Payment Session section (not Invoices) in Xendit Webhooks


Looking for a different provider? See Payments for the full list.