Home » Sales Tax » Collecting Sales Tax

How to Collect Sales Tax on Your Online Store

Collecting sales tax on your online store means configuring your ecommerce platform to automatically calculate the correct tax rate for each transaction based on the customer's shipping address, your nexus status in that state, and the taxability of the products being purchased. Every major platform handles the mechanics of charging tax at checkout, but the accuracy of those calculations depends on how you set up your tax configuration.

Understanding Destination-Based Collection

The vast majority of states use destination-based sourcing for ecommerce sales, meaning the tax rate is determined by the customer's shipping address, not your business location. If a customer in Chicago, Illinois orders from your store, you charge the combined Illinois state rate (6.25%) plus the Cook County rate plus the City of Chicago rate, for a total combined rate of 10.25%. A different customer in Springfield, Illinois pays a different combined rate because the local tax components are different. This address-level precision is why manual rate management is impractical for stores with customers across multiple states.

A small number of states use origin-based sourcing for in-state sales. If you are physically located in Texas (an origin-based state) and sell to a Texas customer, you charge the tax rate at your business location, not the customer's address. However, if you are an out-of-state seller with economic nexus in Texas, you use destination-based sourcing. The origin-based rule only applies to sellers located within the state. Origin-based states include Arizona, California (for district taxes), Illinois (partially), Mississippi, Missouri, Ohio, Pennsylvania, Tennessee, Texas, Utah, and Virginia.

Step-by-Step Setup

Step 1: Enable tax collection for your nexus states.
In your ecommerce platform's tax settings, turn on sales tax collection for every state where you hold a valid sales tax permit. Do not enable collection for states where you do not have nexus, as collecting tax without a permit is illegal and creates complications with both the state and your customers. On Shopify, go to Settings, then Taxes and Duties, and enable US tax collection for specific states. On WooCommerce, go to WooCommerce Settings, then Tax, and add tax rates by state.
Step 2: Choose your tax calculation method.
You have two options: your platform's built-in tax engine or a third-party tax service. Shopify Tax, which is included with every Shopify plan, provides rooftop-accurate rate lookups for US addresses at no additional cost. WooCommerce requires either manual rate entry or a plugin like TaxJar or Avalara for automated rate calculation. BigCommerce integrates with Avalara for automatic tax calculation. For stores collecting in 5 or fewer states selling standard taxable products, a built-in engine typically works fine. For stores in more states or selling products with complex taxability (food, clothing, digital goods, SaaS), a dedicated service like TaxJar or Avalara provides more accurate results.
Step 3: Assign product tax categories.
Not every product is taxed the same way in every state. Clothing is exempt in Pennsylvania, New Jersey, and Minnesota. Groceries are exempt or reduced-rate in many states. Digital products have varying taxability by state. Your tax calculation system needs to know what type of product each item is so it can apply the correct taxability rules. In Shopify, you can assign product tax codes under each product's tax settings. In TaxJar and Avalara, you map your products to their tax category databases. If all your products are standard tangible goods and you do not sell food, clothing, or digital products, the default "taxable" category works for everything.
Step 4: Configure shipping tax rules.
Approximately half of US states tax shipping and handling charges, while the other half exempt them. States that tax shipping include Arkansas, Connecticut, Hawaii, Kansas, Kentucky, Michigan, Minnesota, Mississippi, Nebraska, New Jersey, New Mexico, New York, North Carolina, North Dakota, Ohio, Pennsylvania, South Carolina, South Dakota, Tennessee, Texas, Vermont, Washington, West Virginia, and Wisconsin. The rules vary further: some states only tax shipping when it is not separately stated on the invoice, and some only tax the shipping on taxable products. Your tax calculation service handles this automatically if configured correctly. If you are managing tax manually, you need to look up each state's rule on shipping taxability.
Step 5: Test your configuration with sample orders.
Before going live, place test orders with shipping addresses in several of your nexus states. Verify that the tax rate shown at checkout matches the expected combined state and local rate for that address. Check at least one address in a state with no sales tax (like Oregon) to confirm no tax is charged. Check an address in a state where you do not have nexus to confirm no tax is charged. Check a state where you sell exempt products to confirm the exemption is applied. If rates are wrong, the issue is almost always an incorrect product tax category assignment or a missing state configuration.

Handling Tax-Exempt Customers

Some of your customers are exempt from sales tax, typically because they are purchasing for resale (they hold a resale certificate), they are a tax-exempt organization (nonprofit, government entity), or they qualify for a specific state exemption. When an exempt customer places an order, you need to not charge them sales tax on that transaction while still maintaining documentation of their exempt status.

The proper process is to collect a copy of the customer's exemption certificate before the first tax-free transaction, verify that the certificate is valid for the state where the order is being shipped, and store the certificate on file for at least 4 years (the typical statute of limitations for sales tax audits, though some states require longer retention). If you are ever audited, the state will ask for exemption certificates for every tax-free transaction, and transactions without valid certificates on file will be treated as taxable with the tax owed by you.

Shopify, WooCommerce, and BigCommerce all support tax-exempt customer settings. You can flag specific customer accounts as tax-exempt so that their future orders automatically exclude tax. TaxJar and Avalara also offer exemption certificate management features that store and validate certificates, which is particularly useful for B2B sellers who regularly handle exempt customers.

Tax on Discounts and Coupons

In most states, sales tax is calculated on the actual amount the customer pays after discounts and coupons, not on the original list price. If a $100 product is sold for $80 after a 20% coupon, tax is calculated on $80. However, the specific treatment depends on the type of discount. Store-issued coupons that reduce the price without any reimbursement from a third party are straightforward: tax is on the discounted price. Manufacturer coupons, where the manufacturer reimburses the retailer for the discount, are treated differently in some states, with tax calculated on the full retail price because the seller ultimately receives the full amount (retail price from customer plus reimbursement from manufacturer).

For ecommerce sellers, the vast majority of discounts are store-issued codes and automatic discounts, which means tax is calculated on the amount the customer actually pays. Your ecommerce platform handles this correctly by default, calculating tax on the post-discount subtotal.

Displaying Tax to Customers

US ecommerce convention is to display prices exclusive of tax and show the tax as a separate line item at checkout after the customer enters their shipping address. This is different from many international markets where prices are shown tax-inclusive. Showing tax as a separate line item is legally required in some states and is the standard customer expectation in the US market.

Your checkout page should clearly show the subtotal, any shipping charges, the sales tax amount with the rate percentage if possible, and the order total. Providing transparency about the tax amount and which state it applies to builds customer trust and reduces cart abandonment related to surprise fees at checkout.

Record Keeping for Tax Collection

Maintain complete records of every transaction where you collected sales tax, including the customer's shipping address (which determines the jurisdiction and rate), the products sold and their tax category, the tax rate applied, the tax amount collected, and the date of the transaction. These records are the foundation of your sales tax returns and your defense in the event of an audit.

Your ecommerce platform maintains these records automatically in your order history, and tax automation services like TaxJar and Avalara aggregate this data across all your selling channels. Export and back up your transaction data regularly, as you may need to reference records for 3 to 7 years depending on the state's statute of limitations. Do not rely solely on your platform's data retention, as changing platforms or closing accounts can result in lost transaction history.