# 04 — Regulatory Reference — VAT/CIT/HR-FISK/SEPA

# Bilko HR — Regulatory Reference — VAT/CIT/HR-FI

**Last Updated:** 2026-05-28  
**Status:** COMPLETE — regulatory reference consolidated  
**Source files:** - Regulatory HR README - HR-FISK integration spec

---

## Table of Contents

1. Croatia (HR) Regulatory Overview
2. VAT (PDV)
3. Corporate Income Tax (CIT)
4. E-Invoice (HR-FISK 2.0 / eRačun B2B)
5. Chart of Accounts
6. Financial Statement Filing
7. Bank Integration
8. HR-FISK Integration Spec — Technical Deep Dive

---

## Croatia (HR) Regulatory Overview

- Country Code: HR
- Currency: EUR (adopted January 2024, previously HRK)
- EU Status: Member since 2013
- Open Banking: PSD2 full compliance (Berlin Group NextGenPSD2)
- Payment System: SEPA (full member)

---

## VAT (PDV - Porez na dodanu vrijednost)

<table id="bkmrk-rate-type-rate-descr"><colgroup><col style="width: 16%"></col><col style="width: 5%"></col><col style="width: 78%"></col></colgroup><thead><tr><th>Rate Type</th><th>Rate</th><th>Description</th></tr></thead><tbody><tr><td>Standard</td><td>25%</td><td>General goods and services</td></tr><tr><td>Intermediate</td><td>13%</td><td>Certain foods, water supply, accommodation</td></tr><tr><td>Reduced</td><td>5%</td><td>Books, newspapers, baby food</td></tr><tr><td>Zero</td><td>0%</td><td>Exports, intra-EU supply</td></tr></tbody></table>

