← Back to Blog

Fiscal Compliance for Croatian Race Organisers: ZKI, JIR, and EIRA Explained

Every paid registration in Croatia is a fiscal receipt. Here is what the Porezna uprava expects, and how automated compliance saves you hours each week.

Fiscal compliance is not optional in Croatia

If you charge participants for registration in Croatia, you are issuing a fiscal invoice. Every invoice must include specific elements and be reported to the Porezna uprava (Tax Authority) in real-time. Non-compliance is a financial and legal risk you don't want to take.

This guide covers what's required and how to automate compliance so you focus on organising races, not accounting.

What's required on every fiscal invoice

  • JIR (Jedinstveni identifikator računa) — a unique invoice identifier assigned by the Porezna uprava via API
  • ZKI (Zaštitni kod izdavatelja) — an encrypted signature using your fiscal certificate
  • PDF417 barcode — a 2D barcode encoding the ZKI, required by law
  • Sequential invoice number — gapless sequence within the fiscal year
  • Issue date and time with second precision
  • Operator identifier (OIB of the person operating the cash register)
  • Payment method (card, cash, Stripe, etc.)
  • Tax breakdown by rate (25% PDV, exempt, etc.)

The ZKI (encrypted signature)

ZKI is generated by signing a specific string (OIB + issue time + sequential number + invoice amount) with your private fiscal certificate. The resulting signature proves to the Porezna uprava that the invoice was issued by you, at that time, for that amount.

You cannot generate ZKI by hand. It requires cryptographic operations with your private certificate. Time-Monkey automates this on every invoice.

The JIR (unique identifier)

JIR is obtained by calling the Porezna uprava's FIN SOAP API with the invoice details + ZKI. The API returns a UUID that must be printed on the invoice.

The JIR retrieval is real-time — if the Tax Authority service is down, you must re-attempt with "naknadna dostava" (delayed delivery) marker and try again until successful.

Time-Monkey handles retry logic and tracks "naknadna dostava" status per invoice.

Fiscal certificates (test + production)

You need two certificates:

  • Test certificate (CIS-test): for development and testing without affecting real fiscal records
  • Production certificate: for actual invoice fiscalisation

Both are issued by FINA against your OIB. Certificates expire every 5 years — Time-Monkey tracks expiration and warns in advance.

Storno (reversal) documents

If a participant requests a refund:

  1. Issue a Storno document that references the original invoice
  2. Storno gets its own JIR from Porezna uprava
  3. Both invoices remain in the sequence (never delete a fiscal invoice)
  4. Net tax settlement reflects the Storno

Time-Monkey auto-generates Storno from the admin refund action — one click.

EIRA export

Porezna uprava periodically requests the EIRA export (Elektronski izvoz računa). This is a structured XML file containing all your fiscal documents for a given period.

Time-Monkey's EIRA export button on the Documents screen generates a compliant file in seconds.

Registration in the fiscal system

Before you can issue fiscal invoices, you must:

  1. Register your business in the Porezna uprava's fiscal system
  2. Declare each "operator" (employee or system user issuing invoices)
  3. Register your cash register / software identifier
  4. Upload certificates to your organiser account

Time-Monkey's Company settings page collects all this info and wires it to the fiscal flow.

Non-HR organisers — what applies to you?

If your event is held in Croatia but you're a Slovenian or Italian organiser, HR fiscal rules still apply for registration revenue from that event.

Time-Monkey supports multiple fiscal jurisdictions. Slovenian organisers can configure davčna blagajna integration (similar concept, different API).

Practical advice

  • Don't try to build fiscal compliance yourself. It's a 6-month full-time project.
  • Test with CIS-test environment extensively before going live.
  • Never delete or modify a fiscalised invoice. Always use Storno.
  • Keep fiscal certificates secure and backed up.
  • Renew certificates 30+ days before expiration.

Time-Monkey was built with Croatian fiscal compliance as a first-class feature, not an add-on. If you're a Croatian organiser, this alone is often the deciding factor vs international competitors who leave you to figure it out.

Related articles

Ready to organize your next race?

Create your organizer account and publish your first event in under 10 minutes.

Get Started →