This module contains common objects and fields for the Intrastat Product reporting.
It should be used in combination with country-specific Intrastat Product reporting modules such as:
- l10n_fr_intrastat_product: the module for the Déclaration d'Echange de Biens (DEB) for France
- l10n_be_intrastat_product: the module for the Intrastat Product Declaration for Belgium
These country-specific modules can be found in the OCA localization for those countries.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Prepare Intrastat product declarations for arrivals and dispatches by gathering the relevant invoices, grouping them by product and Intrastat code, and exporting the result to Excel or XML.
This module adds the tools needed to build Intrastat product declarations inside Odoo. Users create an intrastat.product.declaration for a given year and month, choose whether it covers arrivals or dispatches, and then use the gather action to pull in the relevant posted customer and supplier invoices.
- Invoices and credit notes carry extra fields such as Intrastat transaction type, transport mode, origin/destination country and region, and a dedicated Intrastat details tab.
- Products use their harmonized system code and country of origin; the module also adds an Intrastat supplementary unit on the harmonized system code.
- Gathering invoices creates computation lines, checks for missing country, VAT number, weight, unit of measure or harmonized system code, and shows the problems in a pop-up note.
- Declaration lines are then generated by grouping computation lines, and the declaration can move from draft to confirmed to done.
- An Excel export is available, and country-specific modules can generate the official XML file.
- Configuration is done on the company and in settings: arrivals/dispatches reporting level, default transport mode, default region, and whether accessory costs are included in the fiscal value.
- Regions, transaction types, transport modes and supplementary units are maintained as their own reference data, and warehouses can be linked to a region.
Depends on
Required by other modules
Menus it adds
Models and fields (19)
- hs.code · extends an existing modelintrastat_unit_id (Intrastat Supplementary Unit)
- sale.order · extends an existing modelintrastat (Intrastat Declaration), intrastat_transport_id (Transport Mode)
- res.company · extends an existing modelintrastat (Intrastat Declaration), intrastat_arrivals (Arrivals), intrastat_region_id (Default Intrastat Region), intrastat_dispatches (Dispatches), intrastat_transport_id (Default Transport Mode), intrastat_accessory_costs (Include Accessory Costs in Fiscal Value of Product)
- res.partner · extends an existing modelinvoice_intrastat_detail (Show intrastat details in invoice report)
- account.move · extends an existing modelintrastat (Intrastat Declaration), intrastat_line_ids (Intrastat Declaration Details), src_dest_region_id (Origin/Destination Region), src_dest_country_id (Origin/Destination Country), intrastat_transport_id (Intrastat Transport Mode), intrastat_transaction_id (Intrastat Transaction Type)
- intrastat.unit · new modelname, active, uom_id (Regular UoM), description
- stock.location · extends an existing model
- stock.warehouse · extends an existing modelregion_id (Intrastat Region)
- intrastat.region · new modelcode, name, company_id, country_id, description
- account.move.line · extends an existing modelhs_code_id (Intrastat Code)
- res.config.settings · extends an existing modelintrastat, country_id, intrastat_arrivals, intrastat_region_id, intrastat_dispatches, intrastat_transport_id, intrastat_accessory_costs
- intrastat.result.view · new modelnote (Notes)
- intrastat.transaction · new modelcode, active, company_id, description
- intrastat.transport_mode · new modelcode, name, description
- account.move.intrastat.line · new modelmove_id (Invoice), quantity, sequence, hs_code_id (Intrastat Code), product_id (Product), invoice_line_id (Invoice Line), transaction_weight, product_origin_country_id (Country of Origin of the Product), transaction_suppl_unit_qty
- intrastat.product.declaration · new modelnote (Notes), year, month, state, action, revision, company_id (Company), year_month (Period), currency_id (Currency), total_amount (Total Fiscal Amount), num_decl_lines (Number of Declaration Lines), reporting_level, declaration_type (Type), xml_attachment_id (XML Attachment), xml_attachment_name (XML Filename), company_country_code (Company Country Code), computation_line_ids (Computation Lines), declaration_line_ids (Declaration Lines), xml_attachment_datas (XML Export)
- intrastat.product.computation.line · new modelvat (VAT Number), weight, parent_id (Intrastat Product Declaration), region_id (Intrastat Region), company_id, hs_code_id (Intrastat Code), invoice_id (Invoice), partner_id (Partner), product_id, incoterm_id (Incoterm), region_code, transport_id (Transport Mode), suppl_unit_qty (Suppl. Unit Qty), transaction_id (Intrastat Transaction), invoice_line_id (Invoice Line), reporting_level, declaration_type, transaction_code (Transaction Code), intrastat_unit_id (Suppl. Unit), company_currency_id (Company currency), declaration_line_id (Declaration Line), src_dest_country_id (Country), company_country_code (Company Country Code), src_dest_country_code (Country Code), amount_company_currency (Fiscal Value), product_origin_country_id (Country of Origin of the Product), product_origin_country_code (Country Code of Origin of the Product), amount_accessory_cost_company_currency (Accessory Costs)
- intrastat.product.declaration.line · new modelvat (VAT Number), weight, parent_id (Intrastat Product Declaration), company_id, hs_code_id (Intrastat Code), incoterm_id (Incoterm), line_number, region_code, transport_id (Transport Mode), suppl_unit_qty (Suppl. Unit Qty), transaction_id (Intrastat Transaction), reporting_level, declaration_type, transaction_code (Transaction Code), intrastat_unit_id (Suppl. Unit), company_currency_id (Company currency), company_country_code (Company Country Code), computation_line_ids (Computation Lines), src_dest_country_code (Country Code), amount_company_currency (Fiscal Value), product_origin_country_code (Country of Origin of the Product)
- report.intrastat_product.product_declaration_xls · new model
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 13.0
Confirmed on 2026-11-03 in branch 13.0 of OCA/intrastat-extrastat.
terminal Installation and usage
OCA documentation · Odoo 19.0Installation
Source · Odoo 19.0This module is NOT compatible with the account_intrastat module from Odoo Enterprise.
We recommended to install the module product_net_weight from OCA/product-attribute. If this module is installed, Odoo will use the Net Weight field of the product to compute the intrastat declaration instead of the native Weight field.
Configuration
Source · Odoo 19.0By default the intrastat declaration is generated based upon the product record master data. Hence unexpected results may occur in case this master data is not accurate, e.g. wrong or missing weight, country of origin, ...
This can be corrected by changing the appropriate fields when analysing the intrastat declaration but this can be challenging in case of large transaction volumes and especially in the specific use case where the product weight cannot be encoded correctly on the product records (e.g. products with variable weight).
It is possible to allow encoding the intrastat transaction details on the purchase/sale invoice via the "intrastat_product.group_invoice_intrastat_transaction_detail" usability group.
Usage
Source · Odoo 19.0This module is used in combination with the country-specific localization module(s).
Coding guidelines for localization module:
We recommend to start by copying an existing module, e.g. l10n_be_intrastat_product and adapt the code for the specific needs of your country.
- Declaration Object Create a new class as follows:
class L10nCcIntrastatProductDeclaration(models.Model):
_name = 'l10n.cc.intrastat.product.declaration'
_description = "Intrastat Product Declaration for YourCountry"
_inherit = ['intrastat.product.declaration', 'mail.thread']whereby cc = your country code
- Computation & Declaration Lines Create also new objects inheriting from the Computation and Declaration Line Objects so that you can add methods or customise the methods from the base modules (make a PR when the customization or new method is required for multiple countries). Adapt also the parent_id fields of the newly created objects (cf. l10n_be_intrastat_product as example).
- XML Files: Menu, Action, Views Cf. l10n_be_istrastat_product as example, replace "be" by your Country Code.
Other functionality added by this module:
- Compute the Intrastat Lines in an invoice. For this, your user needs to be in the "Technical / Invoice Intrastat Transaction Details" group. Go to the "Intrastat transaction details" tab and press Compute
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.