Skip to main content

Reconciliation

TL;DR
  • You match your sales records to your bank deposits. It takes three sources, not two: sales system, processor report, bank statement
  • T+2 settlement means today's deposit covers transactions from two days ago. Track by settlement date, not transaction date, or you'll be off by one forever
  • Unexplained gaps are almost always fees, chargebacks, refunds, or batch timing. Categorize the unknowns. Don't adjust them away
  • Automate when matching takes more time than you can spare or errors keep recurring. Sales volume alone doesn't decide it

You compare what you think happened against what actually happened. Your sales records against your bank deposits. Sounds simple. Then you try it.

Match a payout to your bank deposit​

First confirm which provider actually processed the payment. Match the Shopify order's payment transaction to its actual provider. Write the store, processor account and currency above your worksheet, with the bank and payout dates beside them.

If you're asking when it'll arrive, start with Settlement Timing. If funds are held, use Money Held or Frozen.

Get the right export​

Shopify Payments, one payout: open Finance > Payouts. Select the payout date and specific payout; in the original view, choose Export > Export payout transactions. In the new view, use the export icon, then Export payout transactions. The download's a CSV. Shopify warns that views can differ during its rollout. VENDOR Shopify payout details.

Need a Shopify PDF? The documented PDF is a period report. Open Finance > Documents > Shopify Payments activity report. Choose the period and payout currency, then Export to PDF. It's for Shopify Payments, with owner or payout-view permission; other payment providers aren't included. This report describes balance activity, rather than accounting revenue. VENDOR Shopify activity report.

For one bank deposit, use the payout CSV above. If you require a complete per-payout PDF, ask Shopify. Check the PDF's scope before treating it as that record.

Square: open Reports > Accounting > Reconciliation. Select the date range and locations, then Print or Export, keeping those selections with the file. VENDOR Square report instructions.

Stripe automatic payouts: open the Payout reconciliation report. Select dates covering the payout's estimated arrival date, then find it and download its Itemized CSV. That date can differ from the bank's posting date. Keep the report currency and time zone with your export. Manual payouts use the Balance report unless you're a platform whose connected accounts have automatic payouts. Instant payouts need a transaction-history reconciliation; Stripe can't identify their transaction batch. VENDOR Stripe payout reconciliation and Balance report.

Can't see the named report or export? Ask the owner to check access and the account product. Send Support the payout reference and required date range. Keep the payout export separate from the tax-year log.

Work one payout, including the part that doesn't match​

Here's an invented USD worksheet, not a provider statement; its inputs aren't actual fees or typical amounts. They're just a way to check your arithmetic. Copy your own export's signs and categories instead.

Worksheet rowSigned USDStatus and annotation
Charges assigned to illustrative payout P-EXAMPLE+1,000Illustrative input; link each charge to its sale.
Processing fees-30Illustrative input; separate fee line.
Refunds-100Illustrative input; retain original payment references.
Disputed principal-200Illustrative input; retain case reference.
Separate dispute fee-15Illustrative input; never assume every provider charges this.
Reserve movement withheld from this payout-50Illustrative input; carry to the reserve record for later review.
Other documented adjustment+5Illustrative input; retain its explanation.
Expected payout from these rows610DERIVED: 1,000 - 30 - 100 - 200 - 15 - 50 + 5.
Bank deposit being compared600Illustrative input; not yet proved to be this payout.
Expected payout less bank deposit10DERIVED: 610 - 600; still unexplained.

DERIVED All inputs are invented in this table. No fee rate or accounting treatment is implied. The report categories illustrate the Stripe payout report and Shopify balance activity report. Your provider's export decides which rows apply.

The difference stays open until the records explain it. A fee needs its own supporting line in the records. Check the payout reference and bank account again before asking the provider for the remaining explanation.

Please explain the difference for payout [ID], in [currency]. My export totals [amount]; the bank shows [amount]. Please identify the line or timing difference that explains it.

Ask the bank this:

Please confirm this deposit's amount, posting date and reference. Which transfer does that reference identify?

Separate matching from accounting and tax​

