How to map Shopify tax to QBO tax codes
Step-by-step guide to correctly mapping taxes and discounts from Shopify to QuickBooks.
Tax and discount mapping is where many integrations go wrong. Here’s how to get it right.
Why mapping matters
Shopify and QuickBooks handle taxes differently:
- Shopify: Calculates tax per order based on customer location
- QuickBooks: Uses tax codes and rates you configure
If mapping is wrong:
- Sales reports won’t match
- Tax liability calculations are incorrect
- Audits become nightmares
Tax mapping basics
Shopify tax structure
- State/provincial tax (e.g., “CA State Tax 7.25%”)
- County/local tax (e.g., “LA County Tax 2.25%”)
- Combined rate shown to customer
QuickBooks tax codes
- Tax agencies (e.g., “California Board of Equalization”)
- Tax items (e.g., “CA Sales Tax” at 7.25%)
- Combined tax groups (e.g., “CA + LA” at 9.5%)
Manual CSV approach
Steps:
- Export Shopify orders with tax breakdown
- Identify unique tax combinations
- Create matching tax codes in QuickBooks
- Manually calculate and post tax per order
- Update when tax rates change
Problems:
- Time-consuming for each tax jurisdiction
- Easy to mispost when rates change
- Multi-state sellers face hundreds of combinations
Accounting-grade app approach
Apps like Webgility auto-map taxes:
Setup:
- App scans your Shopify tax settings
- Identifies all unique tax combinations
- Creates matching QuickBooks tax items (if they don’t exist)
- Maps Shopify rates to QBO codes automatically
Ongoing:
- Tax posts correctly with each order
- Rate changes sync automatically
- Multi-jurisdiction handled without manual work
Discount mapping
Shopify discount types
- Order-level discounts (e.g., “SAVE10” for 10% off)
- Product-level discounts
- Automatic discounts
- Shipping discounts
QuickBooks discount handling
Method 1: Reduce revenue (most common)
- Post net amount after discount
- Example: $100 product - $10 discount = $90 revenue posted
Method 2: Discount line item
- Post full revenue + separate discount line
- Example: $100 revenue, -$10 discount line
- Better for tracking discount performance
Tax on discounted amounts
Critical: Tax is calculated AFTER discounts in most jurisdictions.
Example:
- Product: $100
- Discount: $10 (10%)
- Subtotal: $90
- Tax (9%): $8.10 (not $9)
- Total: $98.10
Manual posting: You must calculate this correctly Accounting apps: Handle this automatically
Multi-state tax complexity
If you sell in multiple states:
- Economic nexus rules vary by state
- Tax rates change by county/city
- Some items are tax-exempt in certain states
Manual approach: Near impossible to maintain Accounting apps: Built-in multi-jurisdiction support
Setup checklist
QuickBooks setup
- ✓ Create tax agency for each jurisdiction
- ✓ Set up tax items with current rates
- ✓ Create tax groups for combined rates (state + local)
- ✓ Mark tax-exempt products correctly
- ✓ Set default tax code per customer location (if applicable)
Integration setup
- ✓ Map Shopify tax names to QuickBooks tax codes
- ✓ Test with sample orders from different locations
- ✓ Verify tax amounts match exactly
- ✓ Configure discount posting method (reduce revenue vs separate line)
- ✓ Set up alerts for unmapped tax rates
Common mistakes
❌ Using generic “Sales Tax” item: Can’t track by jurisdiction ❌ Posting tax before discount: Wrong tax calculation ❌ Hardcoding tax rates: Breaks when rates change ❌ Forgetting local taxes: Only posting state tax ❌ Not testing multi-state: Mapping breaks in different jurisdictions
Testing your setup
Create test orders in Shopify:
- Order from your state (home jurisdiction)
- Order from another state (if you have nexus)
- Order with discount code
- Order with shipping + tax
- Partial refund
Verify each posts correctly to QuickBooks with proper tax and discount treatment.
When rates change
Tax rate change process:
- Update rate in Shopify
- Update rate in QuickBooks
- Update integration mapping (if manual)
- Test new orders
- Historical orders keep old rate (correct)
Accounting apps: Often sync rate changes automatically
Bottom line
Tax and discount mapping is complex and error-prone with manual methods. Unless you’re single-state with simple tax, use an accounting-grade app that handles this automatically.
Incorrect tax posting creates compliance risk and audit headaches—it’s worth getting right from the start.