If your client says, "the payout hit the bank so the month should be done," you already know the problem. Shopify deposits are net batches, accounting ledgers need clean gross activity, and timing differences stack up quickly. This page walks through the mismatch points that usually break close.
Shopify payouts are cash settlement batches. One payout can include sales from different order dates, fees from those sales, a refund from earlier in the month, and a chargeback adjustment from a prior period. Xero and QuickBooks are not trying to display that same bundle, they are trying to hold a clean accounting trail by transaction type and period.
That is why matching one bank line directly to one revenue line fails. The payout is net cash movement. Your ledger needs gross sales, discounts, tax, shipping, fees, refunds, and disputes posted to the right accounts. If the process records only the payout net, revenue is understated and expenses disappear into one number that cannot be reviewed later.
A practical fix is to reconcile through a clearing account. Post activity into the clearing account from Shopify detail, then clear against the actual payout bank transaction. This keeps the bank match simple while preserving full accounting detail.
Processing fees often look predictable at first, but they rarely land in a way that stays perfectly aligned to one calendar month. Fees can be deducted in the payout that arrives later, or grouped with other adjustments. If the bookkeeping flow books fees by an estimated rate, small differences repeat and the gap keeps growing.
The safer approach is to pull fee amounts from payout detail, not assumptions. Tie each fee line to a payout batch, then check whether any non-processing deductions were grouped with it, such as currency conversion, payment disputes, or reserve movements. Many "mystery variances" are just uncategorized deductions that sat in fees.
Month-end review should include a quick bridge: opening clearing balance, plus period activity, minus payouts received, equals closing balance. If that bridge does not explain itself in plain language, do not sign off yet.
Refunds are one of the biggest reasons a period looks right in Shopify reports but wrong in accounting software. The order might belong to an earlier month, but the refund deduction hits a later payout. If bookkeeping ties refunds only to original order date, cash reconciliation will not line up.
Use two checks. First, confirm the refund exists in order activity. Second, confirm when the cash impact hit payouts. Then post both correctly: commercial impact on the order history and cash impact on payout clearing. Without this split, teams end up posting manual journals that fix one report while breaking another.
Also watch for refunds that exceed available payout balance. In some cases, platform debits or negative balances can appear outside the expected payout rhythm. If those debits are not mapped, the bank rec fails even when everything else looks clean.
Chargebacks are not just another fee line. They represent a disputed customer payment, possible temporary fund hold, and potential reversal later. If chargebacks are merged into one generic expense bucket, you lose the audit trail needed to explain why cash moved and whether funds later returned.
Keep chargeback movements visible: the dispute amount, associated chargeback fee, and any later reversal. When accountants can see these as separate movements, period close gets faster because fewer questions remain unresolved at review time.
This is also where inherited messy months get dangerous. If old chargeback movements were posted as one-off journals with unclear narration, current period reconciliations inherit that confusion. A structured review is usually faster than trying to patch each unmatched line one by one.
Useful Patch is built for this exact situation, not another full connector rollout. If one month still will not close cleanly, run the month through the scanner and get a focused leak report first.
Run a free payout scan