- Home
- Apps
- Multichannel & PIM Tools
- Customs & HS Code Compliance for Odoo
Illustrative previewBuild-to-order Odoo module for HS/HTS codes, customs declarations,
CN22/CN23 forms and duty/tax estimates on cross-border shipments.
What is Customs & HS Code Compliance for Odoo?
Build-to-order Odoo module for HS/HTS codes, customs declarations, CN22/CN23 forms and duty/tax estimates on cross-border shipments. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Customs & HS Code Compliance is a build-to-order Odoo module that ECOSIRE designs, builds, installs and supports for cross-border shippers and freight forwarders — it is not an instant apps.odoo.com download. You buy the engagement; our engineers deliver a working module tailored to your Odoo 17, 18 or 19 database within a one working week lead time.
The module turns Odoo into the single place where your product master, sales orders, delivery orders and customs paperwork stay in sync. We extend product.template and product.product with dedicated HS/HTS, country-of-origin and Incoterms fields, add a customs declaration model with its own security and record rules, and wire QWeb report templates that print commercial invoices, packing lists, CN22 and CN23 forms straight from the Delivery (stock.picking) or Sales Order — no re-keying into a separate portal.
Duty and import-tax estimation is computed with real Odoo mechanics: stored computed fields using @api.depends recalculate landed cost when HS code, destination country, declared value or Incoterm changes, so your team sees an estimate before the goods ship. Every HS/HTS assignment, declaration and printed document is a first-class Odoo record with chatter, audit trail and access control via ir.model.access.csv and record rules — so a warehouse user can prepare paperwork while only a compliance manager can finalise a declaration.
Because it is native Odoo, everything is reachable over XML-RPC / JSON-RPC for your carrier, broker or 3PL integrations, respects Community vs Enterprise feature boundaries, and upgrades cleanly across 17/18/19. We ground the build in your actual tariff schedules, destination markets and forwarder workflow — then hand over documented source code you own, configuration, training and a support window.
What you get
- Installable Odoo module (custom addon with __manifest__.py, models, views, security and QWeb reports) targeting your chosen Odoo 17, 18 or 19 version
- Full, documented source code that you own — delivered to your Git repository or as a packaged addon, no license lock-in
- Configuration in your database: HS/HTS library seeded, duty-rate tables for your destination countries, Incoterms and report branding
- QWeb report templates (commercial invoice, packing list, CN22, CN23, customs declaration) styled with your company header and legal fields
- Security configuration: ir.model.access.csv, record rules and user groups mapped to your warehouse vs compliance roles
- Deployment on your instance (self-hosted, Odoo.sh or ECOSIRE-managed) with a smoke-tested end-to-end shipment-to-paperwork run
- Admin and end-user documentation plus a live training session for warehouse and compliance staff
- A post-go-live support window covering bug fixes, minor adjustments and compatibility questions
Who this is for
Cross-border e-commerce shipper
Runs an online store fulfilling international parcels from Odoo Inventory and needs CN22/CN23 and commercial invoices printed per delivery, with HS codes and origin already on every product so parcels clear customs without manual paperwork.
Freight forwarder / customs broker
Manages declarations on behalf of many clients and needs a structured customs declaration record linked to each shipment, role-based access for preparers vs finalisers, and XML-RPC access so external broker systems can push and pull declaration data.
Export operations / compliance manager
Owns tariff classification accuracy and audit readiness; wants HS/HTS assignments enforced, duty estimates visible before shipment, Incoterms captured correctly, and a full chatter audit trail on every declaration for regulator or auditor review.
How Customs & HS Code Compliance for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| HS/HTS codes on products with duty estimation | Dedicated HS/HTS fields plus @api.depends duty estimation configured for your countries | Possible but you design the data model and compute logic from scratch | Some apps add an HS field; duty estimation is rare and rate tables are generic | No |
| CN22 / CN23 and customs declaration forms | QWeb templates for CN22, CN23, commercial invoice and packing list, branded to you | Must be authored as bespoke QWeb reports | Varies — some print invoices, few cover CN22/CN23 | No |
| Tailored to your tariff schedules and forwarder workflow | Yes — scoped to your destinations, roles and process before build | Yes, if you have the in-house Odoo engineering capacity | No — off-the-shelf assumptions you adapt to | No |
| Role-based access (preparer vs compliance manager) | ir.model.access.csv plus record rules mapped to your real roles | You write the security rules yourself | Usually a single generic access level | Partial |
| Source code ownership and no license lock-in | Full documented source delivered to you, no per-seat app licence | Yes, you own what you build | No — bound to the vendor's licence and update cycle | Partial |
| Delivery model and effort to production | Built, installed, tested and trained by ECOSIRE in one working week | Weeks-to-months of your own developer time to reach the same scope | Instant install but then significant configuration and gap-filling | Immediate but the capability simply does not exist |
| Support, updates and version upgrades | Post-go-live support window plus optional 17/18/19 upgrade retainer | Entirely your team's responsibility | Depends on vendor's roadmap and paid support tier | Covered by Odoo core but no customs feature to support |
Frequently Asked Questions about Customs & HS Code Compliance
How long until the module is delivered and working in my database?
This is a build-to-order engagement with a typical one working week lead time, not an instant download. After a short scoping call we confirm your Odoo version (17, 18 or 19), destination markets and tariff data, then build, test and deploy the module to your instance. Timing depends on how many report formats and duty tables you need; we agree a delivery date in writing before starting.
What support and updates do I get after go-live?
Every engagement includes a post-go-live support window for bug fixes, minor tweaks and compatibility questions. Because you receive the full source code, your team or ours can maintain it. We also offer optional ongoing support and version-upgrade retainers to keep the module compatible when you move between Odoo 17, 18 and 19 or apply Odoo point releases.
Does this work on Odoo Community or only Enterprise?
The module is built on standard Odoo primitives — models.Model, fields, computed fields, ir.model.access.csv, record rules, QWeb reports and standard views — so the core runs on both Community and Enterprise for Odoo 17, 18 and 19. If your scope requires Enterprise-only features (for example advanced studio-style customisations or specific Enterprise apps), we flag that during scoping so there are no surprises.
Are the duty and import-tax figures official or an estimate?
They are estimates, computed from the duty-rate tables we configure for your destination countries and HS codes, combined with declared value, freight, insurance and Incoterm. They help your team price and prepare shipments. They are not a substitute for a binding ruling from a customs authority or licensed broker, and final assessed duty is determined by the destination customs office.
Can it integrate with my carrier, broker or 3PL systems?
Yes. All records — HS/HTS data, declarations and shipping documents — are native Odoo models reachable over XML-RPC and JSON-RPC, and we can add scheduled or automated actions and webhooks as part of the build. During scoping we map the exact integration points so brokers, carriers or a 3PL can read and write the data they need.
Will it survive an Odoo version upgrade?
We build against clean, upgrade-friendly patterns and avoid fragile overrides where possible, so the module moves across 17, 18 and 19 with predictable effort. Because Odoo's own APIs change between major versions, a version jump may need a small migration pass, which we can handle under an upgrade retainer or as a fixed-scope follow-on.
Related Modules

