Skip to main content

Configuring sales tax for your state

This page walks you through setting up fiscal positions so that CloudFFL OS only charges sales tax on orders shipping to your state. Orders to all other states won't be taxed.

If you haven't read it yet, the previous page — How sales tax works in CloudFFL OS — explains the concepts behind fiscal positions and why this setup works.

Before you start

  • You need your company's default sales tax already set. Go to Accounting → Configuration → Settings and check the Default Sales Tax field. For most Texas dealers, this is 8.25% (state 6.25% + local rate).
  • Your company address must have the correct state set. Go to Settings → Companies, click your company, and verify the state is correct.

Step 1: Create the "no tax" catch-all for the United States

This fiscal position matches every US customer and removes sales tax. The state-specific position you create in Step 2 overrides it for your home state.

  1. Go to Accounting → Configuration → Fiscal Positions.
  2. Click New.
  3. Set the Fiscal Position name to United States - No Tax.
  4. Check the Detect Automatically box. This tells CloudFFL OS to apply this position based on the customer's address.
  5. Set Country to United States.
  6. Leave State empty — this position should match all US states.
  7. Under the Tax Mapping tab, click Add a line.
  8. In the Tax on Product column, select your default sales tax (e.g., 8.25%).
  9. Leave the Tax to Apply column empty — this is what removes the tax.
  10. Click Save.

Leaving "Tax to Apply" empty is the key. When a fiscal position maps a tax to nothing, it removes that tax from the order line entirely. This is the native Odoo mechanism for tax exemptions — you're telling the system "when this fiscal position matches, take the 8.25% tax and replace it with nothing."

Step 2: Create the fiscal position for your home state

This position matches customers in your state and keeps the default tax rate. Because it includes a specific state, CloudFFL OS gives it priority over the generic "United States - No Tax" position.

  1. Go to Accounting → Configuration → Fiscal Positions.
  2. Click New.
  3. Set the Fiscal Position name to Texas - Taxable (or your state name).
  4. Check the Detect Automatically box.
  5. Set Country to United States.
  6. Set State to Texas (or your state).
  7. Leave the Tax Mapping tab empty — don't add any mappings. This means the default company tax stays exactly as it is.
  8. Click Save.

No tax mapping means "keep the defaults." The Texas fiscal position doesn't need to map anything. When it matches, it doesn't change the tax — your 8.25% default stays in place. The only fiscal position that needs a mapping is the "No Tax" one, because it's actively removing a tax.

Step 3: Verify it's working

Test with two quick quotes to confirm the setup is correct:

  1. Go to Sales → Orders → Quotations and click New.
  2. Select a customer whose shipping address is in your state (e.g., Texas).
  3. Add any product — you should see your sales tax applied on the order line.
  4. Now change the customer to someone with a shipping address in a different state (e.g., Oregon or Virginia).
  5. The tax should disappear from the order lines.
  6. You can delete these test quotations when you're done.

Check the shipping address, not the billing address. Fiscal positions match on the delivery address (where the product is going), not the billing address. Make sure your out-of-state test customer has a shipping address set in another state. If a customer has no shipping address, CloudFFL OS falls back to the billing address.

What about existing orders?

Fiscal positions apply when an order is created or when you change the customer on an existing draft quotation. Orders that were already confirmed before you set up fiscal positions keep their original tax amounts — they aren't retroactively changed.

If you have draft quotations that were created before this setup, you can trigger a recalculation by changing the customer field (switch to a different customer, then switch back). This forces CloudFFL OS to re-evaluate the fiscal position.

Adding a second state later

If you establish nexus in another state — say you open a second location in Oklahoma — here's how to add it:

  1. If Oklahoma has a different tax rate than your home state, first create a new tax at Accounting → Configuration → Taxes (e.g., Oklahoma 4.5%).
  2. Create a new fiscal position: Oklahoma - Taxable.
  3. Check Detect Automatically, set Country to United States, set State to Oklahoma.
  4. If the rate is different from your default, add a tax mapping: Tax on Product = your default tax (8.25%), Tax to Apply = the Oklahoma tax (4.5%).
  5. Click Save.

The "United States - No Tax" catch-all continues to handle every state that isn't Texas or Oklahoma.

Troubleshooting

Tax is still showing on out-of-state orders

  • Verify the "United States - No Tax" fiscal position has Detect Automatically checked.
  • Confirm the Country is set to United States.
  • Check that the tax mapping has your sales tax in the Tax on Product column and the Tax to Apply column is empty.
  • Make sure the customer's shipping address has a US state set — if the address is incomplete, CloudFFL OS can't match a fiscal position.

Tax is missing on in-state orders

  • Verify the state-specific fiscal position (e.g., "Texas - Taxable") has Detect Automatically checked.
  • Confirm the State field is set correctly.
  • Make sure the tax mapping tab is empty on this position — if you accidentally added a mapping that removes the tax, it would zero it out.

A specific customer should be tax-exempt

Some customers — like government agencies or resellers with a tax exemption certificate — shouldn't be charged tax even in your home state. You can manually assign the "United States - No Tax" fiscal position directly on their customer record at Sales & Purchase tab → Fiscal Position. This overrides the automatic matching for that customer only.