Tax mapping is the #1 cause of post-launch QBO sync errors. Get this right once, before turning on real sync, and you won't think about it again.
How tax mapping works
When a Run a Call invoice has a tax rate:
- Run a Call looks up the QBO tax code by name.
- If found, the line posts with that tax code; QBO calculates the tax line.
- If not found, the sync fails with "Tax code not mapped".
Set it up
Settings → QuickBooks → Tax.
You'll see every tax rate in Run a Call on the left, with a dropdown next to each:
State sales tax (6.75%) → [State sales tax 6.75 ▾]
County tax (0.5%) → [Cuyahoga County 0.5 ▾]
Combined rate (7.25%) → [State sales tax 6.75 (with County 0.5) ▾]
Tax-exempt → [Out of scope ▾]
For each, pick the corresponding QBO tax code from the dropdown.
Edge cases
Single rate vs combined
Some states want a single rate on the invoice (6.75% state + 0.5% county shown as one 7.25% line). Some want them broken out.
| Approach | What to do |
|---|---|
| Single combined | Map to QBO's combined tax code (set up in QBO under Taxes → Set up tax). |
| Broken out | Map each Run a Call rate to its own QBO code, and apply both rates to the same invoice line. |
The right answer depends on your state — ask your accountant if you're not sure.
Tax-exempt
Tax-exempt customers should have:
- The Tax exempt flag on their customer record.
- A QBO tax-exempt code mapped to it (typically Out of scope or Non-taxable).
The QBO invoice will post with no tax, and you'll have a tax-exempt code on it for proof if the state asks.
Use tax / reverse charges
If you have line items where you (the buyer) owe the tax rather than the customer:
- Set up a Use tax line item in your pricebook.
- Map it to a QBO tax code that posts to Use tax payable.
- Don't apply customer-facing sales tax to that line.
This is unusual — most HVAC shops don't deal with it.
Setting a default
Settings → QuickBooks → Tax → Default for unmapped.
If an unmapped tax rate ever shows up on an invoice, this default is used as a fallback so the sync doesn't break.
Best practice: create a QBO tax code called To classify set to 0%. Map the default to it. Any time it's used, you'll see To classify on a QBO invoice and know to fix the underlying mapping.
Multi-state shops
If you operate in multiple states:
- Add each state's rate(s) in Run a Call.
- Each state's QBO tax code (you may need separate QBO tax agencies under Taxes).
- Customers get the correct rate based on their service address.
For complex multi-state setups (10+ jurisdictions, automated tax calc), talk to support about TaxJar or Avalara integration.
Verify before going live
There's no dry-run or sandbox toggle. Verify with a real, small invoice:
- Pick a low-value customer and create a small taxable invoice in Run a Call.
- Send it; record a payment if you want to test that step too.
- Open the synced invoice in QBO and confirm the tax code is correct, the tax line shows, and the total matches.
Fix any mapping mismatches before invoicing the rest of your customers.