Croatia B2C Fiscalization (Racun) for Odoo
Real-time cash-receipt fiscalization to the Tax Administration CIS — compute the ZKI, sign and submit the RacunZahtjev, get the JIR, print the verification QR, straight from Odoo.
What It Does
This module fiscalizes Croatian B2C cash receipts (racun) in real time against the Tax Administration's CIS (Centralni informacijski sustav) SOAP service. For every B2C sale it computes the ZKI (issuer protective code), builds and XML-DSig-signs a RacunZahtjev SOAP envelope, submits it to the CIS, and stores the returned JIR (unique invoice identifier). A Porezna verification QR is rendered on every receipt so buyers can confirm it was reported. This is the ongoing fiscalization obligation that continues alongside Fiskalizacija 2.0 from 2026.
Built on a Shared e-Invoice Engine
This connector depends on the e-Invoice Core Engine and the B2B Fiskalizacija 2.0 module, reusing their enveloped XML-DSig signer, QR engine, bring-your-own-key REST transport, document state machine and OIB identity. The B2C cash-receipt logic is added as a registered profile — no duplicated plumbing, a smaller and more reliable footprint.
Key Features
ZKI Protective Code
Computed exactly as Croatia specifies — OIB + datetime + number + premise + register + total signed with the issuer's RSA-SHA1 (BYOK) key and MD5-hashed to a 32-character hex code.
RacunZahtjev SOAP
Full request envelope in the documented apis-it / FINA f73 namespace, enveloped XML-DSig signed with your FINA certificate, and a RacunOdgovor parser extracting the JIR or CIS error rows.
CIS SOAP Client
Built on the engine REST transport: retry/backoff, full logging, sandbox toggle and mutual-TLS with the FINA certificate. CIS hosts pre-filled and fully editable; an EchoRequest probe powers the test button.
OIB Validation
The real ISO 7064 MOD 11,10 check-digit algorithm validates the company OIB, the operator OIB and partner OIBs before anything is fiscalized.
Verification QR
Each receipt carries the Porezna provjeri racun verification URL (JIR or ZKI + datetime + total) rendered to a scannable QR for the printed/PDF receipt.
Validate / Generate / Fiscalize
Business-rule validation (marks, number, payment method, VAT-bucket consistency, total reconciliation), one-click fiscalize on the invoice, an onboarding wizard and a demo-safe retry cron (off by default).
Bring Your Own Key (BYOK)
The CIS requires your registered FINA application certificate. It is referenced by filesystem path and used only to seal the ZKI, sign the SOAP request and complete the mutual-TLS handshake — locally, on your own server. No credentials are bundled with the module, and receipt data is transmitted only to the CIS endpoint you configure.
Compatibility
Odoo 18.0 and 19.0 (Community & Enterprise). Requires the e-Invoice Core Engine and the Croatia Fiskalizacija 2.0 module. Python dependencies: lxml, qrcode, requests, cryptography.
Croatia B2C Fiscalization (Racun) — part of the Pokutsoft global e-invoicing suite. Support: support@pokutsoft.com
Screenshots
B2C Cash Invoice Fiscalized
B2C Fiscal Document Envelope
Update date: 2026-07-02