APR 18, 2026Guides

Marketplace payout reconciliation: the clearing account that makes every platform tie out

Here is the move that ends the fight: stop trying to make a marketplace deposit equal your sales. It never will, and it was never supposed to. A bookkeeper in r/Bookkeeping named the symptom exactly — "the bank deposit from Stripe/Shopify/PayPal is lower than the sales showing in QuickBooks, and then I have to dig through fees, refunds, chargebacks, and timing differences to figure out what happened." The dig is the problem. Give each marketplace its own clearing account, post the settlement report into it, and the account does the digging for you. What is left over in the balance is the only thing you ever have to explain — and most months it explains itself.

Someone asked the exact right question in r/Netsuite: "For example, for Amazon, we receive a settlement report showing all the payments for a specific period for multiple invoices. Should we create a bank clearing account for Amazon where the customer payments will be posted?" Yes. That is the answer. But the top reply just plugged a tool — "I run thousands upon thousands of records monthly through Celigo reconciliation products. Probably saves us 80 hours a month in man hours." Maybe it does. It still does not tell you how the clearing account works, or how to tell when it is lying to you. That is what is missing everywhere this gets asked, so that is what this is.

Why marketplace deposits never match QuickBooks

The most useful reply in that gateway-deposits thread gave the diagnosis in one breath: "the mismatch is usually because QBO records the gross sale amount but your bank gets the net deposit after processing fees. if you're recording both and trying to match them 1:1 they'll never line up." Correct, and it stops one step short. Knowing the deposit is net is not the same as having a way to prove a specific deposit is the right net. For that you need somewhere to land the difference.

Three structural facts make the gap permanent, and all three are normal. A payout is a batch, not a sale — the platform takes a window of transactions and wires you one number. The platform nets out its cut before paying: processing fees, refunds, chargebacks, and dispute fees all come out of the payout, and refunds you issue are deducted from the next available payout, not the one the original sale was in. And the cash lands days late — a Stripe payout settles a day or two after the charges it bundles, Amazon settles roughly every two weeks. A bookkeeper pricing a WooCommerce client summed up the moving parts better than any vendor page: "the painful part is the settlement mess: shopify / woocommerce reports, paypal, cards, zelle/cashapp, fees, refunds, holds, bank deposits, and clearing balances." Note the last two words. The people who have done this already think in clearing balances. We are just going to make it deliberate. (For the Shopify-specific version of this gap, see why Shopify deposits never match your sales.)

The fix: one clearing account per marketplace

A clearing account is a holding account on your books for money that is in motion — earned but not yet settled to cash. Give each platform its own: Amazon Clearing, Stripe Clearing, PayPal Clearing, Shopify Payments Clearing. You book gross sales as revenue and route the receivable through that platform's clearing account. Every deduction the settlement report lists — fees, refunds, chargebacks, reserves — also posts to that clearing account. When the payout lands, the deposit clears it. The deposit no longer has to match your sales; it only has to clear an account whose balance you can read.

This is not a clever trick — it is the method the platforms assume you are using. Stripe's own reconciliation docs describe the recommended setup as modeling "their Stripe balance as a temporary clearing account in their accounting system," then reconciling each payout against the batch of transactions in it. It is also the grown-up version of the QuickBooks Undeposited Funds account, which the top answer in one r/Netsuite thread explained plainly: "you accept credit card and you close your batch for the day, you get 1 deposit entry into your bank account even though you had say 20 credit card customer payments." Undeposited Funds batches one processor's payments; a named clearing account per platform does the same thing but keeps each platform's fees and reserves isolated, which is the only way the balance stays readable once you sell on more than one.

The journal entries, per platform per period

The whole method is three postings and one balance check. Booked at gross, deductions taken from the settlement report, cash clearing the rest:

Per marketplace, per settlement period
--------------------------------------
1) On sale (gross):
   Dr  Marketplace Clearing        gross sales
       Cr  Sales revenue                         gross sales

2) From the settlement report (deductions):
   Dr  Processing fees (expense)    fees
   Dr  Refunds / contra-revenue     refunds
   Dr  Chargebacks + dispute fees   adjustments
       Cr  Marketplace Clearing                  fees + refunds + adjustments

3) On payout (cash):
   Dr  Bank                         net deposit
       Cr  Marketplace Clearing                  net deposit

Clearing balance after the payout posts
   = gross - (fees + refunds + adjustments) - net deposit

   == 0   if the payout covered exactly this period with nothing held
   != 0   should equal: in-transit payouts (settled, cash not yet arrived)
                        + reserves / holds the platform is still sitting on
          anything beyond that is your exception

What the clearing balance should be (it is usually not zero)

This is the part the "record gross, deduct fees" advice never gets to. A clearing account that reads zero at month-end is not the goal, and chasing it to zero is how people waste an evening. The balance should equal the money the platform genuinely still owes you: payouts that have been earned but not yet wired (in transit), plus any reserve or hold the platform is sitting on. Reserves and rolling holds are normal — that money is yours, it just has not moved yet. So you reconcile the balance, not the deposit: take the clearing balance, subtract what you can account for as in-transit and reserves, and whatever remains is the only thing worth your attention.

Reconcile a marketplace payout, step by step

