diagram.mmd — flowchart
Payment Reconciliation flowchart diagram

Payment reconciliation is the process of matching each transaction recorded in the merchant's internal system against the corresponding entry in the payment gateway's settlement report and the bank's deposit statement. It detects discrepancies — missing charges, double-charges, incorrect amounts, unexpected fees — and ensures financial records are accurate.

Reconciliation typically runs daily, after the acquirer's settlement batch has been processed and the settlement report is available (usually by morning of T+1). The process compares three data sources:

1. Internal transaction records: Every payment, refund, and chargeback that the merchant's application recorded, with its gateway transaction ID. 2. Gateway settlement report: The authoritative record from the payment gateway listing every settled transaction with amounts, fees, and net payouts. 3. Bank statement: The actual deposits and debits in the merchant's bank account.

The matching algorithm attempts to pair each internal transaction record with a gateway settlement line by transaction ID. Transactions that match on ID, amount, and status are marked reconciled. Items that appear in the gateway report but not in the internal system may indicate missed webhook events that need to be replayed. Items in the internal system but missing from the gateway report may indicate captures that failed silently or transactions that were authorized but not captured.

Discrepancies in amount (off-by-one errors from rounding, currency conversion rate differences) and unexpected fee deductions must be investigated and either corrected or formally accepted as known variance. Chargebacks that appear in the settlement report as debits must be matched to the corresponding dispute record.

The final step is reconciling the gateway's reported payout amount against the actual bank deposit. Any difference — such as a pending transfer or a held payout — should be tracked as a reconciling item until resolved. Reconciliation failures trigger alerts to the finance team and are a leading indicator of integration issues. See Payment Settlement Process for the upstream process that generates settlement data.

Free online editor
Edit this diagram in Graphlet
Fork, modify, and export to SVG or PNG. No sign-up required.
Open in Graphlet →

Frequently asked questions

Payment reconciliation is the process of matching each transaction in the merchant's internal system against the corresponding line in the payment gateway's settlement report and the bank deposit statement. It surfaces discrepancies — missing charges, incorrect amounts, unexpected fees — to ensure financial records are accurate.
After the settlement batch closes (typically T+1), the system pairs internal transaction records with gateway settlement lines by transaction ID. Matched items are marked reconciled. Unmatched items — missing webhooks, silent failures, or rounding discrepancies — are investigated and either corrected or accepted as known variance.
Run reconciliation daily after the settlement report becomes available. Some merchants also run intraday reconciliation for high-volume periods or run a secondary reconciliation pass after chargebacks and refunds are processed in a later settlement window.
Common mistakes include matching only on transaction ID without validating the amount and status, not tracking currency conversion rates for multi-currency settlements, ignoring small rounding discrepancies (which compound into significant variance), and failing to account for chargeback debits as distinct line items.
mermaid
flowchart TD A([T+1: Settlement report available]) --> B[Fetch gateway settlement report] B --> C[Fetch internal transaction records for period] C --> D[Fetch bank statement deposits and debits] D --> E[Match internal records to gateway lines by transaction ID] E --> F{Match result} F -->|ID, amount, and status match| G[Mark transaction as reconciled] F -->|In gateway but not in internal system| H[Investigate missing webhook event] H --> I[Replay webhook or manually sync record] F -->|In internal system but not in gateway| J[Investigate unconfirmed capture] J --> K[Check if authorization expired or capture failed] F -->|Amount mismatch| L[Investigate rounding or FX variance] L --> M{Variance acceptable?} M -->|Yes| N[Accept as known variance] M -->|No| O[Raise discrepancy with gateway support] G --> P[Reconcile gateway payout total to bank deposit] N --> P P --> Q{Bank deposit matches gateway net payout?} Q -->|Yes| R[Close reconciliation period] Q -->|No| S[Identify pending transfers or held payouts] S --> T[Track as open reconciling item] T --> U[Monitor until resolved] R --> V([Reconciliation complete — finance records confirmed])
Copied to clipboard