Van document tot EU-aangifte, automatisch. From document to EU filing, automatically.
CBAM Workspace is een multi-tenant platform waarmee importeurs hun kwartaalrapportage bijhouden — van inkomend document tot definitief ingediende CBAM-aangifte bij de EU.
CBAM Workspace is a multi-tenant platform that enables importers to track their quarterly reporting — from incoming document to final submitted CBAM filing with the EU.
Risico zonder CBAM Workspace
Risk without CBAM Workspace
Met CBAM Workspace
With CBAM Workspace
10 modules, van data tot aangifte
10 modules, from data to filing
Elke module heeft een scherpe verantwoordelijkheid en communiceert via de interne API.
Each module has a clear responsibility and communicates via the internal API.
Database Layer
Database Layer
SQLite workspace.db (werkdata) en reporting.db (onveranderlijk na lock). Strikte scheiding tussen werkstatus en gerapporteerde feiten.
SQLite workspace.db (working data) and reporting.db (immutable after lock). Strict separation between working status and reported facts.
Ingest
Documenten binnenhalen: factuur, CMR, paklijst, cognossement. AI (Gemini 2.0 Flash Vision) extraheert productregels, gewichten, herkomstlanden en partijen.
Bring in documents: invoice, CMR, packing list, bill of lading. AI (Gemini 2.0 Flash Vision) extracts product lines, weights, origin countries and parties.
Masterdata
Master data
Leveranciers, installaties, emissiefactoren en CN-codes per tenant beheren. Basis voor alle berekeningen.
Manage suppliers, installations, emission factors and CN codes per tenant. Basis for all calculations.
ETS Prijs
ETS Price
Automatische ophaling van EU ETS-kwartaalprijs. Gebruikt voor netto-ETS-berekening: max(0, ETS − CO₂-prijs herkomstland).
Automatic retrieval of EU ETS quarterly price. Used for net ETS calculation: max(0, ETS − CO₂ price country of origin).
De Minimis
Automatische bewaking van de 50.000 kg-drempel per tenant. Notificatie bij nadering. Beleid bij overschrijding instelbaar.
Automatic monitoring of the 50,000 kg threshold per tenant. Notification when approaching. Policy on exceeding configurable.
CBAM Engine
Kernberekening: emission_factor × net_ets × (gewicht_kg / 1000). Groepeert per CN×herkomst×installatie. Detecteert duplicaten.
Core calculation: emission_factor × net_ets × (weight_kg / 1000). Groups by CN×origin×installation. Detects duplicates.
Reporting
Kwartaalrapport gegenereerd en gelocked in reporting.db. Na lock: geen UPDATE of DELETE meer mogelijk. Volledige audit trail gewaarborgd.
Quarterly report generated and locked in reporting.db. After lock: no more UPDATE or DELETE possible. Complete audit trail guaranteed.
Export
XML-generatie voor het EU CBAM Transitional Registry. Groepeert per (CN + herkomstland + installatienaam). Valideert voor indiening.
XML generation for the EU CBAM Transitional Registry. Groups by (CN + origin country + installation name). Validates for submission.
Notifications
Realtime notificatiebalk bovenin de app. Direct bijgewerkt na elke actie (verwijderen, samenvoegen, kwartaalafsluiting).
Real-time notification bar at the top of the app. Updated immediately after each action (delete, merge, quarterly closure).
Verwerkingspijplijn
Processing pipeline
Data-invoer
Data entry
Directe invoer, Excel-import of document-upload (factuur, CMR, paklijst, cognossement). AI leest en structureert automatisch.
Direct entry, Excel import or document upload (invoice, CMR, packing list, bill of lading). AI reads and structures automatically.
Verrijking & classificatie
Enrichment & classification
Productregels gekoppeld aan masterdata: emissiefactor, installatienaam, herkomstland. CN×herkomst-combinaties gecontroleerd op duplicaten.
Product lines linked to master data: emission factor, installation name, country of origin. CN×origin combinations checked for duplicates.
CBAM-berekening
CBAM calculation
Per productregel: cbam = emission_factor × max(0, ETS − CO₂_herkomst) × kg/1000. De minimis bewaakt.
Per product line: cbam = emission_factor × max(0, ETS − CO₂_origin) × kg/1000. De minimis monitored.
Kwartaalafsluiting & lock
Quarterly closure & lock
Rapport gegenereerd, gecontroleerd en gelocked in reporting.db. Na lock geen wijzigingen meer mogelijk — audit trail gewaarborgd.
Report generated, verified and locked in reporting.db. After lock no changes possible — audit trail guaranteed.
Onveranderlijk na lockImmutable after lockXML-export naar EU CBAM Registry
XML export to EU CBAM Registry
Gevalideerde XML gegenereerd, gegroepeerd per CN + herkomst + installatie. Klaar voor indiening bij de EU Transitional Registry.
Validated XML generated, grouped by CN + origin + installation. Ready for submission to the EU Transitional Registry.
API-first
Elke functie is eerst als API-endpoint gebouwd. De web-UI is een consumer van de API, niet andersom.
Every function is built first as an API endpoint. The web UI is a consumer of the API, not the other way around.
REST API
Alle acties — zending aanmaken, kwartaal afsluiten, rapport ophalen — zijn beschikbaar als REST-endpoint. Integratie met ERP of WMS zonder schermkoppeling.
All actions — create shipment, close quarter, retrieve report — are available as REST endpoints. Integration with ERP or WMS without screen coupling.
HTMX UI
De web-UI stuurt HTMX-requests naar dezelfde API-endpoints. Geen dubbele logica — de API is leidend, de UI is een consumer.
The web UI sends HTMX requests to the same API endpoints. No duplicate logic — the API is authoritative, the UI is a consumer.
Helpcentrum (/help)
Help centre (/help)
Ingebouwd helpcentrum beschikbaar via /help. Per pagina contextuele uitleg zonder externe documentatiesite.
Built-in help centre available via /help. Per page contextual explanations without an external documentation site.
Architectuur
Architecture
Flask · Python · Docker
Flask · Python · Docker
Multi-tenant Flask-applicatie. Alle tenants in één instantie, gescheiden via row-level isolation. Docker op VM, auto-deploy via GitHub webhook.
Multi-tenant Flask application. All tenants in one instance, separated via row-level isolation. Docker on VM, auto-deploy via GitHub webhook.
Reconciliation Engine
Reconciliation Engine
Aparte Node.js/TypeScript Fastify service voor kwartaalafsluiting en XML-export. Loopt naast de Flask Workspace.
Separate Node.js/TypeScript Fastify service for quarterly closure and XML export. Runs alongside the Flask Workspace.
Multi-tenant
Multi-tenant
Elke klant heeft een eigen tenant met eigen masterdata, zendings- en rapportagehistorie. Superadmin kan wisselen tussen tenants.
Each customer has their own tenant with their own master data, shipment and reporting history. Superadmin can switch between tenants.
Klaar voor CBAM-rapportage?
Ready for CBAM reporting?
Vraag een demo aan of open de applicatie direct. Het helpcentrum is beschikbaar via /help zodra je bent ingelogd.
Request a demo or open the application directly. The help centre is available via /help once you are logged in.