Skip to content
EDGE·THIRTEENSubscribe

For US Odoo companies

Odoo deleted its own US sales tax module. Every replacement on the store is a metered API.

Odoo deleted its own US sales tax integration and now points every customer at Avalara or TaxJar — a recurring, metered rate lookup for every single order. This addon feeds Odoo's own destination-tax engine directly from each state's published rate and boundary files instead, so tax is computed inside your database with zero outbound calls per order. Free forever for Utah; $149/yr unlocks every state we've packaged, with quarterly auto-refresh.

Install the free module from a git repository first — it bundles a working Utah pack so the mechanism can be verified before you pay for anything.

Everyone else on the store sells you a meter

Search the Odoo Apps Store for US sales tax and every option is a connector: Avalara (free module, paid Avalara contract), TaxJar ($118–$277 module plus a TaxJar subscription), zip.tax and API Ninjas provider plugins. The few attempts at anything self-contained have single-digit total downloads. Nobody sells the rates — because for those vendors, the per-order API call is the product.

This addon is a table you install, not a service you rent. It works offline: nothing breaks when a tax API is down, rate-limited or repriced, and no customer address ever leaves your database on a per-order basis.

Frequently asked

Why doesn't Odoo just do this itself?

It can — account.fiscal.position already supports ZIP-ranged, auto-applying tax positions. Odoo bundled a TaxCloud integration that fed this for years, blocked new installs of it in 17.0, then deleted the module outright in 18.0. Its own migration guide now says to use Avalara. The tax engine was never removed, only the thing that fed it.

Where do the rates actually come from?

Directly from each state's own rate and ZIP-boundary files, published under the Streamlined Sales Tax Governing Agreement (SSUTA) Section 305 — the same free, quarterly, official files that power our WooCommerce plugin TaxTable. This addon joins them and writes native account.tax and account.fiscal.position records.

Does that mean I'm protected if a rate is wrong?

SSUTA Section 306 requires member states to relieve sellers of liability for collecting the wrong amount where that resulted from relying on the state's own published rate, boundary, or jurisdiction data. This addon loads exactly that data into your own database — it doesn't calculate or estimate anything itself.

Does any order or customer data leave my database?

No. Once a rate pack is installed, tax is computed entirely inside Odoo's own fiscal-position matching at invoice time — no outbound call per order. The only outbound calls the addon makes are quarterly refreshes to fetch the next rate pack, over HTTPS, from an allowlisted host.

What's free vs. paid?

The Utah pack is free and bundled with the addon, forever — no license key needed. A $149/yr subscription unlocks every additional state we've packaged, with new states added over time and existing subscribers picking them up automatically on the next refresh.

Which states are covered right now?

All 24 Streamlined Sales Tax member states: Utah (free), plus Wyoming, West Virginia, Arkansas, Georgia, Michigan, Rhode Island, Kentucky, Indiana, New Jersey, Iowa, Kansas, Minnesota, North Carolina, North Dakota, Nebraska, Nevada, Ohio, Oklahoma, South Dakota, Tennessee, Vermont, Washington and Wisconsin. Michigan, Rhode Island, Kentucky, Indiana and New Jersey have no local-option sales tax, so their packs cover every ZIP in the state at one flat rate; the rest report each ZIP's own combined rate. A handful of states' own boundary files carry a small number of ZIPs whose special-taxing-district assignment isn't unambiguous in the source data — those ZIPs are left out of the pack entirely rather than guessed, so the state's coverage count is the exact ZIP total we could verify, not every ZIP in the state. Coverage is reported exactly — the addon states each pack's covered ZIP range rather than implying national coverage.

This addon is an informational tool, not tax advice. It loads each state's own published rate and boundary data into Odoo's native tax engine; confirm your obligations with a tax professional. Coverage is limited to the states listed above.