Naar hoofdinhoud springen

Print-on-Demand Bookkeeping: COGS, Fulfillment Fees, and Sales Tax Nexus Explained

8 min leestijdMike ThriftMike Thrift
Print-on-Demand Bookkeeping: COGS, Fulfillment Fees, and Sales Tax Nexus Explained

A print-on-demand seller opens their Shopify Payments 1099-K in February and finds a number that looks nothing like what they actually earned. The form says $50,000 in gross payments. Their bank account grew by about $14,000 over the year. Nothing is wrong — but if they report that $50,000 as income without understanding where the other $36,000 went, they'll either overpay the IRS by a wide margin or panic that something's been stolen.

That gap is the single most common bookkeeping mistake print-on-demand (POD) sellers make, and it comes from a detail almost nobody explains clearly: the platform you sell on determines which taxes you owe and how you're allowed to account for your costs. Get that distinction wrong and everything downstream — your COGS, your sales tax filings, your Schedule C — breaks in ways that are hard to catch after the fact.

Two Business Models, Two Completely Different Tax Pictures

2026-07-10-print-on-demand-business-bookkeeping-cogs-fulfillment-fees-sales-tax-nexus-guide

Print-on-demand covers a wide range of setups, but for bookkeeping purposes there are really only two models, and they behave nothing alike.

Model A: You're the merchant of record. You run your own storefront — Shopify, WooCommerce, or a self-hosted Etsy shop — and connect a fulfillment partner like Printful or Printify through an integration. The customer pays you directly. You then pay the fulfillment company a base production cost per item. You are legally the seller, which means you carry the sales tax obligation and you get to deduct real cost of goods sold.

Model B: You're a royalty recipient. You upload designs to a marketplace like Redbubble, Merch by Amazon, TeePublic, Society6, Zazzle, or Spring. The marketplace prices the product, handles the transaction, manufactures and ships it, and pays you a per-sale royalty. You never touch a sales tax return, and — this is the part sellers often get wrong — you have no deductible cost of goods sold, because you never paid for the goods. Your entire "product cost" is baked into the marketplace's cut before you ever see the royalty.

Confusing these two models is where most POD bookkeeping errors start. A seller who assumes their Redbubble royalty income works the same way as their Shopify store income will either invent a COGS deduction they're not entitled to, or fail to register for sales tax permits they actually need.

How COGS Actually Works for Model A Sellers

If you're running your own storefront through Printful or Printify, the fee you pay for blank product, printing, and packing is legitimate cost of goods sold — but it has to land in the right place on your books.

On Schedule C, that means:

  • The base production cost goes in Part III, Line 36 (purchases).
  • Shipping costs charged by the fulfillment partner typically belong in Part III, Line 38 (other costs) or get folded into COGS depending on how your bookkeeping software categorizes it — the key is consistency, not which exact line.
  • Ending inventory is $0. Print-on-demand is made-to-order by definition. You never hold physical stock, so there's no inventory valuation step at year-end the way a traditional retailer has to do.

The practical error to watch for: a lot of sellers record the revenue from a sale the moment Shopify Payments deposits it, but forget to separately record the fulfillment invoice Printful or Printify charges a few days later, often in a different batch and sometimes in a different month. If your books only capture the deposit side, your P&L looks artificially profitable until the fulfillment bill catches up — and by the time you notice, you may have already filed a quarter's estimated taxes based on the inflated number.

The fix is mechanical but essential: reconcile every payout against the matching fulfillment invoice before you close the books for that period, not after.

Multi-Platform Sales Tax: Why "Nexus" Means Something Different on Every Channel

This is the part that trips up sellers who sell the same designs across more than one channel — say, a Shopify store and an Etsy shop and a Redbubble account.

Marketplaces (Model B) are marketplace facilitators. Etsy, Redbubble, Amazon Merch, and similar platforms are legally required to calculate, collect, and remit sales tax on your behalf in every state that requires it. You don't register, you don't file, you don't touch it.