Cookies Consent Management
A build-to-order Odoo consent management layer that gates website tracking scripts behind granular, logged visitor consent. ECOSIRE designs, builds, installs, and supports it around your Odoo website and data-protection obligations.

Customer Returns Portal (Self-Service Website RMA)
A branded Odoo website returns portal where customers request returns, print labels and track refunds. Built, installed and supported by ECOSIRE.

Deadstock & Overstock Analytics for Odoo
A build-to-order Odoo module that exposes slow-moving, dead and overstocked stock with aging, carrying-cost and liquidation reporting. ECOSIRE scopes, builds, installs and supports it on your Odoo 17, 18 or 19.

Decathlon Marketplace Connector (Mirakl)
Publish offers, import orders and manage returns for the Decathlon marketplace (Mirakl) directly from Odoo 17/18/19. Built, installed and supported by ECOSIRE.
Customs & HS Code Compliance
Build-to-order Odoo module for HS/HTS codes, customs declarations, CN22/CN23 forms and duty/tax estimates on cross-border shipments.
- HS/HTS code assignment on product.template and product.product, with a searchable code library, category defaults and per-variant overrides
- Country-of-origin capture (ISO 3166) on products and stock moves, propagated onto declarations and shipping documents
- Incoterms 2020 selection on sale orders and delivery orders, controlling who bears duty, insurance and freight on the paperwork
- Customs declaration model (a dedicated models.Model with states draft / submitted / cleared) linked to the originating delivery order and sale order