How to Upload CBAM Quarterly Reports via XML to the O3CI Portal
The CBAM O3CI portal accepts quarterly embedded carbon reports in XML format. This technical guide covers the schema requirements, mandatory fields, common validation errors, and the step-by-step upload process.
Truth Anchor: The CBAM XML schema is defined in the EU Commission's CBAM Technical Specifications document, published under CBAM Implementing Regulation 2023/1570. The schema is available at taxation-customs.ec.europa.eu.
CBAM XML Schema: Mandatory Fields
Every CBAM quarterly XML report must include the following mandatory elements. Missing any of these fields will cause the upload to fail validation:
| XML element | Description | Format | Example |
|---|---|---|---|
| <ReportingPeriod> | Quarter and year of the report | YYYY-QN | 2026-Q1 |
| <InstallationID> | O3CI Identification Number from AMM | O3CI-XXXXXXXX | O3CI-12345678 |
| <CNCode> | Combined Nomenclature code of the exported good | 8-digit CN code | 72081000 |
| <ProductionVolume> | Tonnes produced during the quarter | Decimal, period separator | 25000.00 |
| <DirectEmissions> | Direct (Scope 1) emissions in tCO2e | Decimal, period separator | 54500.00 |
| <IndirectEmissions> | Indirect (Scope 2) emissions in tCO2e | Decimal, period separator | 22500.00 |
| <SpecificEmbeddedEmissions> | tCO2e per tonne of product | Decimal to 4 places | 3.0800 |
| <VerificationStatus> | Whether data is verified or estimated | VERIFIED / ESTIMATED | VERIFIED |
| <VerifierID> | ISO 14065 accreditation number of verifier | Alphanumeric | BV-ISO14065-DE-001 |
| <ReportDate> | Date of report submission | ISO 8601: YYYY-MM-DD | 2026-04-28 |
Common XML Validation Errors and Fixes
| Error message | Cause | Fix |
|---|---|---|
| "Invalid decimal separator" | Comma used instead of period (e.g., 25000,00) | Replace all commas with periods in numeric fields |
| "Invalid date format" | Date not in ISO 8601 format (e.g., 28/04/2026) | Use YYYY-MM-DD format throughout |
| "CN code not found in Annex I" | CN code not covered by CBAM or incorrect code | Verify CN code against CBAM Regulation 2023/956 Annex I |
| "Production volume cannot be zero" | Zero entered for a quarter with no production | If no production occurred, submit a nil return with a note in <Comments> |
| "Specific embedded emissions exceed maximum threshold" | Calculated value is implausibly high — likely a unit error | Check units — emissions must be in tCO2e, not kgCO2e |
| "Verifier ID not recognised" | Verifier's ISO 14065 accreditation number not in the EU Commission's verifier registry | Confirm the verifier's accreditation number with them and check the EU Commission's accredited verifier list |
| "File exceeds maximum size" | XML file larger than 10MB | Split into multiple files by production unit or product line |
| "Encoding error" | File not saved in UTF-8 encoding | Re-save the XML file with UTF-8 encoding in your text editor |
Step-by-Step XML Upload Process
- Prepare your XML file using the EU Commission's schema template (available in the O3CI portal under Resources → XML Templates)
- Validate the file using the O3CI portal's XML Validator tool (Tools → XML Validator → Upload file → Validate)
- Fix all validation errors — the portal will not accept files with any errors
- Log in to the O3CI portal with Admin Operator credentials
- Navigate to "Quarterly Reports" → "New Report" → "Upload XML"
- Select your validated XML file and click "Upload"
- Review the parsed data in the portal's preview screen — confirm all values are correct
- Click "Submit Report" — you receive a submission reference number
- Download and save the submission confirmation PDF for your compliance records
If XML Uploads Are Creating Compliance Risk
XML upload errors can delay your quarterly submissions and create compliance risk. If you are close to a reporting deadline and cannot resolve XML errors, consider storing your verified embedded carbon calculation at embeddedcarbonrecord.com as a permanent backup. Your EU buyers can access your verified data via a permanent URL while you resolve the portal issues.
Store Your Verified Embedded Carbon Record for CBAM Compliance →