---
title: "Croatia — Fiscalisation 2.0 B2B mandate"
description: "Croatia e-invoicing: Fiscalisation 2.0 B2B mandate from 1 January 2026 for VAT taxpayers, structured invoices via national portal + Peppol BIS for cross-border."
canonical: "https://docs.get-flowie.com/compliance/hr"
source: "https://docs.get-flowie.com/compliance/hr.html"
---

# Croatia — Fiscalisation 2.0 B2B mandate

Compliance · 🇭🇷 Croatia Live mandate

# Croatia — Fiscalisation 2.0 B2B mandate

Fiscalisation 2.0 B2B mandate live since 1 January 2026 — regulator: [Porezna uprava (Tax Administration)](<https://www.porezna-uprava.hr>). _Facts last refreshed: 2026-07-13._

Coverage model

Flowie operates a registered Peppol Access Point in this jurisdiction **directly** where we hold national accreditation, **or via a vetted local partner** registered with the in-country regulator where on-the-ground presence is required (KSeF, SDI intermediario, ZATCA service-provider, etc.). Either way, you call the same `POST /v1/documents/send`. 

## TL;DR

  * Croatia's **Fiscalisation 2.0** framework extended pre-existing B2C real-time fiscalisation to **B2B** on 1 January 2026.
  * All VAT-registered businesses must issue structured e-invoices and report each one to the national portal in real-time.
  * Domestic format: **UBL 2.1 with the HR-CIUS** ; cross-border via Peppol BIS 3.0.
  * Flowie's HR access point handles the fiscalisation handshake transparently — your call to `/v1/documents/send` emits the JIR/ZKI tokens automatically.



## Deadlines

Date| Who| What  
---|---|---  
2013-01-01| All cash-register B2C| Real-time fiscalisation (OIB, JIR, ZKI) — already live.  
**2026-01-01**|  All VAT-registered B2B| Structured e-invoice + real-time fiscalisation report.  
2027-01-01| Non-VAT businesses (planned)| Smaller taxpayers absorbed; legislation pending.  
  
## Background

Croatia has run real-time B2C _fiscalisation_ since 2013 — every retail receipt is reported to the Porezna uprava, which echoes back a **JIR** (unique invoice identifier) and the seller stamps a **ZKI** (issuer protection code). _Fiscalisation 2.0_ , in force since 1 January 2026, ports the same model to B2B: the invoice itself becomes structured (UBL 2.1) and is fiscalised in the same step.

Practically: when Flowie sends a domestic HR invoice, our AP signs it, transmits to the recipient via Peppol, and posts the fiscalisation envelope to the Porezna uprava service — all inside one `/v1/documents/send` call. The response includes the JIR + ZKI as `complianceReceipt`.

## Format profile

  * **UBL 2.1 with HR-CIUS** for domestic B2B; Peppol BIS 3.0 for cross-border (HR is OpenPeppol member).
  * **OIB** (Croatian tax ID, 11 digits) is mandatory on both seller and buyer. Plain VAT is not accepted in lieu.
  * JIR + ZKI are returned by the fiscalisation service and embedded into the invoice as `cbc:UUID` and a custom signature element.



## Required fields

  * seller.taxId.oibstring (11 digits)required

Croatian OIB. Validated by check-digit.

  * buyer.taxId.oibstring (11 digits)required for B2B

Buyer OIB; mandatory for any domestic B2B invoice.

  * fiscalisation.operatorOibstringrequired

OIB of the natural person operating the cash-register / issuing system.




## Public sector (B2G)

Hub| Peppol identifier scheme| Lookup  
---|---|---  
**Servis e-Račun (FINA)**| `9934:HR-FINA-<authority-id>`| <https://www.fina.hr/e-racun>  
  
Public-sector recipients route via FINA's Servis e-Račun, mandatory since 2019. Flowie resolves the Peppol ID for you.

## B2B reporting / clearance

**Porezna uprava — Fiscalisation 2.0** — Real-time invoice register; every domestic B2B invoice posted within seconds of issue.

Lifecycle status| Reported as  
---|---  
`issued`| Fiscalisation request sent → JIR + ZKI returned.  
`cancelled`| Storno fiscalisation message; original JIR referenced.  
`paid`| Optional payment confirmation; not always required.  
  
## Error codes

Code| Meaning| Fix  
---|---|---  
`HR-FISC-101`| OIB unknown to Porezna uprava.| Verify the OIB; if newly registered, wait 24h for the registry to propagate.  
`HR-FISC-205`| ZKI signature does not match the seller's certificate.| Sandbox uses a Flowie test cert; production needs the seller's FINA-issued cert linked to their organisation.  
`HR-CIUS-031`| Missing operator OIB.| Set `fiscalisation.operatorOib`.  
  
## Testing in sandbox

What you want to test| How  
---|---  
Domestic B2B happy path| Use `seller.taxId.oib = "12345678901"` in sandbox; JIR `SBX-...` echoed back.  
Force fiscalisation rejection| Send with `simulateCompliance: "reject_HR_FISC_101"`.  
  
## FAQ

### Is the OIB the same as the VAT number?

The OIB is the 11-digit tax identifier; the VAT number is `HR` \+ OIB for VAT-registered entities. Send the OIB as `seller.taxId.oib` and Flowie derives the VAT representation when needed.

### What about non-resident sellers invoicing into HR?

If the seller is not OIB-registered, the invoice is not domestic — it follows EU cross-border rules and Peppol BIS without fiscalisation.

## References

**Primary sources** (government / regulator / standards body):

  * [EU Commission · eInvoicing in Croatia](<https://ec.europa.eu/digital-building-blocks/sites/spaces/DIGITAL/pages/467108879/eInvoicing+in+Croatia>) — Pan-EU reference factsheet.
  * [FINA · Servis eRačun za državu](<https://www.fina.hr/eracun-za-drzavu>) — National B2G platform operated by FINA.
  * [Ministarstvo financija · Porezna uprava](<https://www.porezna-uprava.hr/en/Pages/default.aspx>) — Tax administration — Fiscalization 2.0.
  * [Fiskalizacija portal](<https://www.fiskalizacija.hr/>) — Official Fiscalization 2.0 portal.



**Industry analyses** (vendor trackers — useful for cross-referencing):

  * [EDICOM · Croatia Fiscalization 2.0](<https://edicomgroup.com/blog/croatia-electronic-invoicing-b2b>) — Industry tracker — 2026 B2B mandate.