Take the matched records to your accountant. Ask them to approve the accounts and recognition dates. A payout date isn't an automatic revenue rule. For the form's gross total, follow its 1099-K transaction report.

Scale Callout
Your setupDo this next
One processor and currencyWork one payout before widening the date range.
Several processors or locationsKeep account and location references on every worksheet.
Several payout currenciesCompare each currency separately, with its conversion records.
Where This Breaks

Check the report's date basis and time zone. Keep period summaries separate from a single payout. Keep reserves and unresolved transfers visible for follow-up. A pending difference isn't permission to invent an adjustment.

Test to Run

Choose a completed payout and its supporting export. Trace its reference to the bank's posted deposit, explaining each line and any carried balance or reserve. Leave anything unexplained on an open-items list with an owner. The test fails if you need a balancing plug.

The Three-Way Match​

You need three sources, not two:

SourceWhat It ShowsWhere to Get It
Your POS/systemEvery transaction processedYour terminal, gateway, or POS software
Processor settlement reportTransactions settled, fees charged, chargebacksProcessor portal or API
Bank statementActual deposits receivedYour bank

All three should match. When they don't, you have a discrepancy to investigate.

Your reconciliation obligation:

Per Mastercard's Rules: "It is the responsibility of each Customer to reconcile the totals and Transactions provided by the Interchange System to its own internal records on a daily basis."

This isn't just best practice. It's a network requirement.

Why They Don't Match​

Timing Differences​

The most common issue. Your POS shows $10,000 in Monday sales. Your processor report shows $10,000 settled Tuesday. Your bank shows $9,720 deposited Wednesday. All normal. They're looking at different points on the same timeline.

Fee Deductions​

Sales were $10,000. Deposit was $9,720. The $280 gap is fees. Miss that and you'll think you're short. See Reading Statements for how to read the deductions.

Batching Differences​

You processed 100 transactions Monday. Your processor batched 98 of them Monday night. The other 2 came in after cutoff, so they batched Tuesday night. Your reports now show different counts for "Monday."

Chargebacks and Refunds​

A chargeback or refund hits your current settlement. It doesn't get matched back to the original sale. So a $500 chargeback on a two-month-old order lands as a deduction today.

Reserves and Holdbacks​

Your processor might hold 10% of every settlement. Sales say $10,000, fees are $280, and you got $8,748. The rest is reserve. See Money Held or Frozen.

Common Discrepancies​

DiscrepancyLikely CauseHow to Fix
Transaction in POS, not in settlementAuth only, never captured; voided; rejected at clearingCheck transaction status in gateway
Transaction in settlement, not in POSSystem not syncing; manual transaction on terminalCheck all transaction sources
Amount mismatchTip adjustment; partial capture; currency conversionCompare original vs settled amount
Extra feesPCI non-compliance fee; chargeback fee; statement fee; instant payout feeReview fee schedule
Missing depositBatch didn't close; settlement rejected; bank holidayCheck batch status, bank account
Unexpected deductionChargeback; refund; adjustment; reserve; delivery-app order-error deductionReview the report from whoever made the deduction. App deducted for a missing or wrong order? Check its merchant review steps
Three fee lines that surprise people at reconciliation

Instant payout fees. Someone on your team taps "get it now". That's 1.95% on Square, 1.5% on Stripe in the US, 1.50% on PayPal Instant Transfer. It comes straight off the deposit.

Double dispute fees. Stripe charges $15 to receive a dispute and another $15 to counter it. Neither comes back on a partial win. PayPal charges $15 on wallet and Guest Checkout disputes, $20 on card chargebacks. So your ledger needs two fee codes even though only one fires per dispute. Assume a single $15 line and you'll be short on Stripe and wrong on PayPal.

Fees you were told didn't exist. Helcim publishes $0 for monthly, setup, PCI, cancellation and statement fees. See those lines on your statement? They're not standard. They're negotiable.

All figures verified against the vendor's own pricing page on 2026-08-02. See Processor Comparison for the sourced table.

Mismatch Troubleshooting Flowchart​

When your numbers don't match, work through this before panicking:

