API Dokumentacija

REST API za provjeru statusa e-racuna, pregled informacijskih posrednika i statistike trzista.

BASE URL https://eracun.informacija.hr
Bez autentifikacije API je javan i besplatan. Nije potreban API kljuc ni registracija. Svi odgovori su u JSON formatu (Content-Type: application/json).
Rate limiting API je ogranicen na 60 zahtjeva po minuti po IP adresi. Svaki odgovor sadrzi headere X-RateLimit-Limit i X-RateLimit-Remaining. Ako prekoracite limit, dobit cete 429 Too Many Requests s Retry-After headerom. Za vece potrebe javite se na info@informacija.hr.
GET /api/lookup/{oib}

Provjeri je li tvrtka registrirana za primanje e-racuna. Vraca status registracije, informacijskog posrednika, datume aktivacije i tehnicke detalje.

Parametri

ParametarOpis
oib obavezno
string
OIB tvrtke (tocno 11 znamenki). Primjer: 51404356549

Primjer zahtjeva

# Provjera statusa e-racuna za OIB
curl https://eracun.informacija.hr/api/lookup/51404356549
fetch('https://eracun.informacija.hr/api/lookup/51404356549')
  .then(function(response) { return response.json(); })
  .then(function(data) {
    if (data.success) {
      console.log('Status:', data.status);
      console.log('Posrednik:', data.posrednikNaziv || data.posrednikOib);
    } else {
      console.log('Nije registriran:', data.errorMessage);
    }
  });
using System.Net.Http;
using System.Text.Json;

HttpClient client = new HttpClient();
string url = "https://eracun.informacija.hr/api/lookup/51404356549";
HttpResponseMessage response = client.GetAsync(url).GetAwaiter().GetResult();
string json = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
JsonDocument doc = JsonDocument.Parse(json);
bool success = doc.RootElement.GetProperty("success").GetBoolean();

if (success)
{
    string status = doc.RootElement.GetProperty("status").GetString();
    string posrednik = doc.RootElement.GetProperty("posrednikOib").GetString();
    Console.WriteLine($"Status: {status}, Posrednik: {posrednik}");
}

Polja odgovora

success bool Je li OIB registriran za e-racune
oib string OIB koji je provjeren
status string Active, Pending, Expired ili NotRegistered
posrednikOib string OIB informacijskog posrednika (access point)
posrednikNaziv string Naziv informacijskog posrednika (ako je poznat)
activationDate string Datum aktivacije registracije (format: yyyy-MM-dd)
expirationDate string Datum isteka registracije (format: yyyy-MM-dd)
endpointUri string URL endpointa za slanje e-racuna
mpsUrl string URL MPS servisa (metadata provider)
serviceDescription string Opis usluge iz registra
technicalContactUrl string Kontakt URL za tehnicku podrsku
errorMessage string Poruka greske (ako success = false)
timestamp string Vrijeme izvrsenja provjere (ISO 8601)

Primjeri odgovora

200 OK Tvrtka je registrirana

{
  "success": true,
  "errorMessage": "",
  "oib": "51404356549",
  "status": "Active",
  "endpointUri": "https://test.as4.eposlovanje.hr/services/msh",
  "mpsUrl": "https://gateway.apis-it.hr/eRacun-SMP",
  "posrednikOib": "62781739468",
  "posrednikNaziv": "FINA d.o.o.",
  "activationDate": "2025-01-01",
  "expirationDate": "2025-12-31",
  "serviceDescription": "Zaprimanje elektronickih dokumenata",
  "technicalContactUrl": "https://www.fina.hr",
  "timestamp": "2025-01-13T15:30:00Z"
}

404 Tvrtka nije registrirana

{
  "success": false,
  "errorMessage": "Primatelj nije registriran",
  "oib": "00000000000",
  "status": "NotRegistered",
  "timestamp": "2025-01-13T15:30:00Z"
}

400 Neispravan OIB format

{
  "success": false,
  "errorMessage": "OIB mora sadrzavati tocno 11 znamenki.",
  "oib": "123",
  "status": ""
}

Isprobaj

Testiraj lookup


                        
GET /api/company/{oib}

Dohvati podatke o tvrtki iz Sudskog registra (naziv, adresa, MBS, status). Rezultati se cacheiraju 30 dana.

Parametri

ParametarOpis
oib obavezno
string
OIB tvrtke (tocno 11 znamenki). Primjer: 51404356549

Primjer zahtjeva

curl https://eracun.informacija.hr/api/company/51404356549

Polja odgovora

success bool Je li tvrtka pronadena u registru
oib string OIB tvrtke
naziv string Puni naziv tvrtke
skraceniNaziv string Skraceni naziv
adresa string Ulica i kucni broj sjedista
mjesto string Mjesto / naselje sjedista
postanskiBroj string Postanski broj
mbs string Maticni broj subjekta
statusSubjekta string Status u registru (aktivan, u likvidaciji, itd.)
vrstaSubjekta string Pravni oblik (d.o.o., d.d., obrt, itd.)
cachedResult bool Je li rezultat vracen iz cache-a (TTL 30 dana)
timestamp string Vrijeme odgovora (ISO 8601)

Primjeri odgovora

200 OK Tvrtka pronadena

{
  "success": true,
  "oib": "51404356549",
  "naziv": "Informacija d.o.o. za informaticke usluge",
  "skraceniNaziv": "Informacija d.o.o.",
  "adresa": "Vukovarska 12",
  "mjesto": "Zagreb",
  "postanskiBroj": "10000",
  "mbs": "081234567",
  "statusSubjekta": "Aktivan",
  "vrstaSubjekta": "d.o.o.",
  "cachedResult": false,
  "timestamp": "2025-01-13T15:30:00Z"
}