Same shape for every platform — only the report column names change. If a sync already posts these entries for you, the steps become a verification instead of data entry, which is exactly what you want to be doing.

  1. Pull two files: the settlement / payout report for the period (Stripe's payout reconciliation report, Amazon's flat-file settlement, your Shopify Payments payout export) and your bank transactions.
  2. Clean the exports first. A payout ID that Excel autoconverted to a number, a comma-as-decimal, or a stray encoding mark will silently break every match downstream — these are the CSV gotchas that quietly wreck a reconciliation. The payout ID is the primary ID the whole reconciliation joins on; protect it.
  3. Foot each payout on the report itself: confirm gross − fees − refunds − adjustments equals the net the platform says it paid. If the platform's own report does not foot, stop — that is a data problem to escalate, not a books problem to force.
  4. Post the three entries to that platform's clearing account (gross to revenue, deductions from the report, net deposit from the bank) — or let your tool post them and spot-check one period by hand.
  5. Match each net payout on the report to a bank line, on amount and date, or on payout ID if the bank line carries one. This is the cash-side tie-out covered in bank reconciliation, step by step.
  6. Read the clearing balance. Subtract known in-transit payouts and reserves. The remainder is your exception list for the period — work only those rows. A clean close is a balance you can fully explain, not a balance of zero.

A worked example: one settlement period

Say a marketplace settles a two-week window. The report breaks down like this, and the deposit that hit your bank was 4,310:

Settlement lineAmountPosts to
Gross product sales6,200Dr Clearing / Cr Revenue
Processing + platform fees(930)Dr Fees / Cr Clearing
Refunds settled this period(540)Dr Refunds / Cr Clearing
Chargeback + dispute fee(120)Dr Chargebacks / Cr Clearing
Reserve held by platform(300)stays in Clearing (not paid yet)
Net deposit to bank4,310Dr Bank / Cr Clearing

Gross 6,200, minus fees 930, refunds 540, chargebacks 120, and a 300 reserve the platform held back, leaves 4,310 — which matches the deposit. After all three entries post, the clearing account is not zero; it holds 300. That 300 is the reserve, and it is supposed to be there. You did not lose it and you do not chase it. When the reserve releases next period, that payout clears it and the balance returns to whatever the new in-transit amount is. The reconciliation is done the moment you can say, in one sentence, what the balance is.

When the clearing account will not tie

When the leftover balance is bigger than your known reserves and in-transit, it is almost always one of a short list. An Amazon seller in r/FulfillmentByAmazon described the lived version — "payments come in but when it's time to reconcile, things just don't line up. Delays, mismatched payouts, and manual back-and-forth every week." The usual culprits:

  • The payout window straddles month-end — sales in one month, cash in the next. That is in-transit timing, not an error; it is the residual that should be there.
  • A fee or refund was booked to the wrong account, so clearing never received the credit. The clearing balance is off by exactly that fee.
  • A refund settled for a sale from a prior period that you booked net the first time, so the gross was never in clearing to net against.
  • A sync double-posted the payout, or dropped one — common when an integration "runs" but silently skips records. See reconciling Shopify orders against your ERP for the dropped-record pattern.
  • FX: the sale, the fee, and the settlement converted at different rates, leaving a real-looking gap that is just revaluation. That is its own discipline — see multi-currency reconciliation.

What about A2X, Synder, Celigo?

They automate exactly this. A2X is the community default for posting Shopify and Amazon settlements to QuickBooks or Xero; Synder gets named when a native integration breaks; Celigo shows up for NetSuite at volume, which is what that r/Netsuite reply was praising. They all do the same job under the hood — parse the settlement report and post the clearing-account journal entries so you do not key them by hand. That is a fair trade and often worth it. The reason to understand the method anyway is simple: a tool that posts entries you cannot read is a tool you cannot audit. Know what the clearing balance should be, and you can check the tool instead of trusting it — which is also the first thing an auditor will ask you to show.

Where this method tops out

One clearing account per platform is the right tool for a handful of platforms and a monthly or weekly close. It strains when you are running many marketplaces at once, when you need daily cash visibility rather than period-end truth, when reserves are multi-currency, or when an auditor wants the trail across thousands of individual payouts. At that point the per-platform balance is still correct, but reading it by hand stops scaling — the same way a spreadsheet does once the partial payments and bundled deposits pile up. The structure does not change when you outgrow doing it by hand; only who does the posting does. Get the clearing accounts right first, and every later tool — or model — has something correct to check itself against.

Frequently asked questions

Should I record marketplace sales at gross or net?

Gross. Book the full sale as revenue and route it through the platform clearing account, then post fees, refunds, and chargebacks separately from the settlement report. Recording only the net deposit hides what you paid in fees and makes per-product margin analysis impossible, because you can no longer see what each sale actually cost you to collect.

Do I need a separate clearing account for each marketplace?

Yes, one per platform or processor. A single shared clearing account mixes Amazon reserves with Stripe fees with PayPal holds, and the balance becomes unreadable — you cannot tell which platform owes you what. A separate account per platform keeps each balance meaningful, which is the entire point of the method.

Why is my clearing account not zero at month-end?

It usually should not be. A clearing account holds money in motion, so at any close it should equal the payouts that have been earned but not yet wired to your bank, plus any reserve or hold the platform is still sitting on. Reconcile the balance to those known amounts rather than forcing it to zero — a balance you can explain in one sentence is a reconciled balance.

Is a clearing account the same as undeposited funds?

Same idea, different scale. Undeposited Funds is the built-in QuickBooks account for batching one processor's payments so they match a single bank deposit. A named clearing account per platform does the same batching but isolates each platform's fees, refunds, and reserves, which is what keeps the balance readable once you sell on more than one marketplace.

How is this different from just matching the deposit in my bank feed?

Bank-feed matching confirms that cash arrived and ties it to a category. It does not prove the cash equals what the platform actually owed you after fees, refunds, and reserves. The clearing account proves it: gross in, deductions out, deposit clears the rest, and the leftover balance is the exact amount still in transit or held. Bank matching tells you money showed up; the clearing account tells you the right amount showed up.