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 transaction identifiers

The use cases below illustrate which ID can be used to associate a payment (with its unique payment ID) to orders in the merchant order management system.

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.

  • Reconciliation ID: Order reference ID

  • Investigation ID: Payment ID

2. 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.

  • Reconciliation ID: Order reference ID

  • Investigation ID: Payment ID, Capture ID

3. Reusable Payment Code

Order

Payment Request

Payment 1

Capture 1

Payment 2

Capture 2

A reusable payment request allows multiple payments from the same request. The order is not directly tied to the payment intent.

  • Reconciliation ID: Order reference ID, Payment IDs. (Payer remarks can also assist).

  • Investigation ID: Payment IDs

4. Single Use Payment Link

Order

Payment Link

Payment

Capture

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

  • Reconciliation ID: Order reference ID

  • Investigation ID: Payment Link ID, Payment ID

5. Reusable Payment Link

Order

Reusable Link

Payment 1

Capture 1

Payment 2

Capture 2

One reusable payment link generates multiple payment links. Each leads to a single payment and a capture.

  • Reconciliation ID: Order reference ID, Payment IDs.

  • Investigation ID: Reusable Payment Link ID, Payment Link ID, Payment ID

Quick Reference 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 (generated by 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 must use the Balance Report

The Balance Report contains an immutable record of all ledger entries that impact your balance. If you perform balance reconciliation you should:

  • 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.

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

Issue

Checklist / Action

Missing Transactions
Appears in one system but not the other

  • Check transaction timing (timezones).

  • Verify webhook delivery logs.

  • Review API response codes.

  • Contact Xendit support if unresolved.

Settlement Delays
Funds not yet available

  • Verify specific payment method settlement timeline (e.g., T+2).

  • Check for bank holidays.

  • Review transaction settlement status in dashboard.