404 Tvrtka nije u registru

{
  "success": false,
  "errorMessage": "Tvrtka nije pronadena u Sudskom registru.",
  "oib": "00000000000"
}

Isprobaj

Testiraj company lookup


                        
GET /api/providers

Vraca listu svih registriranih informacijskih posrednika (access pointova) u Hrvatskoj, zajedno s brojem klijenata i tehnickim detaljima.

Polja odgovora

providers array Lista posrednika
providers[].oib string OIB posrednika
providers[].naziv string Naziv tvrtke posrednika
providers[].clientCount int Broj jedinstvenih klijenata (prema provedenim provjerama)
providers[].endpointUri string URL AS4 endpointa posrednika
providers[].firstSeen string Kada je posrednik prvi put zabiljezen (ISO 8601)
providers[].lastSeen string Kada je posrednik zadnji put viden (ISO 8601)

Primjer odgovora

200 OK

{
  "providers": [
    {
      "oib": "85821130368",
      "naziv": "FINA",
      "clientCount": 1247,
      "endpointUri": "https://as4.fina.hr/services/msh",
      "firstSeen": "2025-01-10T08:00:00Z",
      "lastSeen": "2025-01-13T15:30:00Z"
    }
  ]
}

Isprobaj


                        
GET /api/providers/marketshare

Vraca podatke o trzisnom udjelu posrednika, izracunat prema broju klijenata. Top 8 posrednika prikazani su pojedinacno, ostali su agregirani.

Polja odgovora

totalClients int Ukupan broj klijenata svih posrednika
slices array Segmenti trzisnog udjela
slices[].oib string OIB posrednika (prazan za "Ostali")
slices[].naziv string Naziv posrednika
slices[].clientCount int Broj klijenata
slices[].sharePct double Postotak trzisnog udjela

Primjer odgovora

200 OK

{
  "totalClients": 4523,
  "slices": [
    { "oib": "85821130368", "naziv": "FINA", "clientCount": 1247, "sharePct": 27.57 },
    { "oib": "62781739468", "naziv": "Moj e-Racun", "clientCount": 983, "sharePct": 21.73 },
    { "oib": "", "naziv": "Ostali", "clientCount": 102, "sharePct": 2.25 }
  ]
}
GET /api/providers/{oib}

Vraca detalje o pojedinom informacijskom posredniku.

ParametarOpis
oib obavezno
string
OIB informacijskog posrednika

Primjer odgovora

200 OK

{
  "oib": "85821130368",
  "naziv": "FINA",
  "endpointUri": "https://as4.fina.hr/services/msh",
  "mpsUrl": "https://gateway.apis-it.hr/eRacun-SMP",
  "serviceDescription": "Zaprimanje elektronickih dokumenata",
  "technicalContactUrl": "https://www.fina.hr",
  "clientCount": 1247,
  "firstSeen": "2025-01-10T08:00:00Z",
  "lastSeen": "2025-01-13T15:30:00Z"
}

404 Posrednik ne postoji

{
  "error": "Posrednik nije pronaden."
}

Primjeri integracije

Batch provjera vise OIB-ova

Primjer kako provjeriti vise OIB-ova s pauzom izmedju zahtjeva.

#!/bin/bash
# Batch provjera OIB-ova iz datoteke (jedan OIB po liniji)

while IFS= read -r oib; do
  echo "Provjera: $oib"
  curl -s "https://eracun.informacija.hr/api/lookup/$oib" \
    | jq '{oib: .oib, status: .status, posrednik: .posrednikNaziv}'
  sleep 1  # pauza od 1 sekunde
done < oib-lista.txt
// Batch provjera s pauzom od 1 sekunde izmedju zahtjeva
const oibs = ['51404356549', '85821130368', '62781739468'];
const BASE = 'https://eracun.informacija.hr';

function sleep(ms) {
  return new Promise(function(resolve) { setTimeout(resolve, ms); });
}

async function batchLookup() {
  for (const oib of oibs) {
    const res = await fetch(BASE + '/api/lookup/' + oib);
    const data = await res.json();
    console.log(oib, data.success ? data.status : data.errorMessage);
    await sleep(1000);
  }
}

batchLookup();
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text.Json;
using System.Threading;

HttpClient client = new HttpClient();
string baseUrl = "https://eracun.informacija.hr";

List<string> oibs = new List<string> {
    "51404356549", "85821130368", "62781739468"
};

foreach (string oib in oibs)
{
    string url = baseUrl + "/api/lookup/" + oib;
    HttpResponseMessage response = client.GetAsync(url).GetAwaiter().GetResult();
    string json = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
    JsonDocument doc = JsonDocument.Parse(json);

    bool success = doc.RootElement.GetProperty("success").GetBoolean();
    Console.WriteLine("{0}: {1}", oib,
        success ? doc.RootElement.GetProperty("status").GetString()
                : doc.RootElement.GetProperty("errorMessage").GetString());

    Thread.Sleep(1000); // pauza 1 sek
}

HTTP status kodovi

KodZnacenje
200 Uspjesno. OIB je registriran (za lookup) ili podaci su dohvaceni (za ostale endpointe).
400 Neispravan zahtjev. OIB nema 11 znamenki ili sadrzi nedozvoljene znakove.
404 Nije pronadeno. OIB nije registriran za e-racune, ili trazeni posrednik ne postoji.
429 Prekoracen rate limit (60 zahtjeva/min). Sacekajte prema Retry-After headeru.
500 Interna greska servera. Pokusajte ponovno ili kontaktirajte nas.
Trebate pomoc s integracijom? Javite se na info@informacija.hr - rado cemo pomoci s implementacijom.