Build-to-order Odoo module for HS/HTS codes, customs declarations, CN22/CN23 forms and duty/tax estimates on cross-border shipments. One-time license from $299.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

Build-to-order Odoo module for HS/HTS codes, customs declarations, CN22/CN23 forms and duty/tax estimates on cross-border shipments.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
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 2-4 week lead time.
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
QWeb PDF report templates for commercial invoice and packing list, printable from the Sales Order or Delivery with per-line HS codes and origin
CN22 and CN23 postal declaration QWeb forms plus a generic customs declaration layout, auto-filled from order and product data
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.
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.
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.
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.
Buy the license on ecosire.com and download the Customs & HS Code Compliance for Odoo module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Customs & HS Code Compliance for Odoo, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| Delivery model and effort to production | Built, installed, tested and trained by ECOSIRE in 2-4 weeks | Weeks-to-months of your own developer time to reach the same scope | Instant install but then significant configuration and gap-filling | |
| 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 |
This is a build-to-order engagement with a typical 2-4 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.
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.
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.
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.
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.
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.
Build-to-order Odoo module for HS/HTS codes, customs declarations, CN22/CN23 forms and duty/tax estimates on cross-border shipments.