Your own storefront (Model A) is not automatically covered. Shopify itself is not a marketplace facilitator for orders placed through your own domain — you carry that responsibility yourself, state by state, based on where you've crossed economic nexus thresholds. (Shopify's separate "Shop" app channel began collecting and remitting tax on qualifying orders starting in 2025, but that only applies to sales made through that specific channel — not your primary storefront.)

That means a single seller can legitimately owe sales tax registration and filings in one state through their Shopify store, while owing absolutely nothing on the identical product sold through Etsy or Redbubble in that same state. Bookkeeping has to track which channel generated each sale, not just total revenue, or you'll either register for permits you didn't need or — worse — miss ones you did.

There's a second layer specific to POD: the fulfillment fee itself can be taxable. If you don't submit a resale certificate to Printful or Printify, they'll charge you sales tax on the wholesale production cost — tax you then can't legally recover, since you're not the end consumer. Submitting a resale certificate (through the platform's tax settings, using either a state-specific certificate or the Multistate Tax Commission's uniform form, accepted in most states) prevents that double-taxation and is worth doing before your first sale, not after you notice an unexplained charge on an invoice.

Reconciling Payouts to Fulfillment Invoices Without Losing Your Mind

The core operational challenge in POD bookkeeping isn't complicated math — it's timing mismatches across systems that were never designed to talk to each other cleanly:

  1. A customer pays Shopify or Etsy. That payment settles through Shopify Payments, Stripe, or Etsy Payments on its own schedule (often 2–5 business days later, batched with other orders).
  2. The order routes to Printful or Printify, which invoices you separately — sometimes per order, sometimes in a batch — often on a different schedule than the payout.
  3. If you sell on multiple channels, each one produces its own payout report, its own fee structure, and its own timing, all pointing back to the same fulfillment partner.

Without a deliberate process, it's easy to record the payout as revenue and never trace it forward to confirm the matching fulfillment cost actually posted. A simple habit that solves most of this: before closing any month, pull the fulfillment partner's order-level cost report and match it line-by-line against the channel payout reports for that same period. Anything that doesn't match — an order that shows a customer payment but no corresponding fulfillment charge, or vice versa — is either a timing difference that will resolve next period, or a real error worth investigating now.

This is exactly the kind of reconciliation that benefits from records you can actually audit rather than a black-box dashboard. When your fulfillment invoices, channel payouts, and sales tax collected are all recorded as plain-text transactions with clear references back to the source order, tracing a mismatch takes minutes instead of an afternoon of exporting CSVs from three different platforms.

What About 1099s?

Since Model A sellers are merchants of record, Printful and Printify don't issue you a 1099 at all — your 1099-K, if you receive one, comes from your payment processor (Shopify Payments, PayPal, Stripe) based on gross transaction volume, not net income. That's the number that needs the COGS deduction explained above to turn into an accurate profit figure.

Model B marketplaces vary: Amazon Merch and Zazzle issue 1099s directly for royalty income above the reporting threshold; others, including Redbubble, TeePublic, and Society6, route payouts through PayPal or Payoneer, which issue the 1099-K instead if the threshold is met. Either way, the reporting threshold only determines whether the platform has to send you a form — it has no bearing on whether the income is taxable. Every dollar of royalty or storefront profit is reportable whether or not a 1099 shows up in your inbox.

One more classification detail worth flagging: even though marketplaces often label Model B payments "royalties," the IRS treats income from an ongoing trade or business as self-employment income subject to self-employment tax — not passive royalty income — if you're actively uploading designs and running the shop as a business rather than licensing a one-off piece of intellectual property.

Keep Your Print-on-Demand Books Reconciled by Design

Whether you're running a single Shopify storefront through Printful or juggling five marketplaces at once, the sellers who avoid year-end surprises are the ones who reconcile fulfillment costs against payouts every month rather than every April. Beancount.io gives you plain-text, version-controlled accounting that makes it straightforward to track COGS, sales tax collected, and multi-channel payouts as clearly labeled, auditable transactions — no vendor lock-in, no black box. Get started for free and see why developers and finance-minded sellers are switching to plain-text accounting.