October 17, 2026 · 9 min read
Bookkeeping for E-commerce Sellers: Shopify, Amazon, Stripe and PayPal Reconciliation
By 909 Bookkeeping
How to track sales, fees, refunds and payouts for an online store that sells on Shopify, Amazon, Stripe and PayPal. Match each payout to the bank and tie sales to the channel so your profit per store is real. Plain English from 909 Bookkeeping.
What online store books need to track
An online store does not have one cash register. It has a few. Shopify is one. Amazon is another. Stripe and PayPal move the money. Each one takes a fee. Each one sends you a payout that rolls many orders into one deposit.
Your books need to track the sale, the fee, the refund and the shipping for each channel. When you do, you can see what each store really made. When you do not, you get one big deposit and no way to tell which channel paid and which one cost you.
Most online sellers run two or three channels at once. A sale on Shopify might clear through Shopify Payments. A sale on Amazon might clear through Amazon. A sale on your own site might run through Stripe or PayPal. Each path is a little different, and each one takes a fee on the way out.
Here is what a clean channel looks like.
| Line | What it means |
|---|---|
| Gross sales, Shopify | The total of orders on Shopify before fees |
| Shopify fees | The amount Shopify took out of the payout |
| Refunds, Shopify | The money sent back to customers |
| Net deposit, Shopify | The cash that landed in your bank |
When each line ties to the channel, your profit per store is real. When the lines sit in one pile, you can not tell which store made money.
How Shopify payouts show up in your books
Shopify sends you a payout on a set schedule. It might be every day or every week. The payout lumps every order in that window into one deposit. It also takes out its fees before the money moves.
The clean way is to record the gross sales, the fees and the net deposit as three lines. The gross sales show what you sold. The fees show what Shopify kept. The net deposit is the cash that hit your bank. When all three match, the channel is clean.
The messy way is to record only the deposit and call it sales. Now your sales look smaller than they were, and the fees do not show at all. Your profit per sale looks fine, but you can not see what the fees cost you. Over a year, those fees add up to a big number that sits nowhere.
Here is how to keep Shopify clean.
- **Record gross sales by channel: ** the total of orders before fees.
- - **Record the fees as a cost: ** the amount Shopify took out.
- - **Match the net deposit to the bank: ** the cash that landed should equal the payout.
- - **Tag every line to Shopify: ** so the channel shows its own profit.
- - **Check the payout schedule: ** know when the money moves so you can match it.
How Amazon payouts show up in your books
Amazon works a little differently. Amazon holds the money, takes its fees, takes its referral cut, and may add storage or ad fees. Then it sends you one payout. The payout has many lines inside it, not just sales and fees.
The clean way is to pull the Amazon settlement report. The report breaks the payout into sales, fees, refunds and more. You record each kind of line in its own account. The net of all of them should match the cash that hit your bank.
The messy way is to book the Amazon deposit as one sale and move on. Now the Amazon fees do not show. The refunds do not show. The storage fees do not show. Your books miss a big part of what it costs to sell on Amazon.
Here is how to keep Amazon clean.
- **Pull the settlement report: ** it breaks the payout into each kind of line.
- - **Record sales, fees and refunds as their own lines: ** not one lump.
- - **Watch the ad and storage fees: ** they are costs, not part of sales.
- - **Match the net to the bank: ** the sum of all lines should equal the deposit.
- - **Tag every line to Amazon: ** so the channel shows its true profit.
How Stripe and PayPal payouts show up
Stripe and PayPal are the payment processors. They move the money from your customer to your bank. Each one takes a fee on the way. When a customer pays on your site, Stripe or PayPal runs the card, keeps its fee, and sends you the rest.
The clean way is to record the gross charge, the fee and the net payout. The gross charge is the sale. The fee is the cost. The net payout is the cash. When the net payout matches the bank deposit, the processor is clean.
The messy way is to book only the net payout and skip the fee. Now your sales are understated and your fees are invisible. The fee is real money that left the sale before it reached you, and it belongs in the books.
Here is how to keep Stripe and PayPal clean.
- **Record the gross charge: ** the full amount the customer paid.
- - **Record the fee: ** the amount the processor kept.
- - **Match the net to the bank: ** the cash that landed should tie out.
- - **Keep Stripe and PayPal apart: ** each gets its own lines.
- - **Watch for holds and reserves: ** some processors hold cash back for a while.
How to reconcile a payout to the bank
Reconciliation means matching the payout to the bank. The payout report says the deposit should be a certain amount. The bank shows what actually landed. When the two match, the channel is clean. When they do not, something is off.
Start with the payout report. Find the net deposit amount. Then find that same amount in the bank. If it matches, the payout is cleared. If it does not, look for a fee you missed, a refund that came back, or a payout that is still on the way.
Here is a simple reconciliation check.
- **Pull the payout report for the period: ** Shopify, Amazon, Stripe or PayPal.
- - **Find the net deposit amount: ** the cash the report says moved.
- - **Find that amount in the bank feed: ** the deposit that landed.
- - **Clear the match: ** tie the payout to the bank line.
- - **List anything that does not match: ** a fee, a refund or a late payout.
When the payout matches the bank, the channel is closed for the month. When it does not, the gap is the first thing to fix.
How refunds and returns work in the books
Refunds happen on every online store. A customer sends an item back. You give the money back. The refund is not a cost. It is a sale that went away.
The clean way is to record the refund as a negative sale on the same channel it came from. The sale goes down. The fee you paid on that sale might come back too, or it might not. Either way, the refund shows on the channel, not in a pile.
The messy way is to book the refund as an expense. Now your sales look fine and your costs look high. Your profit per channel is wrong because the sale never really went away in the books.
Here is how to keep refunds clean.
- **Record refunds as negative sales: ** not as expenses.
- - **Keep the refund on the same channel: ** Shopify refunds stay on Shopify.
- - **Watch the fee on the refund: ** some processors return it, some do not.
- - **Track returns separately if you resell: ** returned stock goes back to inventory.
How the month end close works
At month end, every channel needs its lines added up. The gross sales, the fees, the refunds and the net deposits all pull together. The net deposits should match the bank. The gross sales minus the fees and the refunds should match the net.
We start with the bank. We match each payout to the deposit that landed. We pull the settlement reports for Amazon. We record the fees and the refunds for each channel. Then we tie the gross sales to the channel. We send you the profit and loss report and a balance sheet. The channel totals sit inside the report.
Here is a simple month end check.
- **Match each payout to the bank: ** every deposit cleared.
- - **Confirm fees are recorded: ** no fee left out.
- - **Confirm refunds are on the right channel: ** not in expenses.
- - **Add up the channel totals: ** what each store really made.
- - **Read the whole company profit and loss: ** to see all channels together.
A situation we clean up
The Shopify deposits that did not match
An online seller runs a Shopify store and an Amazon store. Every Shopify deposit lands in one sales account. Every Amazon deposit lands in the same account. No fees are recorded. No refunds are recorded. At month end, the books show one big pile of sales, and the bank shows deposits that do not match the books. The owner can not tell which store made money.
Here is how we handle it. We pull the Shopify payout reports for the month. We record the gross sales, the fees and the net deposit for each payout. We pull the Amazon settlement reports. We record the sales, the fees and the refunds as their own lines. We match each net deposit to the bank. When we are done, the owner can see what Shopify made and what Amazon made, and the bank matches the books. We set up a rule so the next payout lands on the right channel from the start.
Mistakes we fix
- Payouts booked as one lump with no fee line
- Fees left out so the net deposit is the only number
- Refunds booked as expenses instead of negative sales
- Shopify and Amazon sales mixed in one account
- Amazon settlement reports ignored so the fees are missing
- Stripe and PayPal fees not recorded
- No match between the payout report and the bank
- Returns not tracked so inventory is off
Common questions
Do I record the payout or the gross sale? You record both. The gross sale is what you sold. The fee is what the processor kept. The net payout is the cash. All three belong in the books.
How do I handle Amazon fees? Pull the settlement report. It breaks the payout into sales, fees, refunds and more. Record each kind of line in its own account. The net of all of them should match the bank.
Where do refunds go? Refunds go as negative sales on the same channel they came from. They do not go in expenses. When you book a refund as a negative sale, your sales go down and your profit per channel stays right.
Do I need to track each channel separately? Yes. When each channel has its own lines, you can see which store made money. When they all sit in one pile, you are guessing.
