Welcome to Xendit’s latest documentation. For legacy content, access the previous version here.

Transaction reconciliation

Prev Next

Merchants can use the Xendit reports to reconcile payments between their order management system and the Xendit payment gateway.

Order Management
System
Payment Gateway
Bank

Transaction Reconciliation ensures that all orders and payments are linked correctly. This prevents unpaid services or goods from being delivered and helps merchants associate payments with corresponding fees for accounting purposes.

Bank Reconciliation refers to the matching of payment records within Xendit to actual settlement records from the bank, ensuring funds are properly transferred and accounted.

Understanding the different transaction identifiers

The below use cases illustrate which ID can be used in order to associate a payment, with its unique payment ID, to orders in the merchant order management system. Depending on the payment interface used, the merchant may rely solely on reference id. This is however not possible for the reusable payment code and reusable payment link use case where there can be multiple payments sharing the same reference.

  1. Single Use Payment

Order
Payment Request
Payment
Capture

One order leads to one payment request, which results in a single payment and a single capture.

  • Relevant IDs for reconciliation: Order reference ID

  • Relevant IDs for investigation: Payment ID

  1. Single Use Payment with Multiple Captures

Order
Payment Request
Payment
Capture 1
Capture 2

One order and one payment request result in a single payment, which is captured in multiple parts.

  • Relevant IDs for reconciliation: Order reference ID

  • Relevant IDs for investigation: Payment ID and potentially Capture ID (if there are more than one capture)

  1. Reusable Payment Code

Order
Payment Request
Payment 1
Capture 1
Order
Payment Request
Payment 2
Capture 2

A reusable payment request allows multiple payments from the same request, each followed by its own capture. The order is not directly tied to the payment intent.

  • Relevant IDs for reconciliation: Order reference ID, Payment IDs. Several successful payments can share the same reference ID. Payer remarks (when available) can also assist reconciliation.

  • Relevant IDs for investigation: Payment IDs

  1. Single Use Payment Link

One order creates a single-use payment link, which generates one payment followed by a single capture.

  • Relevant IDs for reconciliation: Order reference ID

  • Relevant IDs for investigation: Payment Link ID, Payment ID

  1. Reusable Payment Link

One reusable payment link generates multiple payment links. Each leads to a single payment and a capture. The order is not directly tied to the reusable payment link.

  • Relevant IDs for reconciliation: Order reference ID, Payment IDs. Several successful payments can share the same reference ID.

  • Relevant IDs for investigation: Reusable Payment Link ID, Payment Link ID, Payment ID

Notes:

  • Payment ID appears as product_id in reports and the UI.

  • Payment Link ID is the invoice_id in webhooks and reports.

  • Order reference ID is the reference_id or merchant_reference in Xendit and is generated by the merchant.

Bank reconciliation

In order to ensure that your bank statements reconcile with your Xendit balance, you must ensure that all withdrawal amounts recorded in the payment gateway match the funds received in your bank account.

Then, to validate your Xendit balance, you must confirm that the change in balance since your last reconciliation corresponds exactly to the sum of all your transactions.

To perform such balance reconciliation, you have two options:

Option 1: Use the Balance Report

The Balance Report contains an immutable record of all ledger entries that impact your balance. If you use this method:

  • Ensure that you can reconcile entries between the Transaction Report and the Balance Report.

  • Ensure the balance change equals the sum of all debits and credits within the selected period.

Option 2: Use the Transaction Report

This is the same report used for transaction reconciliation. To isolate transactions impacting the balance in a given time interval, apply the following filters:

  • Include transactions in settled status based on their settlement time within the interval.

  • Include transactions in reversed status based on their updated time within the interval.

Auto-withdrawal payout reconciliation

Auto-withdrawal reconciliation is an alternative way of reconciling transactions and balance. The auto-withdrawal report format is based on the Balance Report but also includes all unsettled transactions that impact the available balance.

Auto-withdrawal enables merchants to withdraw the available balance, not the total balance. This means the following are included in the withdrawal interval:

  • Includes pending money-out transactions based on creation time (exclude them if already settled or failed within the withdrawal interval).

  • Includes failed money-out transactions based on updated time in the interval (exclude if created within the same interval).

Using auto-withdrawal reconciliation is more straightforward when Xendit is used only as a payment gateway, as it reflects the true available balance at the time of withdrawal.

Transaction reconciliation issue handling

Missing Transactions

When transactions appear in one system but not the other:

  1. Check transaction timing.

  2. Verify webhook delivery.

  3. Review API responses.

  4. Contact Xendit support if needed.

Settlement Delays

For delayed settlements:

  1. Verify payment method settlement timeline.

  2. Check for bank holidays.

  3. Review transaction settlement status.

  4. Contact Xendit support if needed.