Skip to content
Gaurav TiwariDocs

How to Sell Digital Products Without Handling Sales Tax

Updated October 19, 2026

You sell an ebook, a plugin or a template pack to buyers in dozens of countries. Each of those places may expect you to collect and file sales tax or VAT on digital goods, and the rules differ by country and by state. Most small stores either ignore it or pay an accountant more than the sales bring in.

To sell digital products without handling sales tax yourself, you sell through a merchant of record. The merchant of record is the legal seller to the buyer, so it calculates the tax, collects it and files it. Stackless connects Polar, a merchant of record, to WooCommerce, so your products, prices and orders stay in your store while Polar handles the tax side.

Stackless for WooCommerce is my all-in-one plugin for WooCommerce, and the Polar gateway is one of its modules. This guide covers the setup and the trade-offs, which matter as much as the steps.

Is a Merchant of Record Right for You

A merchant of record takes a bigger cut than a plain card processor, because it does more work. That trade usually makes sense in these cases:

  • You sell digital goods to many countries and don’t want to register for VAT or sales tax in each.
  • You’re a solo seller or a small team without an accountant who handles international tax.
  • Your products are one-time purchases or simple subscriptions.

It makes less sense when most sales are domestic and your local tax is simple, or when you sell physical goods. In those cases, Stripe or PayPal with WooCommerce’s own tax settings is cheaper.

Before You Start

  • A Polar account, with an organization set up at polar.sh.
  • Polar switched on under Stackless → Dashboard.
  • Products that are digital. Polar suits software, downloads and access, not shipped goods.

Connect Polar

  1. In Polar, go to Settings → General → Developers and create an organization access token with these scopes: products:read, products:write, checkouts:read, checkouts:write, orders:read, refunds:read, refunds:write, subscriptions:read, subscriptions:write and organizations:read.
  2. In WordPress, go to WooCommerce → Settings → Payments → Polar (Stackless) and tick Enable.
  3. Keep Sandbox on for now, and paste a sandbox token from sandbox.polar.sh into Sandbox access token.
  4. Save. Stackless confirms the connection with “Connected to [organization].”

Connect the Webhook

Webhooks keep orders, renewals and refunds in step when a buyer closes the tab before coming back.

  1. In Polar, open Settings → Webhooks and add an endpoint in the Raw format with the URL shown on your Polar settings screen, such as https://yoursite.com/wp-json/stackless/v1/polar/webhook.
  2. Select the order, refund and subscription events listed in Sell Through Polar as Merchant of Record.
  3. Copy the endpoint secret into Sandbox webhook secret, then save.

Repeat both parts with live credentials when you switch Sandbox off.

Turn Off WooCommerce Tax for These Products

This is the step that matters most. Polar calculates sales tax and VAT itself, so WooCommerce must not add its own on top, or buyers pay twice.

  1. Choose how Polar treats your prices under Prices and tax: Follow the buyer’s country, Add tax on top of my prices or My prices already include tax.
  2. Set the products you sell through Polar to a tax status of None in WooCommerce, or turn WooCommerce tax off if every product goes through Polar.

Prices still come from WooCommerce. Polar charges exactly the amount WooCommerce sends, with tax handled according to your choice above.

Each product gets Polar product (live) and Polar product (sandbox) fields with a Create in Polar button. You can leave them empty. Stackless creates the Polar product on the first sale and remembers it.

Subscriptions work too. Polar runs the renewal schedule, free trials pass through in days and each Polar charge creates a paid renewal order in WooCommerce.

Check It Works

  1. With Sandbox on, buy a product on your store. Checkout shows Polar as “Card, Apple Pay or Google Pay (Polar)” and a sandbox notice.
  2. Pay on Polar’s checkout with a test card and return to your store.
  3. Confirm the WooCommerce order is paid and shows no WooCommerce tax line.
  4. Refund it from the order screen and check the refund appears in Polar.

What It Won’t Do

  • One subscription per checkout. Polar takes a single subscription with no other items in the cart. Carts with only one-time items can hold any number.
  • No signup fees or discounted first payments on subscriptions, because Polar charges the same amount every cycle.
  • No saved cards in WooCommerce. Customers can’t change a payment method, renew early or resume a pending cancellation from My Account.
  • It isn’t tax advice. A merchant of record removes the filing work for sales it handles. Ask an accountant how it fits your own business.

If most of your buyers sit in one country and you only need local tax, a regular gateway is simpler. For selling worldwide without registering everywhere, Polar removes the hardest part of the job.

Share

Was this helpful?

Still stuck? Open a support ticket