Registration Threshold: 60,000 EUR annual turnover  
Return Frequency: Monthly  
Filing Deadline: Last day of following month  
Portal: ePorezna (https://www.porezna-uprava.hr)

---

## Corporate Income Tax (CIT - Porez na dobit)

- Standard Rate: 18%
- Reduced Rate: 10% (if annual revenue less than 1M EUR)
- Filing Deadline: April 30 (for previous fiscal year)
- Payment: Annual (no advance payments for small entities)

### Withholding Tax (WHT)

<table id="bkmrk-type-rate-dividends-"><thead><tr><th>Type</th><th>Rate</th></tr></thead><tbody><tr><td>Dividends</td><td>10%</td></tr><tr><td>Interest</td><td>12%</td></tr><tr><td>Royalties</td><td>15%</td></tr></tbody></table>

### Small Business Regime (Pausalni obrt)

- Threshold: less than 60,000 EUR annual turnover
- Taxation: Simplified lump-sum based on activity
- Benefits: Reduced compliance, simplified VAT rules

---

## E-Invoice (HR-FISK 2.0 / eRačun B2B)

Platform: https://hr-fisk.fina.hr  
Status: Operational (launched January 2026)  
Mandatory Since: January 1, 2026 (B2B/B2G/B2C)

Format: UBL 2.1 XML with HR-CIUS (Croatian Implementation User Specification)  
Protocol: AS4  
Network: Peppol-compatible  
Certificate: FINA certificate required

Penalties: Up to 500,000 EUR for non-compliance (SEVERE)

Archive Requirement: 11 years

### Compliance Deadlines

<table id="bkmrk-entity-type-obligati"><colgroup><col style="width: 32%"></col><col style="width: 37%"></col><col style="width: 30%"></col></colgroup><thead><tr><th>Entity Type</th><th>Obligation</th><th>Date</th></tr></thead><tbody><tr><td>VAT-registered taxpayers</td><td>Issue AND receive B2B e-invoices</td><td>January 1, 2026 (ACTIVE)</td></tr><tr><td>Non-VAT registered taxpayers</td><td>RECEIVE e-invoices</td><td>January 1, 2026 (ACTIVE)</td></tr><tr><td>Non-VAT registered taxpayers</td><td>ISSUE and fiscalize e-invoices</td><td>January 1, 2027</td></tr><tr><td>All B2G suppliers</td><td>Issue e-invoices to government</td><td>July 1, 2019 (long active)</td></tr></tbody></table>

WARNING: Penalties for non-compliance: up to EUR 500,000 per violation. Bilko Croatian users MUST use eRačun — blocking Croatian invoicing until integration is complete is correct policy.

---

## HR-FISK Integration Spec — Technical Deep Dive

Last Updated: 2026-03-03  
Status: PLACEHOLDER — ZKI/JIR types defined, API call not implemented  
Regulatory Confidence: HIGH (Croatia is EU member, well-documented)

### Overview

Croatia operates two parallel fiscalization systems since January 1, 2026:

1. Fiscalization 1.0 (B2C) — Real-time cash register fiscalization for consumer transactions
2. Fiscalization 2.0 (B2B) — Mandatory electronic invoicing for B2B transactions via the eRačun platform

Bilko integration target is Fiscalization 2.0 — the B2B eRačun mandate.

Regulatory Authority: Porezna uprava (Croatian Tax Administration)  
Platform Operator: FINA (Financijska agencija) — manages eRačun platform  
FINA Website: https://www.fina.hr  
Tax Authority Website: https://www.porezna-uprava.hr  
Legal Basis: New Fiscalization Act 2026 (amendments effective Jan 1, 2026)

### What Fiscalization 2.0 Requires

All B2B invoices between Croatian VAT-registered taxpayers must:

1. Be structured in UBL 2.1 or CII format (EN 16931 compliant)
2. Be transmitted in real-time to the Croatian Tax Authority via the eRačun monitoring system
3. Carry a JIR (Jedinstveni Identifikator Računa — Unique Invoice Identifier) assigned by the Tax Authority
4. Carry a ZKI (Zaštitni Kod Izdavatelja — Issuer Security Code) generated by the taxpayer

### JIR — Unique Invoice Identifier

- Format: UUID (e.g., a1b2c3d4-e5f6-7890-abcd-ef1234567890)
- Assigned by: Croatian Tax Authority (Porezna uprava) upon successful fiscalization
- Purpose: Proof that the invoice has been registered with the Tax Authority
- Must appear on: Invoice document (as QR code or printed text)

### ZKI — Issuer Security Code

- Format: 32-character hexadecimal MD5 hash
- Generated by: The taxpayer (Bilko, on behalf of the company)
- Algorithm: MD5 hash of OIB + IssueDateTime + InvoiceNumber + BusinessUnitCode + CashRegisterCode + TotalAmount (concatenated without separator, signed with private key from FINA certificate)
- Purpose: Proves the invoice originated from the declared issuer
- Note: ZKI generation requires FINA digital certificate (private key)

### FINA — Financijska Agencija

Role: FINA is Croatia’s national financial agency responsible for:

- Operating the eRačun B2G platform (since 2019)
- Operating the eRačun B2B monitoring system (since 2026)
- Issuing qualified digital certificates for business use
- Processing annual financial statements

FINA Certificate: FINA issues qualified digital certificates (X.509) required for:

- Signing e-invoices (Fiscalization 2.0)
- Signing B2G e-invoices
- Accessing FINA services

Certificate types:

- Personal certificate (for natural persons)
- Business certificate (poslovni certifikat) — for legal entities

Obtaining a FINA certificate:

1. Apply at any FINA office (physical presence required for first issuance)
2. Provide business registration documents + OIB
3. Issued as .p12 / .pfx file with password
4. Valid for 5 years
5. Cost: TBD — check www.fina.hr/certifikati

Requirements for Bilko:

- Each Croatian organization in Bilko must upload their FINA certificate
- Certificate stored encrypted (AES-256) in DB
- Certificate password stored separately (encrypted, or in key vault)
- Bilko loads certificate at invoice submission time to generate ZKI and sign

### API Overview

<table id="bkmrk-environment-base-url"><colgroup><col style="width: 15%"></col><col style="width: 84%"></col></colgroup><thead><tr><th>Environment</th><th>Base URL</th></tr></thead><tbody><tr><td>Production</td><td>https://cis.porezna-uprava.hr/v2</td></tr><tr><td>Sandbox</td><td>https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest</td></tr></tbody></table>

Note on protocol: Fiscalization 1.0 used SOAP/WSDL. Fiscalization 2.0 (B2B eRačun) uses REST with UBL 2.1 XML.

### Authentication

Authentication for Fiscalization 2.0 uses mutual TLS (mTLS) with FINA certificate:

- Client presents FINA certificate in TLS handshake
- No separate API key required — identity proven by certificate
- Bilko must load .p12 certificate and configure TLS client cert in HTTP client

### Key API Operations

<table id="bkmrk-method-path-descript"><thead><tr><th>Method</th><th>Path</th><th>Description</th></tr></thead><tbody><tr><td>POST</td><td>/racun</td><td>Submit invoice for fiscalization</td></tr><tr><td>GET</td><td>/racun/{jir}</td><td>Get invoice status by JIR</td></tr><tr><td>POST</td><td>/racun/{jir}/storno</td><td>Cancel fiscalized invoice</td></tr></tbody></table>

### UBL 2.1 XML Format — HR-CIUS

- EU Standard: EN 16931 (European e-invoice standard)
- Croatian CIUS: HR-CIUS (Croatian Implementation User Specification)
- CustomizationID: urn:cen.eu:en16931:2017#compliant#urn:fina.hr:croatian-cius:2025
- ProfileID: urn:fdc:peppol.eu:2017:poacc:billing:01:1.0
- InvoiceTypeCode: 380 (Commercial Invoice)
- Currency: EUR (Croatia joined eurozone January 1, 2023)

### OIB (Osobni identifikacijski broj)

Croatia uses OIB as the primary tax/company identifier:

- Format: 11 digits
- Validation: ISO 7064 MOD 11,10 check digit algorithm
- Used for both VAT ID and company registration
- In UBL: cbc:CompanyID = HR + OIB (e.g., HR12345678901) in PartyTaxScheme

OIB Validation is already implemented in Bilko (packages/country-hr/src/fisk/index.ts).

### Required Invoice Fields

<table id="bkmrk-field-xml-element-fo"><colgroup><col style="width: 20%"></col><col style="width: 33%"></col><col style="width: 16%"></col><col style="width: 29%"></col></colgroup><thead><tr><th>Field</th><th>XML Element</th><th>Format</th><th>Notes</th></tr></thead><tbody><tr><td>Invoice number</td><td>cbc:ID</td><td>String</td><td>Sequential per business unit</td></tr><tr><td>Issue date</td><td>cbc:IssueDate</td><td>YYYY-MM-DD</td><td></td></tr><tr><td>Due date</td><td>cbc:DueDate</td><td>YYYY-MM-DD</td><td></td></tr><tr><td>Invoice type code</td><td>cbc:InvoiceTypeCode</td><td>380</td><td>Commercial invoice</td></tr><tr><td>Currency</td><td>cbc:DocumentCurrencyCode</td><td>EUR</td><td>Since Jan 1, 2023</td></tr><tr><td>Supplier name</td><td>cac:AccountingSupplierParty</td><td>String</td><td></td></tr><tr><td>Supplier OIB (VAT)</td><td>cac:PartyTaxScheme/cbc:CompanyID</td><td>HR + 11 digits</td><td></td></tr><tr><td>Buyer name</td><td>cac:AccountingCustomerParty</td><td>String</td><td></td></tr><tr><td>Tax total</td><td>cac:TaxTotal/cbc:TaxAmount</td><td>Decimal 2dp</td><td></td></tr></tbody></table>

### Croatian VAT Rates (PDV)

<table id="bkmrk-rate-category-code-a"><colgroup><col style="width: 5%"></col><col style="width: 18%"></col><col style="width: 76%"></col></colgroup><thead><tr><th>Rate</th><th>Category Code</th><th>Applies To</th></tr></thead><tbody><tr><td>25%</td><td>S</td><td>Standard rate — most goods and services</td></tr><tr><td>13%</td><td>S</td><td>First reduced rate — food, accommodation, utilities</td></tr><tr><td>5%</td><td>S</td><td>Second reduced rate — books, medicines, newspapers</td></tr><tr><td>0%</td><td>Z</td><td>Zero rate — intra-EU transport, international transport</td></tr></tbody></table>

### Integration Architecture — How Bilko Calls FISK

Flow:

1. Bilko User creates invoice
2. Bilko Frontend sends to Bilko API
3. invoice.service.ts processes
4. FiskalizacijaService (TODO) validates OIB (IMPLEMENTED), generates ZKI (TODO), generates eRačun XML (IMPLEMENTED), signs XML (TODO), POSTs to FISK API (TODO)
5. JIR + ZKI returned from Porezna uprava
6. Embed JIR in invoice document
7. Store JIR, ZKI in Invoice.hrFiskData

### Bilko Code Location

<table id="bkmrk-component-file-statu"><colgroup><col style="width: 33%"></col><col style="width: 45%"></col><col style="width: 21%"></col></colgroup><thead><tr><th>Component</th><th>File</th><th>Status</th></tr></thead><tbody><tr><td>FISK types + placeholder</td><td>packages/country-hr/src/fisk/index.ts</td><td>PLACEHOLDER</td></tr><tr><td>OIB validation</td><td>packages/country-hr/src/fisk/index.ts</td><td>IMPLEMENTED</td></tr><tr><td>eRačun UBL XML builder</td><td>packages/country-hr/src/filing/index.ts</td><td>IMPLEMENTED</td></tr><tr><td>Fiscal year/filing rules</td><td>packages/country-hr/src/fiscal/index.ts</td><td>IMPLEMENTED</td></tr><tr><td>ZKI generation</td><td>Not yet implemented</td><td>TODO</td></tr><tr><td>FINA cert loading</td><td>Not yet implemented</td><td>TODO</td></tr><tr><td>FISK API client</td><td>Not yet implemented</td><td>TODO</td></tr><tr><td>invoice.service.ts integration</td><td>Not yet implemented</td><td>TODO</td></tr><tr><td>JIR storage in DB</td><td>Not yet implemented</td><td>TODO (DB migration)</td></tr></tbody></table>

### Implementation Status

<table id="bkmrk-feature-status-notes"><colgroup><col style="width: 42%"></col><col style="width: 17%"></col><col style="width: 40%"></col></colgroup><thead><tr><th>Feature</th><th>Status</th><th>Notes</th></tr></thead><tbody><tr><td>eRačun UBL 2.1 XML generation</td><td>IMPLEMENTED</td><td>filing/index.ts</td></tr><tr><td>OIB validation</td><td>IMPLEMENTED</td><td>fisk/index.ts</td></tr><tr><td>JIR/ZKI type definitions</td><td>IMPLEMENTED</td><td>fisk/index.ts</td></tr><tr><td>ZKI generation algorithm</td><td>NOT IMPLEMENTED</td><td>Requires FINA cert private key</td></tr><tr><td>FINA certificate loading</td><td>NOT IMPLEMENTED</td><td>.p12 parsing needed</td></tr><tr><td>FISK API client</td><td>NOT IMPLEMENTED</td><td>Placeholder throws error</td></tr><tr><td>Get invoice status</td><td>NOT IMPLEMENTED</td><td>Placeholder throws error</td></tr><tr><td>invoice.service.ts integration</td><td>NOT IMPLEMENTED</td><td>Service wiring pending</td></tr><tr><td>DB fields for JIR/ZKI</td><td>NOT IMPLEMENTED</td><td>Prisma migration needed</td></tr><tr><td>Settings UI for FINA cert upload</td><td>NOT IMPLEMENTED</td><td>Frontend task</td></tr><tr><td>Country gate (block without cert)</td><td>IMPLEMENTED</td><td>packages/core/src/country-gate.ts</td></tr></tbody></table>

### Next Steps (Full Production Implementation)

Phase 1 — ZKI Generation (1 week): Implement generateZKI function, write unit tests

Phase 2 — FISK API Client (1-2 weeks): Implement submitInvoiceToFISK, getInvoiceStatus, cancel/storno flow

Phase 3 — Service Integration (1 week): Wire FiskalizacijaService into invoice.service.ts, add DB fields, Prisma migration, Settings UI for FINA cert upload

Phase 4 — Compliance (ongoing): Obtain FINA test certificate, sandbox testing, production certificate, register with Porezna uprava, consult Croatian accounting advisor

Phase 5 — B2G (Optional): eRačun B2G uses FINA eRačun za državu platform (separate endpoint, same UBL 2.1 format, already mandatory since 2019)

---

## Sources

### Regulatory Overview

- Croatia Confirms Mandatory B2B E-Invoice 2026 | EDICOM
- Croatia Fiscalization Law | Fintua
- Mandatory e-Invoicing Croatia 2026 | Fiscal Solutions
- Croatia eInvoicing B2B Mandate | VATit

### Technical Specifications

- FINA — Financijska agencija (www.fina.hr)
- Porezna uprava — Fiskalizacija (www.porezna-uprava.hr/HR\_Fiskalizacija/)
- Croatia B2G e-invoicing 2019 | SEEBURGER
- 2025 Croatia eInvoicing Country Sheet | European Commission

---

Local source files: - /Users/makinja/business/ALAI-Holding-AS/products/Bilko/docs/regulatory/HR/README.md - /Users/makinja/business/ALAI-Holding-AS/products/Bilko/docs/integrations/hr-fisk-spec.md

BookStack Canonical URL: https://docs.alai.no/books/bilko-hr-market-entry/page/04-regulatory-reference