CBAM (the Carbon Border Adjustment Mechanism) is the European regulation that puts a price on the carbon embedded in certain imports. The underlying goal is to prevent 'carbon leakage': European industry, subject to the emissions trading scheme, competing with imports made outside the EU under less demanding standards.
Important: during the transitional period (until the end of 2025) CBAM was reporting-only. From 2026 the definitive phase applies, with the purchase of certificates. This article is not legal advice: always confirm dates and obligations with your customs authority.
Who it affects and which goods it covers
CBAM affects any importer established in the EU bringing in goods from six carbon-intensive sectors: iron and steel, aluminium, cement, fertilisers, electricity and hydrogen. Sector membership is determined by the commodity code (the CN code from the combined nomenclature), not by the product's commercial description.
Here is the first practical trap: if you buy steel fasteners or aluminium profiles from a non-EU supplier, it is quite possible you fall within CBAM scope even if nobody on your team associates it with 'carbon'. What governs is the CN code of the imported line.
What the quarterly report asks for
- Imported quantities by CN code and by country of origin.
- Embedded emissions (direct and, where applicable, indirect) per tonne.
- Production installation and source supplier when the data is available.
- Carbon price already paid in the country of origin, if any.
The report is filed each quarter in the Commission's CBAM Registry, usually within the month following the quarter's close. The upload format is structured (XML), so the real problem is not 'filling in a form' but having clean, complete and traceable data behind it.
Where this data lives in Odoo
The good news is that most of the information already lives in Odoo, scattered: purchases and receipts sit in purchase.order and stock.picking; country of origin and commodity code, on the product record; the supplier, in res.partner. What does not exist out of the box are the CBAM-specific fields (emissions per tonne, installation, carbon price paid) nor the logic that filters exactly what falls in scope.
The approach we follow is to add those fields where you already work (product and supplier), flag which CN codes are in scope, and let Odoo walk through the quarter's receipts to group quantities by code and origin. With that in place, the embedded-emissions calculation comes down to multiplying quantity by emission factor, and the report is generated straight from the ERP instead of being rebuilt by hand every three months.
What to watch before the first report
- Incomplete or wrong CN codes on the product record: if the code is off, the product does not enter (or enters wrongly into) the report.
- Country of origin confused with supplier country: the goods' origin can differ from the billing country.
- Missing real emissions data: until you get it from the manufacturer, you will have to use default values and document that choice.
- No traceability: every figure in the report must be traceable back to a specific receipt in case the authority reviews it.
The honest message is this: CBAM is not a huge IT project, but it is a data discipline. If your purchases and product records are clean, the quarterly report is almost automatic. If they are not, no tool will fix that on its own, and the first quarter is exactly where you put that order in place.
Want to check whether CBAM affects you and how to handle it from Odoo?
We look at your CN codes, your origins and your receipts to tell you whether you are in scope and how to automate the quarterly report. Book a call via Calendly (calendly.com/flexigotech0) or call +34 616 809 504.