FiskHub API
A device makes a sale, we sign it and forward it to the Tax Administration, and you get the JIR back in time to print the receipt.
Fiscalize a sale
One synchronous call. Request in, JIR out, typically in one to three seconds.
curl -sS https://api.fiskhub.com/v1/invoices \ -H "Authorization: Bearer $FISKHUB_API_KEY" \ -H "Idempotency-Key: 8f0b4e2a-6c31-4d9f-9a75-2b8e1c0d47f3" \ -H "Content-Type: application/json" \ -d '{ "device_id": "6f1c0f9e-2b7a-4a56-9d3e-1f0b8a4c7d21", "occurred_at": "2026-08-27T10:32:11+02:00", "total": "4.50", "payment_method": "K", "vat": [{ "rate": "25.00", "base": "3.60", "amount": "0.90" }] }'{ "id": "inv_01J9Z4T7M2K8Q6R3V5X1Y0B2C4", "status": "confirmed", "jir": "2cf55235-9470-4b5c-a539-463f52b109d2", "zki": "e4d909c290d0fb1ca068ffaddf22cbd0", "qr_payload": "https://porezna.gov.hr/rn?jir=2cf55235-9470-4b5c-a539-463f52b109d2&datv=20260827_1032&izn=450", "number": "1041", "occurred_at": "2026-08-27T10:32:11+02:00", "total": "4.50", "currency": "EUR"}Before you write any integration code
Where to go next
| Page | What it covers |
|---|---|
| Getting started | Base URL, API keys, test versus live, your first request. |
| Fiscalizing a sale | The POST /v1/invoices walkthrough, field by field. |
| Handling the no-JIR response | Start here if you read only one page. |
| Idempotency | Why Idempotency-Key is mandatory, and what double-fiscalization costs. |
| Status lifecycle | The five invoice statuses and which of them are terminal. |
| QR codes | Payload format and the printing requirements the regulation imposes. |
| Error taxonomy | Every error code, whether to retry, and the concrete fix. |
What this API is, and is not
It fiscalizes B2C sales at unattended, self-service devices in Croatia, and nothing else.
There are no webhooks and no batch endpoint — fiscalization is synchronous, so neither
has a job to do. eRačun (B2B invoicing) and eIzvještavanje are outside its scope. Poll
GET /v1/invoices/{id} when you need to know whether a retrying
invoice has since been confirmed.
/v1 never breaks. See versioning.