Now in open beta — close the books in 2 days, not 2 weeks.Read the case study →
E-commerce · January 29, 2026 · 10 min read

Shopify payouts reconciliation: the correct way

A Shopify payout is not revenue. It is a net settlement of orders, fees, refunds, chargebacks, and reserves over a window. If you book it as a single deposit you will misstate revenue and over-report cash. This guide walks the correct journal flow and the auto-reconciliation Nonari runs against the payout report.

What a Shopify payout actually contains.

A payout is the net of every charge and debit Shopify processed during the payout window. The deposit that hits your bank looks like one number, but the payout report decomposes it into gross sales, processing fees, refunds, chargebacks, gift card sales, adjustments, and reserve releases. If you only book the bank deposit you have effectively buried five separate accounts inside one revenue line.

For a DTC brand running a USD storefront alongside a GBP one for European customers, the problem compounds. The amount that lands in your home-currency bank is the gateway-rate conversion of the foreign-currency payout, minus FX spread. So you also have an FX gain or loss baked into the same single number. Treating it as revenue means your top line moves with currency markets, which is wrong.

The clearing account pattern.

The cleanest model is a Shopify gateway clearing account, sometimes called Shopify Payments Receivable. Every Shopify order debits this clearing account at gross. Every fee, refund, and chargeback during the window credits or debits the clearing account. When the payout settles, the bank deposit clears the balance. Your clearing account should approach zero between payouts, not stay materially positive or negative.

On a $124 order with a 2.9% Shopify Payments fee and 30c per-transaction charge, you would debit Shopify clearing $124.00, credit Sales $124.00. When the payout settles, you debit Bank $120.31, debit Processing fees $3.69, credit Shopify clearing $124.00. Now revenue is intact, fees are visible, and clearing is flat.

Two paired entries — order day + payout day · $124 saleDEBITCREDITShopify clearing (at order)124.00Sales (at order)124.00Bank (at payout)120.31Shopify clearing (at payout)124.00Processing fees3.69TOTAL DR248TOTAL CR248
Revenue intact, fees visible, clearing closes to zero. The payout becomes a settlement, not a sale.

Refunds inside the payout window.

Refunds inside the payout window are the most common reconciliation breaker. A merchant sees a smaller deposit and assumes a fee anomaly. In reality, a customer refund has been netted against the payout. The correct entry mirrors the original sale: debit Sales returns, credit Shopify clearing for the refunded amount, and reverse the COGS using the same WAC that posted on the order. Nonari does this automatically the moment the refund webhook fires, not at month end.

If the refund is partial, only the refunded units flow back into inventory. If shipping was not refunded, only the merchandise line reverses. Stores that book refunds as a flat negative sale lose all of this granularity and end up with inventory ledgers that diverge from the books.

Original orderDR clearing / CR revenue + COGSRefund webhookReverse same accounts at original WACPayout dayNet refund credit clears against depositClearing → 0Account closes at payout
Refunds reverse symmetrically. Booking refunds as flat negative sales hides the inventory side and breaks the ledger.
  • Original sale: debit clearing, credit revenue, debit COGS, credit inventory
  • Refund: debit returns, credit clearing, debit inventory, credit COGS at original WAC
  • Partial refund: only the refunded units restock; shipping handled separately
  • Restocking fee: credit a separate income line, do not net against returns

Chargebacks and the disputed-funds account.

Chargebacks deserve their own account. When a chargeback opens, Shopify deducts the disputed amount plus a chargeback fee from the next payout and holds it. If you win, the funds come back. If you lose, they stay gone. Booking it straight to bad debt expense on day one is wrong because the outcome is unknown.

Use a Disputed funds receivable account. On dispute open, debit Disputed funds receivable, credit Shopify clearing for the disputed amount. Book the chargeback fee to processing fees immediately, since that is non-refundable. On dispute resolution, either reverse Disputed funds receivable back to clearing (you won) or move it to bad debt expense and reverse the original sale (you lost).

Gift cards do not belong in the payout.

A Shopify gift card sale is a deferred revenue event, not a sale. The cash from a gift card sale flows through the same payout but it is a liability until redemption. The payout report flags gift card sales separately. If you book the entire payout as revenue, you have just recognized revenue that you owe back to the customer as merchandise.

On a $50 gift card sale, debit Shopify clearing $50, credit Gift card liability $50. When the gift card is redeemed against an order, debit Gift card liability $50, credit Sales $50 (and post COGS as normal). Breakage, the portion that will never be redeemed, is recognized as income on a schedule, not at sale.

Adjustments, reserves, and FX noise.

The payout report has line items most merchants ignore: adjustments, reserve holds, reserve releases, and currency conversion. Adjustments are usually fee corrections from Shopify support tickets. Reserves are funds Shopify holds for risk; they show as a debit on one payout and a credit later. Currency conversion lines appear on multi-currency stores when the storefront currency differs from the payout currency.

For a US merchant taking GBP on a UK market, the GBP-to-USD conversion done by the gateway often differs from the rate your US bank applies on receipt. That spread is a realized FX gain or loss. It belongs in a Foreign exchange gain/loss account, not in revenue and not in fees. If you skip this step, your gross margin walks every quarter for no operational reason.

How Nonari auto-reconciles every payout.

Nonari ingests the Shopify payout report directly. Each payout is matched to the orders, refunds, chargebacks, and adjustments inside the window. The journal entry posts against the gateway clearing account automatically: gross at order time, fees and disputes at payout time, FX delta at bank receipt. The clearing account closes to zero on every payout, and any drift surfaces as a reconciliation exception you can click into.

Because the Shopify connection is per-online-branch and the API credentials are AES-256-GCM encrypted at rest, you can run multiple storefronts (USD for North America, GBP for the UK, EUR for the EU) under one Nonari org without mixing their books. Each storefront becomes its own branch with its own clearing account, its own payout schedule, and its own revenue recognition.

A monthly close checklist.

Before closing the month, walk every payout in the period. Confirm each clearing account is at or near zero. Investigate any payout where fees deviate more than 0.3 percentage points from the merchant pricing. Confirm refund counts in the payout match refund webhooks. Confirm gift card balances on the books match the Shopify gift card report. Confirm chargeback receivables are aged and a decision exists for each.

A merchant doing 1,000 orders a month should be able to close Shopify books in under an hour using this pattern. The merchants who take a week are usually trying to reverse-engineer one number into many. With a clearing account and a payout-aware ledger, the work is already done by the time you sit down.

Frequently asked

Common questions.

Should I book the Shopify deposit as revenue?

No. The deposit is net of fees, refunds, chargebacks, and reserves. Book gross sales at order time against a Shopify clearing account, then clear it when the payout settles.

Where do Shopify Payments fees go?

A Processing fees expense account, posted at payout time when the fee is realized. Do not net them inside revenue.

How do I handle USD/GBP conversion on a UK storefront?

Sales post in the storefront currency at the order rate. The bank deposit clears the clearing account in your functional currency. The difference between gateway conversion and bank receipt is realized FX gain or loss.

Does Nonari handle multi-storefront merchants?

Yes. Each Shopify storefront is its own branch with its own connection, its own clearing account, and its own books. Credentials are encrypted at rest with AES-256-GCM.

How often should the clearing account hit zero?

Every payout window. If it is non-zero between payouts, you have an in-flight order or refund. If it stays non-zero across multiple payouts, you have a missing entry.

Try nonari

Put your books on autopilot.

Free to start. No credit card. Bring your books, kick the tires, export everything if you decide to leave.