Reading the flowchart: Green is normal, leave it. Red means something got deducted, so go look. Yellow is a timing issue and usually fixes itself. Blue is a batch shift. Purple means you're digging into line items.

Almost every mismatch is one of three things. Fees, which you expected. Chargebacks and refunds, which came out of today's settlement. Or timing, where the money shows up a day late. If none of those explain it, pull the line-item report and match row by row.


Reconciliation Frequency​

How often should you reconcile?

Business TypeRecommended FrequencyWhy
High-volume e-commerce (1000+ txns/day)DailyDiscrepancies compound quickly; fraud detection
Medium retail (100-1000 txns/day)Daily or every 2-3 daysCatch issues before they age
Low-volume (under 100 txns/day)WeeklySufficient for error detection
All businessesMonthly (at minimum)Month-end close, financial reporting

The 3-day rule: a discrepancy is 10x easier to chase inside 3 days. After 30, some are gone for good.

The Reconciliation Process​

Step 1: Export Your Data​

  • Pull settlement report from your processor (by settlement date)
  • Pull bank statement or transaction export
  • Export your POS/sales data for the same period

Step 2: Match Gross Amounts​

  • Total sales from your system
  • Total settled amount (before fees) from processor
  • Should match (or difference should be explainable)

Step 3: Verify Fees​

  • Expected fees based on your rate and volume
  • Actual fees charged
  • Explain each difference using the agreed fee schedule and actual card mix. An unexplained gap isn't acceptable just because it's under 1%

Step 4: Match Deposits​

  • Settled amount minus fees = expected deposit
  • Actual bank deposit
  • Difference = chargebacks, reserves, or adjustments

The three lines above are shorthand, not a complete payout formula or an explanation of a difference. Include every documented signed component, as in the payout worksheet. Keep the difference unexplained until the records identify its cause.

Step 5: Investigate Discrepancies​

  • Document each discrepancy
  • Research root cause
  • Resolve or escalate
  • Track patterns over time

Automation vs Manual​

Manual works at a handful of transactions a day. Past that you need software:

VolumeApproach
Under 100 transactions/daySpreadsheet reconciliation feasible
100-1000 transactions/daySemi-automated (import/match tools)
1000+ transactions/dayFully automated reconciliation software

Most processors ship reconciliation reports and an API. Your accounting software probably has an integration already. Third-party tools exist for messy multi-processor setups.

Settlement Holds and Reserves​

Not all of your money reaches you right away. Processors and acquirers hold funds to cover their own risk.

Reserve TypeHow It WorksWhat to match
Rolling% held each batch, released after X daysYour agreed withholding and scheduled releases
Capped% held until reaching maximumWithholding against the documented cap
UpfrontLump sum held before processingThe agreed amount and release conditions
MinimumFloor that must be maintainedThe required balance and any top-ups

See Money Held or Frozen for complete coverage of why funds get held and how to negotiate reserve release.


Next Steps​

Want the math laid out for one payout? Use AI on payouts, books and tax forms, with made-up totals first.

Just learning reconciliation?

  1. Pull your last week's deposits and match them to sales
  2. Ask your processor for fee breakdown documentation
  3. Identify your batch cutoff time

Handling discrepancies?

  1. Understand chargebacks → Disputes cause the biggest gaps
  2. Build a fee tracking system → Catch overcharges
  3. Review your processor contract → Know what you agreed to pay

See Also​

Sources​

SourceSupportsOpened
Shopify payout detailsSpecific-payout CSV, payout reference, component transactions and original/new views21 October 2026
Shopify Payments activity reportPeriod/currency PDF, permissions, balance-activity scope and reserve/dispute categories21 October 2026
Square accounting reportsUS Reconciliation route, dates, locations, Print/Export and report permissions21 October 2026
Stripe payout reconciliationAutomatic-payout batch, estimated arrival date, Itemized CSV, manual/platform exception and instant limits21 October 2026
Stripe Balance reportBalance report alternative, settlement currency, date range and time zone; no payout-to-payment assignment21 October 2026

Something wrong on this page? Email matt at paymentsandrisk.com and say what needs fixing.