The messiest part of running books through more than one channel isn't the selling. It's three weeks after month-end when you're staring at a Shopify payout, an Amazon settlement report, an eBay statement, and a shoebox of event receipts, trying to answer one question: how much sales tax do I actually owe, and did somebody already collect it for me?
That question is where most indie bookstores lose either money or sleep. Marketplace facilitator laws changed things — Amazon, eBay, Bookshop-style marketplaces, and most large platforms now collect and remit tax on your behalf in the states where they have obligations. But your Square register, your own Shopify storefront, your author-event table, and your school invoices usually don't. You end up with a hybrid situation where some of your sales are already handled and some are entirely on you, and if you treat them the same, you either double-pay or under-remit.
This post is narrow on purpose. It's not a general "understand sales tax" explainer. It's a working system: a per-channel taxable-activity mapping matrix, a monthly remit checklist a one- or two-person team can actually run, sample paperwork, and a vendor/invoice review SOP that catches exemptions before they become problems.
The core confusion: "collected" vs. "your responsibility"
Almost every multichannel bookstore hits the same wall eventually. You look at your total sales for the month, you know your state rate, you multiply, and you panic — because that number is way bigger than what you should actually send.
The reason: a big chunk of that revenue came through channels that already collected and remitted the tax. Amazon took it at checkout. eBay did too. If you send the state a check based on gross sales, you're paying tax that was already paid.
The opposite mistake is worse. You assume "the platforms handle it" and forget that your own website, your in-store register, and your event sales are yours to collect and remit. Those channels quietly build up a liability you never set aside cash for.
This usually happens when a store adds channels gradually. You start in-store, add Square online ordering, then list on a marketplace, then start doing off-site pop-ups. Nobody ever sat down and mapped which channel does what. The tax treatment just accumulates, undocumented, until a state notice or an accountant forces the issue.
The fix isn't complicated math. It's a clean map.
The per-channel taxable-activity mapping matrix
The single most useful document here is a matrix. One row per channel, columns that answer the only questions that matter at remit time. Build it once, update it when a channel changes, and your monthly close stops being detective work.
Never miss a sale or stock shortage again.
Bookstorely helps you manage inventory, orders, and customer relationships seamlessly.
- Integrated inventory tracking
- Customer purchase history
- Sales reporting & analytics
No credit card required
| Channel | Who collects tax? | Who remits? | Taxable items | Exemptions to watch | Data source for numbers |
|---|---|---|---|---|---|
| In-store register (Square) | You | You | New/used books (per state rules), gifts, cards, café | Resale certs (rare), tax-free holidays | Square sales tax report |
| Own website (Shopify) | You | You | Same as in-store; shipping may be taxable in some states | Out-of-state orders below nexus threshold | Shopify tax report + payout |
| Amazon | Amazon | Amazon | N/A to you in facilitator states | Non-facilitator states (verify) | Amazon marketplace tax collection report |
| eBay | eBay | eBay | N/A to you in facilitator states | Same as above | eBay tax collected report |
| Bookshop / third-party marketplace | Marketplace | Marketplace | Verify per platform | Platform-specific | Platform statement |
| Author events / pop-ups (off-site) | You | You | Books sold at table | Different local rate if another jurisdiction; consignment splits | Event settlement sheet |
| School / library invoices | Depends | You (if taxable) | Often exempt with valid cert | Exemption certificate MUST be on file | Invoice + cert file |
A few things worth flagging from real setups:
-
Shipping taxability is a genuine trap on your own website. Some states tax shipping, some don't, and some only tax it when the item itself is taxable. Shopify can handle this correctly, but the default settings are frequently wrong. Verify against your specific state, not the platform's guess.
-
Off-site events can pull a different local rate. If your store is in one city and you're selling at a festival two towns over, the combined local rate can differ. Stores that do multiple pop-ups sometimes owe tax to jurisdictions they've never registered in. Small volumes, but it's real.
-
The "data source" column is the part people skip and regret. When you sit down to file, you don't want to be deciding where the number comes from. You want the report already named.
If you're already tracking channel economics — and you should be — this ties directly into the kind of per-channel view in the unified channel profitability model. The tax matrix is a natural companion to that work. Same channel list, different lens.
The monthly remit checklist for a one- to three-person team
If the matrix is built, the monthly run is mostly report-pulling and reconciliation. Here's the sequence that works for small teams:
-
Pull the channels-you-remit reports first. Square, Shopify, and your event settlement sheets. These are the only sales where you owe. Ignore marketplace gross here — you'll verify it separately in step 4.
-
Separate taxable from exempt within those channels. In-store gift cards, resale purchases, and any invoice tied to a valid exemption certificate come out of the taxable base.
-
Split by jurisdiction if you have off-site events. Home store sales go to your primary registration; off-site pop-up sales go to wherever they legally belong. Most months this is one line. Event-heavy months it's two or three.
-
Confirm marketplaces actually collected. Don't assume — check the Amazon and eBay tax-collected reports. Confirm the collected amount is non-zero and covers the states you'd expect. A 60-second check that saves you if a platform ever misconfigures your account.
-
Reconcile collected vs. calculated. For your own channels, compare what you collected at checkout against what your rate says you should have collected. Small gaps happen — rounding, a manual discount. Big gaps mean a tax setting is wrong somewhere.
-
File and remit for your channels only. Send the state what you owe on Square + Shopify + events. Nothing for the marketplaces.
-
Archive the report set. Save every report you used, named by month, in one folder. If a notice ever comes, you reconstruct the whole month in five minutes instead of a weekend.
The reconciliation in step 5 is where most quiet errors live. One store had shipping taxed on their Shopify checkout in a state that doesn't tax shipping — collecting roughly $40–$60 a month too much for close to a year. Not catastrophic, but it's over-collection from customers, and it's the kind of thing that surfaces awkwardly during an audit. The monthly compare catches it in week one instead of a year later.
Check the Amazon and eBay tax-collected reports right after pulling your own-channel reports to catch misconfigurations quickly.
Here's a simple visual workflow you can use to onboard staff or confirm you're running the steps in order.
If you already run a tight monthly per-order review — the kind of line-level discipline in the per-order margin waterfall — you're most of the way there. The same instinct to trace each order to its true cost applies here. Every exempt sale should trace back to its certificate.
Paperwork examples you actually need on file
The documents don't have to be fancy. They have to exist and be findable. Minimum kit:
-
A tax-settings snapshot per channel. A dated screenshot or note of how tax is configured in Square and Shopify. When something changes, you have a record of what it was before.
-
Exemption certificates, filed by customer. For every school, library, church, or reseller you sell to tax-free. No cert, no exemption — you're liable for that tax even if the customer swears they're exempt.
-
Event settlement sheets. One per off-site event
gross sales, tax collected, jurisdiction, consignment splits if any.
-
A monthly remit worksheet. The one-page summary showing taxable base by channel, tax owed, and what you filed. This is your audit trail.
-
Marketplace tax-collected statements. Downloaded and saved even though you don't remit them — they're your proof the platform handled it.
The exemption certificate piece deserves some emphasis. The most common failure isn't fraud — it's a valid nonprofit or school that placed an order, got charged (or not charged) inconsistently, and no certificate ever made it into the file. When an auditor asks for proof of the exemption, "they told me they were tax-exempt" isn't an answer. A certificate on file is.
The vendor/invoice review SOP that captures exemptions and ties to POS data
This is the piece that separates a store that survives an audit calmly from one that scrambles. On the sales side you're collecting tax; on the purchase side you're claiming resale exemptions when you buy inventory. Both need to reconcile, and both need to tie back to your POS and channel data.
Sales-side (exemptions you granted):
-
Every exempt sale this month has a matching certificate on file. If not, flag it and either collect the cert or treat the sale as taxable and remit.
-
Exempt sales in your POS are actually coded exempt, not just discounted to zero tax. A discount and an exemption look similar on a receipt but reconcile completely differently.
-
School and library invoices match the SOP terms — the exemption is only as good as the paperwork behind it.
Purchase-side (exemptions you claimed):
-
Inventory purchases you bought for resale used your resale certificate, so you weren't charged tax on them. Confirm your distributor invoices reflect that.
-
Anything you bought for store use — supplies, fixtures, packing materials — you should have paid tax on. If a vendor didn't charge it, you may owe use tax. This is the most overlooked line in small-retail tax.
The tie to POS and channel data is what makes this trustworthy. Your exempt-sale total in the POS should equal the sum of the certificates you're relying on. If the POS says $3,100 in exempt sales but your certificate file only supports $2,400, you have a $700 gap to explain — and it's far better to find it yourself in the monthly review than to have someone else find it later.
If you already run a tight monthly per-order review — the kind of line-level discipline in the per-order margin waterfall — you're most of the way there. The same instinct to trace each order to its true cost applies here. Every exempt sale should trace back to its certificate.
A real scenario
A two-location-plus-online indie — one physical store, Shopify, Amazon, and about a dozen off-site events a year — was remitting based on a rough monthly guess. They'd take total non-Amazon sales, apply their home rate, and send it. No jurisdiction split for events, no reconciliation of collected vs. calculated.
Two problems surfaced once they built the matrix and ran a proper monthly close. First, they'd been slightly over-remitting on their own website because shipping was set to taxable in error — around $50 a month leaking out. Second, and bigger, several event sales had happened in a neighboring jurisdiction with a higher combined rate that they'd never accounted for. Over roughly a year of events, the under-collected amount was somewhere in the low four figures — the kind of gap that turns into penalties and interest if a state finds it first.
After switching to the matrix-plus-checklist workflow, the monthly close for tax dropped to under an hour, the shipping setting got fixed, and event sales got mapped to the right jurisdictions going forward. The win wasn't revenue — it was risk. They stopped guessing and built a paper trail that makes an audit boring instead of frightening.
When this level of rigor makes sense — and when it's overkill
If you sell only in-store in one jurisdiction, you don't need a matrix. Your POS handles it and you file one number.
The matrix earns its keep the moment you have two or more channels with different tax treatment — which for most indies means the day you add a marketplace or start doing off-site events. That's the tipping point where "just multiply gross by the rate" stops being correct and starts being a liability.
It's also worth the effort if you sell to schools, libraries, or nonprofits with any regularity. Exemption handling is where small retailers get burned most often, and the fix is almost entirely paperwork discipline, not tax expertise.
Where it's genuinely a bad idea: don't build an elaborate spreadsheet with formulas for every possible state if you only touch one or two. Over-engineering the tax workflow is its own form of wasted time. Match the system to your actual channel footprint.
Bringing it together
The whole point of the mapping matrix is to answer one question before it becomes urgent: for every dollar that came in this month, do I owe tax on it, or did someone already collect it? Get that mapped, pull the right reports, reconcile collected against calculated, and keep the certificates on file.
The stores that handle this well aren't the ones with tax expertise. They're the ones who wrote down which channel does what and then followed the same short checklist every month. That's the difference between a five-minute audit response and a lost weekend. Set the matrix up once, run the checklist monthly, and file only what's actually yours.
The stores that handle this well aren't the ones with tax expertise. They're the ones who wrote down which channel does what and then followed the same short checklist every month. That's the difference between a five-minute audit response and a lost weekend.
Set the matrix up once, run the checklist monthly, and file only what's actually yours.
Ready to elevate your bookstore’s operations?
Join 500+ bookstores using Bookstorely to boost sales, optimize stock, and delight book lovers.