Intrastat Reporting in Odoo 18 Accounting
By Braincuber Team
Published on January 21, 2026
Intrastat reporting is mandatory for EU businesses trading goods across member state borders. It tracks trade statistics for government analysis, economic planning, and customs compliance. If you ship electronics from Germany to France or import textiles from Italy to Spain, you must report these transactions. Odoo 18's Intrastat module automates this process, eliminating manual spreadsheets and reducing compliance risk.
This guide covers Intrastat configuration in Odoo 18 Accounting: enabling the feature, setting commodity codes, configuring transaction types, generating reports, and ensuring data accuracy for regulatory submission.
What is Intrastat? A statistical system tracking goods movement between EU member states. Companies exceeding annual thresholds (varies by country—typically €150,000-€800,000) must submit monthly or quarterly declarations to national authorities.
Why Intrastat Matters
Legal Compliance
Avoid penalties (€500-€5,000 per missed declaration). Automated reporting ensures deadlines are met.
Trade Statistics
Data feeds Eurostat. Governments use it for economic policy, trade agreements, and VAT fraud detection.
Automation
Odoo auto-populates commodity codes, weights, and transaction types from invoices. No manual data entry.
Data Accuracy
Built-in validation checks commodity codes, VAT numbers, and missing fields before submission.
Configuration Steps
Enable Intrastat Reporting
Navigate to Accounting → Configuration → Settings.
- Scroll to Customer Invoices section
- Enable Intrastat checkbox
- Set Default Invoice Transaction Code (e.g.,
11for standard sales) - Set Default Refund Transaction Code (e.g.,
21for returns) - Belgian companies: Enter Region Code (Brussels=01, Flanders=02, Wallonia=03)
- Click Save
Transaction Codes: Two-digit codes defining transaction nature. 11 = outright purchase/sale, 21 = return, 30 = barter. Full list: EU Commission.
Configure Commodity Codes
Set up Combined Nomenclature (CN) codes for products.
Path: Accounting → Products → Products → Open Product
In the Accounting tab, find the INTRASTAT section:
| Field | Description | Example |
|---|---|---|
| Commodity Code | 8-digit CN code identifying product type | 8471.30.00 (Laptops) |
| Supplementary Units | Additional measurement (pieces, pairs, liters) | 10 pieces |
| Country of Origin | Where product was manufactured | China |
Finding CN Codes: Use the EU TARIC database. Wrong codes trigger customs rejections. For electronics: Chapter 84-85. For textiles: Chapter 50-63.
Create Intrastat-Compliant Invoice
Generate a customer invoice with Intrastat data.
Path: Accounting → Customers → Invoices → Create
- Select an EU-based customer (different member state)
- Add invoice lines with products that have commodity codes
- Click the ☰ menu icon at the end of each invoice line
- In the Other Info tab:
- Transaction Code: Auto-filled from settings (editable)
- Intrastat Country: Partner's country
- Transport Mode: Road (1), Rail (2), Sea (3), Air (4), etc.
- Incoterm: Delivery terms (EXW, FOB, CIF, DDP)
- Confirm invoice
Generate Intrastat Report
Access the compiled report for submission.
Path: Accounting → Reporting → Audit Reports → Intrastat
The report displays:
| Column | Data |
|---|---|
| System | Arrivals (imports) or Dispatches (exports) |
| Country | Partner country code (DE, FR, IT, etc.) |
| Transaction Code | Nature of transaction |
| Region Code | Belgian companies only |
| Commodity Code | CN8 classification |
| Origin Country | Manufacturing country |
| Partner VAT | Customer/supplier VAT number |
| Transport Code | Mode of transport |
| Incoterm | Delivery terms |
| Weight (kg) | Net mass |
| Supplementary Units | Additional quantity |
| Value | Invoice amount (statistical value) |
Export options: PDF (for review), XLSX (for editing), XML (for electronic submission).
Common Scenarios
Scenario 1: Export to Germany
Selling 50 smartphones to a German retailer.
- System: Dispatches
- Country: DE
- Commodity Code: 8517.12.00
- Transport: Road (1)
- Value: €25,000
Scenario 2: Import from Italy
Purchasing 200 units of leather shoes.
- System: Arrivals
- Country: IT
- Commodity Code: 6403.99.00
- Transport: Sea (3)
- Supplementary Units: 200 pairs
Scenario 3: Product Return
French customer returns defective laptops.
- System: Arrivals
- Transaction Code: 21 (return)
- Country: FR
- Value: Credit note amount
Validation Checklist
Before Submission:
- All invoices have commodity codes assigned
- Partner VAT numbers are valid (check via VIES)
- Transaction codes match invoice types
- Transport modes are realistic for countries
- Supplementary units match commodity code requirements
- No missing Incoterms for cross-border shipments
Conclusion
Odoo 18's Intrastat module transforms complex compliance into automated workflows. Configure once, report forever. The system validates data, prevents errors, and generates submission-ready files. For EU businesses, it's the difference between manual spreadsheets taking 8 hours monthly and automated reports taking 8 minutes.
Bottom Line: Enable Intrastat in settings. Configure commodity codes on products. Create invoices normally. Generate monthly reports. Submit to authorities. Compliance achieved.
