POST
/v1/einvoices/sendSlanje eRačuna
Pošaljite strukturirani eRačun (B2B ili B2G) kroz FINA infrastrukturu. Mi generiramo UBL XML, potpisujemo, i dostavljamo primatelju.
ℹ️ F2 vs F1
F2 (eRačuni) su za B2B i B2G, šalju se asinkrono kroz FINA-u. F1 (fiskalizacija) je za gotovinske račune, šalje se u realnom vremenu Poreznoj. Ako fakturirate firmama i primate gotovinu/karticu, trebate oba.
Request
POST /v1/einvoices/send
{
"invoice_number": "ER-2026-0001",
"issue_date": "2026-01-03",
"due_date": "2026-01-18",
"seller": {
"oib": "12345678901",
"name": "Moja Firma d.o.o.",
"address": "Ilica 1",
"city": "Zagreb",
"postal_code": "10000",
"country": "HR",
"iban": "HR1234567890123456789"
},
"buyer": {
"oib": "98765432109",
"name": "Kupac d.o.o.",
"address": "Vukovarska 2",
"city": "Split",
"postal_code": "21000",
"country": "HR"
},
"items": [
{
"name": "Usluge razvoja softvera",
"description": "Razvoj web aplikacije - siječanj 2026",
"quantity": 1,
"unit": "HUR",
"unit_price": 5000.00,
"tax_rate": 25,
"kpd": "J62.01.11"
},
{
"name": "Hosting i održavanje",
"quantity": 1,
"unit": "MON",
"unit_price": 200.00,
"tax_rate": 25,
"kpd": "J63.11.12"
}
],
"payment_reference": "HR00 2026-0001",
"note": "Hvala na suradnji!",
"metadata": {
"project_id": "PRJ-123",
"contract": "UGV-2025-456"
}
}Seller objekt (obavezan)
| Parametar | Tip | Opis |
|---|---|---|
oib | string | Vaš OIB |
name | string | Naziv tvrtke |
address | string | Ulica i broj |
city | string | Grad |
postal_code | string | Poštanski broj |
country | string | ISO kod države (HR) |
iban | string | IBAN za plaćanje |
Buyer objekt (obavezan)
Isti format kao seller, bez IBAN-a.
Items (stavke)
| Parametar | Tip | Opis |
|---|---|---|
name | string | Naziv stavke |
description | string | Detaljniji opis (opcionalno) |
quantity | number | Količina |
unit | string | Jedinica mjere (UN/ECE kod) |
unit_price | number | Cijena bez PDV-a |
tax_rate | number | PDV stopa (25, 13, 5, 0) |
kpd | string | KPD šifra (obavezno!) |
Jedinice mjere (UN/ECE)
| Kod | Značenje |
|---|---|
C62 | Komad (piece) |
HUR | Sat (hour) |
DAY | Dan |
MON | Mjesec |
KGM | Kilogram |
MTR | Metar |
LTR | Litra |
Response
Uspješan odgovor (202 Accepted)
202 Accepted
{
"id": "einv_xyz789abc123",
"status": "pending",
"invoice_number": "ER-2026-0001",
"seller_oib": "12345678901",
"buyer_oib": "98765432109",
"amounts": {
"subtotal": 5200.00,
"tax_25": 1300.00,
"total": 6500.00,
"currency": "EUR"
},
"submitted_at": "2026-01-03T14:30:00Z",
"estimated_delivery": "2026-01-03T14:35:00Z",
"tracking_url": "https://api.fiskalapi.hr/v1/einvoices/einv_xyz789/track",
"xml_url": "https://api.fiskalapi.hr/v1/einvoices/einv_xyz789/xml",
"pdf_url": "https://api.fiskalapi.hr/v1/einvoices/einv_xyz789/pdf"
}⚠️ Asinkrono slanje
eRačuni se šalju asinkrono. Status pending znači da je račun prihvaćen i čeka dostavu. Koristite webhook ili polling za praćenje statusa.
Statusi eRačuna
| Status | Značenje |
|---|---|
pending | Čeka slanje FINA-i |
submitted | Poslano FINA-i, čeka dostavu |
delivered | Dostavljeno primatelju |
accepted | Primatelj prihvatio |
rejected | Primatelj odbio |
failed | Greška pri slanju |
Webhook eventi
Kada se status promijeni, šaljemo webhook:
Webhook payload
{
"event": "einvoice.delivered",
"einvoice_id": "einv_xyz789abc123",
"status": "delivered",
"delivered_at": "2026-01-03T14:32:15Z",
"recipient_system": "FINA eRačun"
}Dostupni eventi:
einvoice.submittedeinvoice.deliveredeinvoice.acceptedeinvoice.rejectedeinvoice.failed
Primjer koda
Node.js
const einvoice = await fiskal.einvoices.send({
invoice_number: 'ER-2026-0001',
issue_date: '2026-01-03',
due_date: '2026-01-18',
seller: {
oib: '12345678901',
name: 'Moja Firma d.o.o.',
address: 'Ilica 1',
city: 'Zagreb',
postal_code: '10000',
country: 'HR',
iban: 'HR1234567890123456789'
},
buyer: {
oib: '98765432109',
name: 'Kupac d.o.o.',
address: 'Vukovarska 2',
city: 'Split',
postal_code: '21000',
country: 'HR'
},
items: [{
name: 'Konzultantske usluge',
quantity: 10,
unit: 'HUR',
unit_price: 100.00,
tax_rate: 25,
kpd: 'M70.22.11'
}]
});
console.log('eRačun ID:', einvoice.id);
console.log('Status:', einvoice.status);
console.log('PDF:', einvoice.pdf_url);