How to file a CBAM report: step by step

For EU importers · CBAM Compliance

Filing a CBAM report comes down to four steps: get your import data, calculate the embedded emissions, produce the official XML, and submit it. Here's how to do it cleanly for a quarter.

Step 1 — Gather your import data

Pull the line items for the reporting period from your customs broker or ERP: CN code, quantity, and country of origin for each import. A CSV or Excel export is ideal. If you have verified emissions data from the producer, keep it handy — it lowers your liability and skips the default-value mark-up.

Step 2 — Calculate embedded emissions

For each line, embedded emissions = mass × specific embedded emissions (SEE). If you don't have verified data, use the EU default values for that CN code and country — the tool looks them up and applies the correct 2026–2028 mark-up automatically. Any carbon price already paid abroad can be deducted once, with evidence (Article 9).

Doing this by hand across many lines is error-prone. A bulk importer lets you upload the whole customs export and calculates every line at once, flagging any rows that need fixing.

Step 3 — Generate the QReport XML

The submission itself is the official EU QReport XML. Enter your declarant details (company, EORI, address), confirm the goods lines, and generate. A good tool validates the file against the official EU schema before handing it to you, so it can't be rejected for structure.

Step 4 — Submit to the registry

Log in to the EU CBAM registry (or hand the file to your declarant) and upload the QReport XML for the period. Keep your evidence — price provenance and any actual-data documentation — for audit.

How long does it take?

For a mid-sized importer using default values, expect about one to two hours in-app once your data file is ready, and less in later quarters once your export and column mapping are set up.

Want to see it end to end? Book a 20-minute demo of the customs-import → certificate flow, or run a free estimate first.

Related: CBAM default values explained · CBAM QReport XML · FAQ