Export each Shopify Payments, Stripe and PayPal payout with its underlying transactions, then match the payout's net amount and identifier to one bank deposit. Let AI classify fees, refunds and timing gaps in a copy of those exports, but approve every exception before sending sales, fees and clearing totals to Xero or QuickBooks.
The trap is comparing gross order revenue with net bank deposits. A processor often retains its fee, deducts a refund or carries a reserve before sending money. An order dated on the final day of a month may belong to a payout received in the next month. Reconcile the two layers separately: transactions to processor payout, then payout to bank.
Choose the unit of reconciliation: one payout
A payout is the processor's instruction to transfer a net amount to your bank. It may contain many customer payments and negative entries. Its ID, currency, status, sent date and transaction list give you a much stronger join than the order date. Create one row per payout in your working sheet. The bank feed contributes a second row with deposit date, narrative, currency and amount. Your job is to establish a one-to-one link or document why a link is pending.
Shopify's help page says its payout details include charges, refunds, adjustments, fees, reserves and retried payouts. It also explains how to export transactions for a specific payout from Finance > Payouts. That is the best first export for a single unexplained bank credit. If you need the whole accounting period, use the Shopify Payments activity report under Finance > Documents and retain the payout detail for each exception. Shopify's export lists Transaction Date, Type, Order, Payout Date, Amount, Fee and Net for each line, where Net is the amount less the fee. Those fields allow you to test the arithmetic rather than ask an AI tool to guess from a bank description. The same page says a payout typically takes one to three business days to reach your bank after Shopify sends it, and the payout details show a bank reference number when one is available.
Stripe's payout reconciliation reports and PayPal's activity download provide comparable underlying activity, but their field names and settlement rules differ. Build a small translation table instead of merging all three exports blindly. A field called amount might mean the customer charge, a balance movement or a transfer depending on the file. Open each export and identify a positive customer payment, a fee, a refund and a transfer before giving any data to AI. If one type does not occur in the chosen period, use a past example and mark it as a test record.
Stripe's payout reconciliation report is available only to accounts on automatic payouts, and its Itemised CSV lists every payment, refund, dispute, fee and other balance transaction inside each payout. If you use manual payouts, Stripe points you to its Balance report instead. Instant payouts differ again: Stripe's documentation says it cannot identify which transactions an instant payout contains, so you reconcile those against your own transaction history. The report also groups each payout by its estimated arrival date, not the date your bank posts it, so widen the date range before declaring a deposit missing. The choice of report is a setup check, not a reason to force an unsupported transaction match.
| Working field | Meaning to establish | Check before import |
|---|---|---|
| Processor and payout ID | Which transfer owns each transaction | No duplicate payout IDs within the same processor and currency |
| Gross charges | Customer money captured in the payout | Do not substitute order totals for captured payments |
| Refunds and disputes | Negative balance movements | Trace to a transaction or documented adjustment |
| Fees | Processor deductions | Keep them separate from sales reductions |
| Net payout | Expected transfer to bank | Equals the transaction movements after adjustments |
| Bank deposit | Cash actually received | Match amount, currency and plausible date |

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowExport a complete period without double counting
Start with the bank statement period, then allow a few days on either side for transfers initiated before the first day or received after the last. Download bank activity as well as the three processor reports. Record the exact export date, chosen filters and currency. A processor dashboard total can change when a late adjustment appears; a saved CSV and its timestamp make a later discrepancy explainable. Store originals in a restricted folder and work on copies. Avoid uploading customer names, addresses or payment details when payout IDs and numeric fields are enough.
For Shopify, export payout transactions for each deposit you are testing and, if needed, the activity report across the period. For Stripe, use a report that explicitly links balance transactions to payouts rather than merely a payments list. For PayPal, the Activity Download report gives gross, fee and net amounts for each transaction, a type description, a time-zone column and an optional running balance; check how a transfer to your bank is labelled in your own export before you match it. Verify the report's time zone and whether the ending balance belongs to the same currency. Do not assume that a PayPal transfer to your bank is the same thing as a sale; money can remain in a PayPal balance before transfer.
The commonest timing gap looks like this, with illustrative figures: an online shop has an order for $180 captured on the final evening of the month. The bank deposit arrives in the next period. A sales export by order date shows $180 now, while the bank feed shows nothing. If you force a match to the last deposit of the month, you may pull in the wrong payout. Keep the order in the processor clearing reconciliation and note the payout ID or pending status. The next bank import should clear the supported amount.
PayPal balances add a second layer. In an illustrative case, a customer pays $95 through PayPal, and the shop later moves $300 from its PayPal balance to its bank. Matching the $95 sale to the $300 transfer is meaningless. The balance can include earlier sales, fees and refunds. Reconcile the PayPal activity to the PayPal balance first, then the $300 transfer to the bank. Ask your accountant how the PayPal balance is represented in the ledger so it is not treated as fresh revenue twice.
Build an auditable match sheet before asking AI
Make four tabs: bank deposits, processor payouts, payout transactions and exceptions. Keep the raw files untouched. In the payout tab, calculate gross captured payments minus refunds, fees and other signed movements. Compare that calculated net with the processor's stated payout. In the bank tab, allocate a processor payout ID to each candidate deposit. A spreadsheet formula should do the arithmetic; AI can help interpret the rows that fail it. Lock the meaning of negative signs and decimal separators before summing.
For a simple match, require the same currency, exact amount to the smallest unit used by the account, a plausible date window and an identifiable processor reference where available. Amount alone is weak evidence: two payouts can both be $500. When the reference is absent, use the payout ID in the processor dashboard and the transfer date, then note the manual basis of the match. Mark a deposit as matched only once. Leave a many-to-one or one-to-many relationship in exceptions until the bank and processor evidence explain it.
A useful AI instruction is narrow. Give it a de-identified table of unmatched payouts and deposits, not an invitation to rewrite the ledger. Ask for candidate links, the evidence for each, and explicit uncertainty. In a spreadsheet tool, formulae remain your source of numerical truth. AI's task is to suggest where to look next. If it claims a fee or refund exists, demand the source transaction ID; if it cannot provide one, the claim stays a hypothesis.
Use only the supplied payout and bank rows. Suggest candidate matches.
Require same currency and exact net amount. Allow up to five calendar days
between sent date and bank date, but flag rather than force a match outside
that window. Output payout ID, bank row ID, evidence, and unresolved reason.
Do not invent fees, refunds, missing deposits or exchange rates.
An illustrative reply to that prompt: “Payout S-104, $742.60, sent on day 28, may match bank row B-19, $742.60, received on day 30; confidence high because the bank narrative contains the processor name.” The correction is that “high” is a reviewer label, not proof. Check the transaction sum and whether B-19 has already been assigned. If there are two $742.60 payouts, the AI must leave both for manual review rather than choose one by tone.
Work the numbers from order activity to the bank
Consider an illustrative shop closing a week with three Shopify Payments payouts. The first payout contains $3,200 of captured payments, $180 of refunds, $96 of processor fees and a $24 adjustment. If the adjustment is a deduction, expected net is $3,200 minus $180 minus $96 minus $24, or $2,900. The payout report says $2,900, and a bank credit of $2,900 arrives two days after it was sent. That is a complete payout-to-bank match, subject to confirming the adjustment's source and the underlying transaction IDs.
The second payout contains $1,450 of charges, a $70 refund and $43 of fees, giving $1,337. It was sent on the last day of the period, and there is no bank credit yet. The third contains $860 of charges, $26 of fees and a $12 reserve deduction, giving $822. Its bank credit is $822. The current period's bank deposits total $3,722, while all three processor payouts total $5,059. The $1,337 difference is not automatically missing money: it is a sent transfer awaiting the bank date, provided the processor status and destination support that explanation.
Now add a Stripe payout of $540 and a PayPal transfer of $310. The bank feed has those exact credits, but the PayPal activity report shows $400 in current-period sales. The $90 gap is not something to classify as a fee without evidence. It may reflect a balance carried forward, refund, held amount or another movement. Reconcile PayPal's opening balance, signed activity and closing balance, then identify the transfer. This is why the weekly check has separate processor and bank layers. A clean bank match does not, by itself, prove that sales and fees have been posted correctly.
In the working sheet, give each case a status: “matched”, “timing”, “processor discrepancy”, “bank discrepancy” or “needs accountant”. Add the amount, a named owner, the evidence link and a review date. For the $1,337 timing item, record the next expected bank check. For the $24 adjustment, retain the processor's description and source transaction. For PayPal's $90, leave the ledger treatment unresolved until the balance bridge explains it. This makes the handoff actionable instead of giving the accountant a page of AI guesses.
Separate fee, refund and timing explanations
Fees are the most common reason a deposit is below the total of customer charges, but they are not always the only one. For every payout, compare the processor's fee total with the sum of fee rows or fee columns. Then check negative transactions: refunds, disputes, adjustments and reserve movements. A refund can be deducted from a later payout than the order it relates to. The sales return belongs to its own accounting treatment; it is not a reason to reduce unrelated sales. Ask a qualified accountant when classification affects reporting or when a disputed payment is material.
A ten-order week shows the cost of a lazy label (figures illustrative). A shop captures ten orders totalling $1,000. It sees a $950 bank deposit and tells AI to “find the $50 fee”. The export instead shows $32 of fees and an $18 refund. An AI system that labels all $50 as fees understates refunds and distorts margin. The correct check is $1,000 minus $32 minus $18 equals $950, with the refund tied to its transaction. This is a small arithmetic example that exposes a large reporting error when repeated across hundreds of payouts.
Identical amounts cause a different failure. Suppose two $600 payouts leave a processor on consecutive days. The bank receives one $600 credit, then the second the following week after a bank processing interruption. An amount-only matching rule may mark both as settled because it reuses the single bank line. Add a uniqueness constraint to the match table: one bank row can close one payout unless a documented split or combined transfer exists. A pending payout should remain visible with its sent date and status even if its amount duplicates a settled item.
Refunds that cross a month end are the third trap. In this illustration, a $120 refund is initiated after a month end but relates to a sale from the previous month. The processor includes it in the next payout. The bank check for the first month can be complete while the sales-return timing needs separate accountant review. Do not silently drag the refund into the earlier payout to make an order-date report agree with bank cash. Keep event date, payout date and bank date as distinct columns. If you want to analyse returns by sale cohort, do that in another report.
If a currency conversion is involved, reconcile each currency pool and the actual transfer amount shown by the processor. Do not ask AI to apply a general exchange rate to plug a difference. Record the processor's conversion movement or bank conversion charge where documented. The same caution applies to partial captures and split tenders: one order may produce more than one payment event. Order IDs are useful tracing keys, but the payment transaction is the accounting event you need to bridge to a payout.
Prepare entries for Xero or QuickBooks without duplicates
Before posting anything, inspect your existing integration. Some shops already synchronise individual sales, refunds or processor fees to the ledger. Others import only bank feeds. If individual orders are posted, a second sales journal built from the payout export can double revenue. Decide with your accountant which source is the book of record for gross sales, which account holds unsettled processor funds and which method records fees and refunds. The payout worksheet should point to those accounts, not choose them on the fly.
A typical controlled handoff has the processor payout ID, gross charges, refunds, fees, adjustments, net transfer, bank match ID and exception status. The accountant can then map the totals to the current chart of accounts and clear the processor balance when the bank deposit arrives. QuickBooks pre-fills a payee and, where it is confident, a category on its AI-powered banking page, each suggestion carrying a colour-coded review signal. Xero's JAX goes further once you switch it on for a bank account: it reconciles high-confidence statement lines itself and labels each one Rule, Match, Memory or Prediction. Review either against this packet, after the event in Xero's case. A suggested category or match is useful only if it reflects transactions already recorded and does not create another copy. For the wider bank matching method, see the tutorial on checking AI-assisted bank reconciliation.
Ask for a journal draft only after the processor totals tie out. The AI prompt should name the accounts you already use, tell the model not to invent account codes and require debits to equal credits. It should also say whether sales were already imported. A balanced journal can still be wrong if it duplicates sales or puts fees into the wrong period. Have a person compare it to the export and the existing ledger before approval. For a Xero-specific review routine, use the Xero reconciliation checks; for Intuit's suggestions, see the QuickBooks matching guide.
Consider an illustrative posting packet for the $2,900 payout. It says captured payments $3,200, refunds $180, processor fees $96, adjustment deduction $24 and net bank credit $2,900. It also says whether the $3,200 was already recorded from orders. If the sales and refunds already sit in a clearing account, the accountant should clear the account and recognise any unposted deductions, not record another $3,200 of sales. If no order posting exists, the accountant needs the gross breakdown and reporting-period rule before drafting entries. The same bank credit can require different journals under the two setups.
Close only when the outstanding list makes sense
At month end, calculate the opening processor clearing balance plus recognised charges, minus refunds, fees and other supported deductions, minus transfers received by the bank. The result should equal supported unsettled funds, reserves or other identified movements. Review ageing by payout ID, not just a single net figure. A positive and a negative error can cancel in the total. Keep screenshots or saved export references for held funds and retried transfers, then check their release or reversal next period.
Set a practical review rhythm. A shop with a few weekly payouts might spend twenty minutes after each bank import and an hour at month end; a higher-volume shop should test a sample of automatic matches and review every exception. Those are planning estimates, not vendor promises. Time the first two closes and change the schedule to fit the actual transaction count. A simple success measure is the share of payout IDs matched to unique bank rows, the value of unexplained differences and the age of unresolved transfers. Count the corrections the accountant makes to AI classifications; a falling correction rate is useful only when the underlying checks remain strong.
Keep a clear stop condition: if a payout's transaction sum does not equal its stated net, if a bank deposit has no processor evidence, or if one source appears to have posted sales twice, do not let an agent create a balancing entry. Retrieve the missing report or ask the processor, then involve the accountant for ledger treatment. The goal is a traceable bridge from payment to payout to bank, not a zero difference manufactured by an AI-written journal. If you need to chase a remaining mismatch after this bridge, use the difference-finding checklist.
Questions about payout differences
Should I match every order directly to a bank deposit?
Usually no. A bank deposit commonly combines several orders and subtracts fees, refunds or adjustments. Match the processor's payout total to the deposit first, then reconcile the transactions inside that payout. Keep order IDs for tracing exceptions rather than treating each order as a separate deposit.
What if a payout is still missing at month end?
Check the processor's payout status, destination account and date before recording an error. A sent payout can arrive after the reporting cut-off. Record it in a clearing account only when the underlying transactions are supported, and review the outstanding balance after the bank feed updates.
Can an AI tool post the final journal automatically?
It can prepare a draft from checked totals, but a person should approve the mapping and confirm that another integration has not posted the same sales or fees. Your accountant should review material adjustments and the month-end clearing balance. Never post from a model's narrative without tying every figure to a source row.
Further reads
- AI Accounting for Startups: Monthly Close, Burn and Runway — Extend the close to cash and runway reporting.
- ChatGPT for Accounting With Excel: Seven Tasks, Each With Its Check — Check spreadsheet-assisted accounting tasks.
- AI Invoice Processing: Stop Typing Supplier Bills by Hand — Handle supplier costs alongside sales settlements.
- AI Rent Roll Analysis for Multifamily: Reconcile to the Bank — Clean a rent roll, summarise vacancy and delinquency, and tie billed rent to bank deposits with AI, using four prompts and a worked 48-unit example.
- Catch-Up Bookkeeping With AI: Rescue Months of Untouched Books — A bookkeeper's month-by-month recovery method, with exception lists, client queries, reconciliation checks and a scoped clean-up quote.
- AI Bookkeeping Software Challenges: Where It Goes Wrong and the Fix — A problem-by-problem repair routine for a small bookkeeping practice, with a verification check after every fix.
- Questions to Ask a 3PL About Its AI and Automation: A Checklist — Grouped questions for a 3PL's AI and automation claims, what a good answer sounds like, red flags to walk away from, and a 30-day trial to test them.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Shopify Help, Viewing and exporting your Shopify Payments payout details; Stripe Docs, Payout reconciliation report; PayPal Developer, Activity Download report; Intuit QuickBooks Help, Learn about updates to the new AI-powered banking page; Xero, automatic bank reconciliation powered by JAX.