OpenSalesTax — US Sales Tax via OST API

LGPL-3.0-or-later OR AGPL-3.0-or-later Beta Odoo 16 / 17 / 18 / 19

What it does

Replace Odoo's static US sales-tax rate tables with destination-based calculation against an OpenSalesTax engine instance. The connector hooks Odoo's tax pipeline (the new batch tax engine on 18+, legacy compute_all on 16/17) to call the engine for US customers with a valid 5-digit ZIP, returning the per-jurisdiction breakdown (state / county / city / district) on every sales order, customer invoice, credit note, and POS order.

The engine is a self-hostable Python service maintained by the same author. No SaaS, no per-transaction fees, no data leaves your infrastructure.

This module is the free, self-hostable alternative to Avalara on Odoo Community Edition. For Enterprise users, it is designed to coexist with the proprietary Avalara module on a per-fiscal-position basis.

What you get

Installation

pip install 'odoo-addon-account-ostax>=18.0,<19.0'  # for Odoo 18
# (use >=16.0.0.1.12,<17.0 / >=17.0,<18.0 / >=19.0,<20.0
#  for the other branches)

Then in Odoo: Apps → search "OpenSalesTax" → Install, then Settings → Accounting → OpenSalesTax to configure the engine URL and click Test Connection.

Engine compatibility

Tested against OpenSalesTax engine v0.54.1+. Minimum: v0.22. The connector requires the v1 HTTP API.

Calculation only

Tax calculations are provided as-is for convenience. The merchant is solely responsible for tax-collection accuracy and remittance to the appropriate jurisdictions. Verify against your state Department of Revenue before remitting.

This module does NOT file returns, remit collected tax, validate addresses, or provide legal/tax advice.

License

Dual-licensed under your choice of either LGPL-3.0-or-later OR AGPL-3.0-or-later. SPDX expression: LGPL-3.0-or-later OR AGPL-3.0-or-later.

Bug reports / contributions

Issue tracker: github.com/ejosterberg/opensalestax-odoo/issues. DCO sign-off required on every commit; no AI co-author trailers. See CONTRIBUTING.md.