Pre-Integration Checklist

Prev Next
This content is currently unavailable in Indonesian. You are viewing the default (English) version.

Before starting your integration with Xendit, ensure you’ve completed the following steps to avoid issues during testing or deployment.

1. Activate your payment channels

Test Mode

  • All payment channels are available by default in test mode.

  • However, some payment flows may be limited due to restrictions from partners (e.g., KYC requirements, regional constraints).

  • If you encounter issues while testing, please contact our Customer Success team for assistance.

Live Mode

  • Before going live, check that your desired payment channels are activated in the Dashboard > Payment Channels.

  • If a payment channel is not activated, related API requests or payment links will fail in production.

2. Create a secret API key

Generate your API key from the Dashboard:
Settings > Developers > API Keys

You can create different API keys for each environment or use case.

Environment

Purpose

Test Mode

Use for development and UAT testing.

Live Mode

Use for handling real transactions in production.

Best Practices

  • Set Write permissions if you’re using money-in features.

  • Restrict your API key’s permissions to the minimum needed for its purpose.

  • Store API keys securely using a secrets management tool.

  • For more details, refer to our API Key Guide.

3. Set up your webhooks

To ensure your system receives real-time updates, webhooks must be configured, even if you use synchronous payment flows.

Why Webhooks Matter:

  • They notify your system when a payment is completed (e.g., after 3DS or redirection flows).

  • They help detect and reconcile late or previously unreported payments.

Steps to Register Webhook Endpoints:

  1. Go to Settings > Webhooks in your Xendit Dashboard

  2. Enter your webhook endpoint URLs

  3. Click Test & Save to verify delivery

  4. Confirm that your system receives the exact test notification payload

Available webhook endpoints

Topic

Description

Unified Refunds – Refund Request Succeeded

Triggered when a refund is successfully processed.

Unified Refunds – Refund Request Failed

Triggered when a refund request fails.

Payment Requests v3 – Payment Status

Triggered when there is a status update on a Payment object.

Payment Requests v3 – Payment Request Status

Triggered when there is a status update on a Payment Request object.

Payment Tokens v3 – Payment Token Status

Triggered when there is a status update on a Payment Token object.

Payment Session – Completed

Triggered when a payment session is marked as completed, meaning a successful payment attempt was made.

Payment Session – Expired

Triggered when a payment session reaches expiry without a successful payment.

Subscriptions

Triggered for subscription plan lifecycle events (e.g., created, renewed, canceled).

Payment Link

Triggered when a payment link is paid or expired.