Payment Gateway Reconciliation: How to Match Settlement Reports to Your Books
Reviewed by Yuanqiang Wu
Last updated: August 18th, 2026
Mismatches are mostly mechanics
Most gateway-versus-bank differences are not errors — they are batching, netted fees, refunds, FX, and settlement timing doing exactly what they are designed to do. Reconcile by explaining those first, and genuine errors become a short residue list instead of a hunt. The worked example shows a $2,000 batch legitimately landing as $1,884.70, every dollar traceable from the settlement report.
Payment gateway reconciliation is the process of matching the transactions in your gateway's settlement reports against your internal order records and the deposits that land in your bank account, then explaining every difference — fees, refunds, chargebacks, FX conversion, timing, and the occasional genuine error. The numbers will never match line-for-line on their own, because a gateway settles in batches, nets its fees out before paying you, and runs on a settlement cycle measured in days. This guide is written from the gateway's side of the ledger: what a settlement report actually contains, a five-step reconciliation process, a worked example showing exactly where $115.30 of a $2,000 batch goes, and a template you can copy into a spreadsheet today.
Why your gateway report never matches your bank deposit line for line
Most mismatches aren't errors — they're the normal mechanics of card processing, and three structural facts explain the majority of them.
First, a card payment is three events, not one. Authorization reserves funds on the cardholder's card. Capture tells the network to actually move the money — possibly for less than the authorized amount, a partial capture (Stripe's authorization-and-capture documentation, accessed 2026-08-12). Settlement is when captured funds, minus fees, are paid out to you. Your order system records the sale at capture; your bank records money at settlement, days later — which is why a clean revenue month can pair with a messy cash month.
Second, gateways settle in batches, net of fees. Three hundred orders don't arrive as 300 deposits — they arrive as one transfer covering a settlement batch, with fees, refunds, and adjustments already deducted. A single bank line has to be exploded back into its component transactions before you can reconcile anything.
Third, settlement runs on a cycle. Cross-border card settlement commonly runs several days behind capture. HaiPay settles international card payments typically at T+5 (calendar days) — calendar days, not business days, so weekends count toward the clock — and as fast as T+1 (calendar days) on local payment methods in selected markets, with your exact timeline confirmed in your quote. Transactions captured near a period's end settle in the next one — the single largest source of apparent mismatch, and one that resolves itself once your process accounts for it.
What a settlement report actually contains
The settlement report is the gateway-produced document that makes reconciliation possible. Here are the fields that matter and what each is for:
Field | What it is | Why you need it |
|---|---|---|
Transaction ID / gateway reference | The gateway's unique ID per payment | The join key back to your order system |
Merchant order reference | Your own order ID, echoed back | The reverse join key — insist your integration passes one |
Capture date & settlement date | When funds moved vs. when you were paid | Explains timing gaps; defines which batch a sale belongs to |
Batch / payout ID | Which transfer this line settled in | Maps report lines to a specific bank deposit |
Gross amount & currency | What the customer paid, in the payment currency | The number your order system knows |
Fee amount (itemized if possible) | Processing fee deducted for this transaction | Lets you verify fees against your contracted rate |
FX rate & settlement currency | Conversion applied, if settling cross-currency | Explains why gross × count ≠ deposit in your currency |
Net amount | Gross minus fees, in settlement currency | What actually sums to the bank deposit |
Type / status | Sale, refund, chargeback, adjustment, reversal | Negative lines are not errors; they're events |
Reconciliation lives or dies on the order-reference field: without your own order ID echoed back, every match becomes fuzzy matching on amount and timestamp — which breaks exactly when you need it most, two same-priced orders in the same minute. Prefer machine-readable reports (CSV or API) over PDFs; you will join this data against your own tables every cycle.
The five-step reconciliation process
- Pull the three sources for the period. Gateway settlement report, internal order/invoice records, and the bank statement showing actual deposits. All three, every cycle — gateway-to-books alone misses payout failures; books-to-bank alone can't explain fees.
- Match each bank deposit to a settlement batch. Confirm the deposit equals the batch's net total (after any per-transfer fee — see the worked example below). This is the industry-standard check: Adyen documents it as net credits minus net debits equalling the batch payout, and PayPal as tracing the Transfer ID to the bank line (Adyen, PayPal, both accessed 2026-08-12). If a whole batch is missing, check the settlement cycle before assuming a problem: a batch captured Thursday on a five-calendar-day cycle isn't late until the following Tuesday.
- Match transactions inside the batch to internal orders. Join on your order reference. Every gateway line should find an order, and vice versa. Work the exceptions list, not the matched list.
- Explain every residual difference. Each gets a category: fee, refund, chargeback, FX conversion, timing (will settle next batch), or genuine error (duplicate, missing, wrong amount). "Unexplained" is the only unacceptable category.
- Record, adjust, and escalate. Post fee and FX entries to your ledger, roll timing items forward to next cycle's expected list, and raise genuine errors with the gateway while the detail is fresh. Close the period with a short written summary — the artifact your auditor will ask for.
Run this on a cadence matched to your settlement cycle — daily at high volume, weekly at minimum. The cost of reconciliation grows nonlinearly with the gap since you last did it.
Worked example: where $115.30 of a $2,000 batch goes
Small-ticket, high-frequency merchants feel fees hardest, so here is an illustrative batch. Say 100 international card transactions of $20 each settle in one batch, priced at HaiPay's blended rate, which starts at 2.5% + $0.30 per transaction ($0 setup, $0 monthly), with one $20 merchant-initiated refund at US$0.30 and a US$15 fee on the USD settlement transfer:
Line | Calculation | Amount |
|---|---|---|
Gross sales | 100 × $20.00 | $2,000.00 |
Percentage fee | 2.5% × $2,000.00 | −$50.00 |
Fixed fee | 100 × $0.30 | −$30.00 |
Refund returned to customer | 1 × $20.00 | −$20.00 |
Refund fee | 1 × $0.30 | −$0.30 |
Settlement transfer fee | 1 × $15.00 | −$15.00 |
Net deposit | $1,884.70 |
Your order system says $2,000; your bank says $1,884.70. Every dollar of the $115.30 gap is explainable from the settlement report — nothing here is an error. How fees, refunds, and transfer charges are grouped within a payout varies by setup; treat the grouping here as illustrative and reconcile against the lines your own report shows. Reconciliation also doubles as fee verification: on a $20 ticket, 2.5% + $0.30 is an effective 4%, the kind of structure-versus-rate trade-off our payment gateway fees guide breaks down. If your reconciled effective rate drifts from your contracted rate, that's a finding, not a rounding artifact.
Merchants on interchange-plus pricing should verify one level deeper: check the pass-through components, not just the total. On HaiPay's IC++ pricing (available with a minimum monthly processing volume of US$1,000 — a volume requirement, not a fee), an illustrative US$100 transaction breaks down as interchange 1.80% + scheme fee 0.20% + HaiPay processing 0.50% = 2.50% total; verify the pass-through components against your statement, not just the total — and if the components aren't itemized where you can see them, ask for that in writing. Current rate cards for both models are on the pricing page.
The seven causes of mismatch, and how to resolve each
When a difference survives batch matching, it falls into one of seven buckets:
# | Cause | What it looks like | Resolution |
|---|---|---|---|
1 | Settlement timing | Order in your books, absent from the batch | Check the cycle in calendar days; carry forward to next batch's expected list |
2 | Fees netted from payout | Deposit below gross by a consistent margin | Post fees to expense; verify against contracted rate |
3 | Refunds | Negative report line after the original sale | Match to the refund record; include any per-refund fee |
4 | Chargebacks | Reversal plus a dispute fee, often weeks later | Match to the dispute case; track outcome separately from sales |
5 | FX conversion | Gross in payment currency, deposit in settlement currency | Recompute with the report's stated FX rate; book the difference as FX, not revenue |
6 | Partial captures | Settled amount below the authorized amount | Reconcile against captured amount, not the original authorization |
7 | Genuine errors | Duplicates, missing transactions, wrong amounts | The residue after 1–6 — escalate to the gateway with transaction IDs |
The order matters: timing, fees, and refunds explain most differences, and genuine errors are the residue. Teams that investigate in this order close in hours, not days.
Cross-border adds two layers: currency and cycle
Reconciling a cross-border gateway adds complications that single-market guides skip entirely.
Currency. A customer pays in one currency; you settle in another. The settlement report should state the FX rate applied — recompute it, don't trust it blind — and the conversion cost belongs in your ledger as FX expense, not as vanished revenue. HaiPay's outbound FX fee runs from 1% to 2.5%, by market, with your market's rate confirmed in your quote; reconciliation should surface the effective FX cost as its own line — it is invisible in a gross-versus-deposit comparison.
Cycle and method mix. Local payment methods — bank transfers, wallets, local card schemes — settle on different cycles and fee structures than international cards (HaiPay supports 150+ local payment methods, priced from 0.8% by market and confirmed in your quote, across major emerging markets). One account can therefore produce multiple settlement streams per period, each needing its own batch matching. If the acquiring chain behind those streams is unfamiliar, the merchant acquiring guide explains who actually holds and moves the money at each hop.
A cycle quoted in calendar days is easier to reconcile than one in business days: on typical T+5 terms, a Monday capture is expected on Saturday — no weekend-and-holiday modeling across two jurisdictions. Your exact cycle is confirmed in your quote.
A reconciliation template you can copy
Here is a working column layout — one row per gateway settlement line, joined to your systems:
Column | Source | Example |
|---|---|---|
Order ref | Your system | ORD-10482 |
Gateway txn ID | Settlement report | TXN-88f3a1 |
Batch / payout ID | Settlement report | BATCH-2026-08-07 |
Capture date / settlement date | Settlement report | 2026-08-02 / 2026-08-07 |
Gross (payment ccy) | Both — must agree | $20.00 |
Fees | Settlement report | $0.80 |
FX rate / net (settlement ccy) | Settlement report | 1.0000 / $19.20 |
Internal amount | Your system | $20.00 |
Delta | Computed | $0.00 |
Status | Assigned in step 4 | Matched / Timing / Fee / Refund / Chargeback / FX / Error |
Note | Manual | — |
Add a small summary block per batch: expected net (sum of report net lines minus any transfer fee), actual bank deposit, and the difference — which should be zero before you close the period.
When a spreadsheet is enough
At one gateway, one settlement currency, and modest volume, the five-step process in a spreadsheet is a complete reconciliation system — the automation vendors ranking for this topic tend not to mention that. Three conditions change the answer: more than one gateway or payment method, multi-currency settlement, and high transaction counts at small tickets. Until one arrives, spend the tooling budget on report quality instead.
One selection-stage lesson hides in all of this: reconciliation effort is mostly determined by the gateway's report quality — order references echoed back, itemized fees, stated FX rates, a predictable calendar-day cycle. Those are questions worth asking before you integrate, not after your first messy month-end.
Sources
- Stripe Docs — Place a hold on a payment method — separate authorization and capture; partial capture releases the remainder; authorization validity windows by card network. Accessed 2026-08-12.
- Adyen Docs — Settlement reconciliation: transaction level — PSP reference / merchant reference as join keys; net credits minus net debits equal the batch payout. Accessed 2026-08-12.
- PayPal Developer — Disbursement reconciliation — tracing a payout by Transfer ID; settlement amount plus fees reconciling to zero. Accessed 2026-08-12.
FAQ
The gateway matches its own records against the card networks and acquiring banks it routes through, then packages the outcome as a settlement report: every captured transaction, its fees, refunds, chargebacks, FX conversion, and the net paid out per batch. Your side of reconciliation is matching that report against your internal orders and bank deposits — the report is the bridge document between the two.