Shopify Payout Reconciliation in Excel/CSV: Match Orders, Fees, Refunds, and Bank Deposits

Shopify payout reconciliation is not a simple "order total equals bank deposit" comparison. A single bank deposit can include many orders, refunds, fees, adjustments,...

Shopify Payout Reconciliation in Excel/CSV: Match Orders, Fees, Refunds, and Bank Deposits guide illustration.

Summary

Shopify payout reconciliation is not a simple "order total equals bank deposit" comparison. A single bank deposit can include many orders, refunds, fees, adjustments, chargebacks, reserves, currency differences, and timing cutoffs. Excel can help when volume is small, but lookup formulas often break when one payout maps to many transactions or when exports use slightly different IDs and dates.

FireLookup helps finance and ops teams reconcile Shopify payout CSVs against order exports, gateway reports, and bank deposits with exact, fuzzy, and grouped matching - then export audit-ready matched and unmatched files.

The real Shopify payout reconciliation workflow

Most teams are trying to answer five questions:

  1. Which Shopify orders are included in each payout?
  2. Which refunds, disputes, fees, and adjustments explain the gap between gross sales and the net payout?
  3. Does the payout total match the bank deposit?
  4. Which transactions are missing from the payout or bank side?
  5. Which unmatched rows are timing items versus real exceptions?

A reliable workflow starts by separating the reconciliation into layers: order layer, payout layer, bank layer, and exception layer.

Example tables

Shopify transaction export

| transaction_id | order_name | payout_id | processed_date | type | gross_amount | fee_amount | net_amount |
|---|---:|---|---|---|---:|---:|---:|
| txn_1001 | #1042 | po_7781 | 2026-05-01 | charge | 120.00 | -3.78 | 116.22 |
| txn_1002 | #1043 | po_7781 | 2026-05-01 | charge | 85.00 | -2.85 | 82.15 |
| txn_1003 | #1039 | po_7781 | 2026-05-01 | refund | -40.00 | 0.00 | -40.00 |
| txn_1004 | #1044 | po_7782 | 2026-05-02 | charge | 210.00 | -6.39 | 203.61 |

Shopify payout summary

| payout_id | payout_date | currency | gross_sales | fees | refunds | adjustments | net_payout |
|---|---|---|---:|---:|---:|---:|---:|
| po_7781 | 2026-05-03 | USD | 205.00 | -6.63 | -40.00 | 0.00 | 158.37 |
| po_7782 | 2026-05-04 | USD | 210.00 | -6.39 | 0.00 | 0.00 | 203.61 |

Bank statement export

| bank_date | description | amount | reference |
|---|---|---:|---|
| 2026-05-03 | SHOPIFY TRANSFER PO7781 | 158.37 | ACH-88310 |
| 2026-05-04 | SHOPIFY TRANSFER PO7782 | 203.61 | ACH-88344 |
| 2026-05-05 | SHOPIFY TRANSFER | 98.22 | ACH-88401 |

Desired reconciliation output

| match_status | payout_id | bank_reference | payout_amount | bank_amount | variance | reason |
|---|---|---|---:|---:|---:|---|
| matched | po_7781 | ACH-88310 | 158.37 | 158.37 | 0.00 | payout ID and amount matched |
| matched | po_7782 | ACH-88344 | 203.61 | 203.61 | 0.00 | payout ID and amount matched |
| unmatched_bank |  | ACH-88401 |  | 98.22 | 98.22 | no payout found; review timing or missing Shopify export |

Step-by-step process in Excel

Step 1: Export the right Shopify reports

Download the Shopify payout report and the transaction/order export for the same period. Include payout ID, transaction ID, order number, payout date, processed date, transaction type, gross amount, fee amount, net amount, and currency.

Also export the bank statement CSV for the same period, including date, description, reference, and amount.

Step 2: Normalize formats before matching

Create helper columns for clean payout ID, clean bank description, rounded amount, date window, and signed amount. Example formulas:

=UPPER(TRIM(A2))
=ROUND(H2,2)
=TEXT(B2,"yyyy-mm-dd")

Step 3: Reconcile payout summary to bank deposits

If the bank description contains the payout reference, use exact matching first. If it does not, match by amount, date window, currency, and description containing Shopify.

Basic XLOOKUP can work for simple one-to-one payout deposits:

=XLOOKUP([@net_payout], Bank[amount], Bank[reference], "No bank match")

But this becomes risky when two payouts have the same amount, when bank dates lag, or when the description does not include a payout ID.

Step 4: Reconcile transaction rows to payout totals

Use a PivotTable or SUMIFS to prove each payout total equals the sum of its transaction rows.

=SUMIFS(Transactions[net_amount], Transactions[payout_id], [@payout_id])

Step 5: Classify exceptions

Classify each exception as matched, missing in bank, missing in Shopify, amount variance, timing item, grouped match, or possible duplicate.

Where Excel breaks

  1. XLOOKUP assumes one clean match. It can return the first matching amount and hide duplicates.
  2. SUMIFS depends on a perfect grouping key. If payout IDs differ across exports, grouped totals fail.
  3. Timing differences create false exceptions. Payout dates, processed dates, and bank dates can differ.
  4. Refunds, fees, and adjustments reverse signs. Sign normalization is required before variance review.
  5. Manual review is hard to audit. Highlighted rows are not matched/unmatched exception exports.

How FireLookup helps

With FireLookup, a finance or ops user can upload Shopify payout CSV and bank CSV, choose exact match fields, use fuzzy matching when references differ, use grouped matching when many Shopify transactions roll up to one payout, review matched and unmatched rows separately, and export audit-ready matched/unmatched files.

Recommended FireLookup matching setup

File A: Shopify payout or transaction export

Suggested fields: payout_id, transaction_id, order_name, processed_date, payout_date, type, net_amount, currency.

File B: bank statement CSV

Suggested fields: bank_date, description, reference, amount, currency.

Match rules

  1. Exact match: payout ID if present in bank description/reference.
  2. Amount match: net payout equals bank deposit amount.
  3. Date window: payout date within 1-3 business days of bank date.
  4. Fuzzy reference match: bank description resembles payout ID or Shopify transfer reference.
  5. Grouped match: sum transaction-level net amounts by payout ID and compare to payout summary/bank amount.

Export files to keep

  • matched_shopify_payouts.csv
  • unmatched_shopify_payouts.csv
  • unmatched_bank_deposits.csv
  • amount_variances.csv
  • grouped_payout_matches.csv

FAQ

How do I reconcile Shopify payouts in Excel?

Export Shopify payouts, transaction rows, and bank statement CSVs. Normalize dates, references, signs, and amounts. Match payout IDs where available, compare net payout amounts to bank deposits, and use SUMIFS or PivotTables to verify that transaction rows add up to payout totals.

Why does my Shopify payout not equal my order total?

A payout can include processing fees, refunds, adjustments, disputes, reserves, chargebacks, and timing differences. Reconcile gross sales, fees, refunds, and net payout separately before comparing the payout to the bank deposit.

Can XLOOKUP reconcile Shopify payouts?

XLOOKUP can help when every payout has one unique bank deposit and one unique reference. It breaks down when there are duplicate amounts, missing payout IDs, date lags, or many transaction rows that roll up to one payout.

What is grouped matching in Shopify payout reconciliation?

Grouped matching means multiple transaction rows are summed and matched to one payout or bank deposit. For Shopify, many orders, refunds, and fees often roll up into a single payout amount.

What should I export after a Shopify payout reconciliation?

Keep matched payouts, unmatched Shopify payouts, unmatched bank deposits, grouped transaction matches, and amount variance files. These exports make the reconciliation easier to review and audit.

Explore more

More spreadsheet reconciliation resources

Explore pricing, reconciliation guides, and support resources for teams comparing Excel and CSV files with an audit trail.