ePoslovanje plugin omoguÄava slanje i primanje elektroniÄkih raÄuna (eRaÄuni) prema Hrvatskoj specifikaciji UBL 2.1 putem ePoslovanje.hr servisa.
Plugin podrĆŸava dva naÄina komunikacije s HrFiskalizatorom:
/eposlovanje/ handlerKonfiguraciju podeĆĄavate kroz HrFiskalizator suÄelje (POSTAVKE ePOSLOVANJE):
| Parametar | Vrijednost | Opis |
|---|---|---|
| API Endpoint | https://test.eposlovanje.hrili https://eracun.eposlovanje.hr |
Test ili produkcijsko okruĆŸenje |
| Authorization Token | VaĆĄ API kljuÄ | Dobiva se pri registraciji na ePoslovanje.hr |
| Timeout | 30000 ms |
Vrijeme Äekanja odgovora |
Za testiranje registrirajte se na: https://test.eposlovanje.hr/client/register
Svaka datoteka za razmjenu ima toÄno 4 reda:
| Red | SadrĆŸaj | Opis |
|---|---|---|
| 1 | HTTP ili HTTP:NOENCODE |
Uvijek "HTTP" ili "HTTP:NOENCODEPOST" za neke POST pozive |
| 2 | eposlovanje/xxxxx |
URL endpoint (putanja nakon handlera) |
| 3 | Prazan (GET) ili JSON/FILE= (POST) | Kod GET: prazan red Kod POST: FILE=ime_datoteke.xml ili direktan JSON |
| 4 | application/json; charset=utf-8 |
Content-Type (zavisi od tipa podataka u 3. redu) |
/eposlovanje/ping
Provjerava je li ePoslovanje.hr API dostupan.
$.ajax({
url: 'eposlovanje/ping',
method: 'GET'
}).done(function(response) {
console.log(response);
});
HTTP
eposlovanje/ping
application/json; charset=utf-8
{
"status": "OK",
"message": "Svi servisi su pokrenuti i ispravno rade..."
}
/eposlovanje/sendxmlinvoice
Standardizirani endpoint za slanje UBL 2.1 XML eRaÄuna kompatibilan sa DOKU i MER provajderima. Automatski konvertuje jednostavni XML format u ePoslovanje JSON i dodaje potrebne parametre.
doku/sendxmlinvoice i mer/sendxmlinvoice.
| Parametar | Format | Opis |
|---|---|---|
| Body | FILE=invoice.xmlili Direktan XML string |
UBL 2.1 Invoice ili CreditNote |
| Content-Type | text/plain; charset=utf-8 |
Fiksni header |
softwareId i sendAsEmail: false prije slanja na ePoslovanje API.
HTTP:NOENCODEPOST
eposlovanje/sendxmlinvoice
FILE=invoice.xml
text/plain; charset=utf-8
$.ajax({
url: 'eposlovanje/sendxmlinvoice',
method: 'POST',
contentType: 'text/plain; charset=utf-8',
data: xmlContent
}).done(function(response) {
console.log(response);
}).fail(function(err) {
console.error('GreĆĄka:', err.responseJSON.error);
});
{
"id": 203779,
"insertedOn": "2026-02-01T14:25:57.6695463+01:00",
"message": "Dokument uspjeĆĄno zaprimljen i digitalno potpisan. Äeka na red za slanje primatelju."
}
{
"error": "ElektroniÄka adresa Prodavatelja (BT-34) je obavezna"
}
/document/send endpoint.
/eposlovanje/document/validate
Validira UBL 2.1 dokument bez zaprimanja u sustav. PreporuÄuje se prije slanja.
| Parametar | Tip | Status | Opis |
|---|---|---|---|
document |
string | OBAVEZNO | UBL 2.1 Invoice ili CreditNote XML kao string |
$.ajax({
url: 'eposlovanje/document/validate',
method: 'POST',
contentType: 'application/json',
data: JSON.stringify({
document: xmlString
})
}).done(function(response) {
console.log(response);
});
HTTP:NOENCODEPOST
eposlovanje/document/validate
{"document":"<?xml version=\"1.0\"?>..."}
application/json; charset=utf-8
HTTP:NOENCODEPOST
eposlovanje/document/validate
FILE=invoice_to_validate.json
application/json; charset=utf-8
{
"errors": []
}
{
"Errors": [
"ElektroniÄka adresa Prodavatelja (BT-34) je obavezna"
]
/eposlovanje/document/send
Ć alje UBL 2.1 Invoice ili CreditNote dokument prema primatelju. Automatski fiskalizira ako je omoguÄeno u profilu.
| Parametar | Tip | Status | Opis |
|---|---|---|---|
document |
string | OBAVEZNO | UBL 2.1 Invoice ili CreditNote XML |
sendAsEmail |
boolean | OPCIONALNO | true = email link (B2C, bez fiskalizacije) false = B2B slanje (default) |
$.ajax({
url: 'eposlovanje/document/send',
method: 'POST',
contentType: 'application/json',
data: JSON.stringify({
document: xmlString,
sendAsEmail: false
})
}).done(function(response) {
console.log(response);
}).fail(function(err) {
console.error(err);
});
HTTP:NOENCODEPOST
eposlovanje/document/send
{"document":"<?xml...>","sendAsEmail":false}
application/json; charset=utf-8
HTTP:NOENCODEPOST
eposlovanje/document/send
FILE=racun_001.json
application/json; charset=utf-8
{
"id": 12345,
"insertedOn": "2025-07-15T12:00:00.123+02:00",
"message": "Dokument uspjeĆĄno zaprimljen i digitalno potpisan. Äeka fiskalizaciju ulaznog raÄuna i slanje primatelju."
}
/eposlovanje/document/outgoing[?parametri]
DohvaÄa listu poslanih (izlaznih) raÄuna.
| Parametar | Tip | Opis | Primjer |
|---|---|---|---|
insertedFrom |
date-time | Dokumenti ubaÄeni nakon datuma | 2025-11-01T00:00:00 |
insertedTo |
date-time | Dokumenti ubaÄeni prije datuma | 2025-11-30T23:59:59 |
issuedFrom |
date-time | Dokumenti izdani nakon datuma | 2025-11-01T00:00:00 |
issuedTo |
date-time | Dokumenti izdani prije datuma | 2025-11-30T23:59:59 |
limit |
integer | Broj rezultata po stranici | 50 |
offset |
integer | Offset za paginaciju | 0 |
$.ajax({
url: 'eposlovanje/document/outgoing?issuedFrom=2026-01-01T00:00:00&issuedTo=2026-01-31T00:00:00&limit=50',
method: 'GET'
}).done(function(response) {
console.log(response);
});
HTTP
eposlovanje/document/outgoing?issuedFrom=2026-01-01T00:00:00&issuedTo=2026-01-31T00:00:00&limit=50
text/html;charset=utf-8
[
{
"id": 12345,
"insertedOn": "2025-07-15T12:00:00.123+02:00",
"modifiedOn": "2025-07-15T12:00:00.123+02:00",
"documentId": "12345/01/2025",
"documentType": "Invoice",
"issuedOn": "2025-07-15T12:00:00.123+02:00",
"amount": 1000.5,
"currency": "EUR",
"supplierPartyName": "DobavljaÄ d.o.o.",
"supplierPartyVATId": "12345678901",
"supplierPartyBusinessUnit": "9934:12345678901::HR99:1000",
"supplierPartyGLN": "1234567890123",
"customerPartyName": "Kupac d.o.o.",
"customerPartyVATId": "10987654321",
"customerPartyBusinessUnit": "9934:10987654321::HR99:2000",
"customerPartyGLN": "1098765432109",
"status": 1,
"statusHistory": [
{
"createdOn": "2025-07-15T12:00:00.123+02:00",
"status": 1,
"statusText": "Dokument uspjeĆĄno poslan prema inf. posredniku primatelja",
"partialPaymentAmount": 1234.56,
"note": "Odbijen jer iznos nije ispravan"
}
],
"eReportingRequests": [
{
"type": 1,
"description": "Evidencija izlaznog raÄuna",
"createdOn": "2025-11-28T18:04:15.169Z",
"success": true,
"errorCode": "string",
"errorDescription": "string",
"completedOn": "2025-07-15T12:00:00.123+02:00",
"referenceId": "af2cd-1234-5678-90ab-cdef12345678",
"paymentDate": "2025-07-15",
"paidAmount": 1000.5,
"paymentType": 1,
"rejectionDate": "2025-07-15",
"rejectionType": 1,
"rejectionReason": "Upisana kriva stavka u raÄunu"
}
]
}
]
/eposlovanje/document/incoming[?parametri]
DohvaÄa listu primljenih (ulaznih) raÄuna. Koristi iste query parametre kao /document/outgoing.
curl -X GET "http://localhost:8449/eposlovanje/document/incoming?limit=20"
HTTP
eposlovanje/document/incoming?limit=20
application/json; charset=utf-8
[
{
"id": 12345,
"insertedOn": "2025-07-15T12:00:00.123+02:00",
"modifiedOn": "2025-07-15T12:00:00.123+02:00",
"documentId": "12345/01/2025",
"documentType": "Invoice",
"issuedOn": "2025-07-15T12:00:00.123+02:00",
"amount": 1000.5,
"currency": "EUR",
"supplierPartyName": "DobavljaÄ d.o.o.",
"supplierPartyVATId": "12345678901",
"supplierPartyBusinessUnit": "9934:12345678901::HR99:1000",
"supplierPartyGLN": "1234567890123",
"customerPartyName": "Kupac d.o.o.",
"customerPartyVATId": "10987654321",
"customerPartyBusinessUnit": "9934:10987654321::HR99:2000",
"customerPartyGLN": "1098765432109",
"status": 1,
"statusHistory": [
{
"createdOn": "2025-07-15T12:00:00.123+02:00",
"status": 1,
"statusText": "Dokument uspjeĆĄno poslan prema inf. posredniku primatelja",
"partialPaymentAmount": 1234.56,
"note": "Odbijen jer iznos nije ispravan"
}
],
"eReportingRequests": [
{
"type": 1,
"description": "Evidencija izlaznog raÄuna",
"createdOn": "2025-11-28T18:04:15.169Z",
"success": true,
"errorCode": "string",
"errorDescription": "string",
"completedOn": "2025-07-15T12:00:00.123+02:00",
"referenceId": "af2cd-1234-5678-90ab-cdef12345678",
"paymentDate": "2025-07-15",
"paidAmount": 1000.5,
"paymentType": 1,
"rejectionDate": "2025-07-15",
"rejectionType": 1,
"rejectionReason": "Upisana kriva stavka u raÄunu"
}
]
}
]
/eposlovanje/document/{id}
DohvaÄa originalni UBL XML dokument po internom ePoslovanje ID-u.
$.ajax({
url: 'eposlovanje/document/get/' + documentId,
method: 'GET'
}).done(function(response) {
console.log(response);
});
HTTP
eposlovanje/document/get/12345
application/json; charset=utf-8
/eposlovanje/document/{id}
DohvaÄa JSON s detaljima o dokumentu po internom ePoslovanje ID-u.
$.ajax({
url: 'eposlovanje/document/' + documentId,
method: 'GET'
}).done(function(response) {
console.log(response);
});
HTTP
eposlovanje/document/12345
application/json; charset=utf-8
{
"id": 12345,
"insertedOn": "2025-07-15T12:00:00.123+02:00",
"modifiedOn": "2025-07-15T12:00:00.123+02:00",
"documentId": "12345/01/2025",
"documentType": "Invoice",
"issuedOn": "2025-07-15T12:00:00.123+02:00",
"amount": 1000.5,
"currency": "EUR",
"supplierPartyName": "DobavljaÄ d.o.o.",
"supplierPartyVATId": "12345678901",
"supplierPartyBusinessUnit": "9934:12345678901::HR99:1000",
"supplierPartyGLN": "1234567890123",
"customerPartyName": "Kupac d.o.o.",
"customerPartyVATId": "10987654321",
"customerPartyBusinessUnit": "9934:10987654321::HR99:2000",
"customerPartyGLN": "1098765432109",
"status": 1,
"statusHistory": [
{
"createdOn": "2025-07-15T12:00:00.123+02:00",
"status": 1,
"statusText": "Dokument uspjeĆĄno poslan prema inf. posredniku primatelja",
"partialPaymentAmount": 1234.56,
"note": "Odbijen jer iznos nije ispravan"
}
],
"eReportingRequests": [
{
"type": 1,
"description": "Evidencija izlaznog raÄuna",
"createdOn": "2025-11-28T18:04:15.169Z",
"success": true,
"errorCode": "string",
"errorDescription": "string",
"completedOn": "2025-07-15T12:00:00.123+02:00",
"referenceId": "af2cd-1234-5678-90ab-cdef12345678",
"paymentDate": "2025-07-15",
"paidAmount": 1000.5,
"paymentType": 1,
"rejectionDate": "2025-07-15",
"rejectionType": 1,
"rejectionReason": "Upisana kriva stavka u raÄunu"
}
]
}
/eposlovanje/document/status/{id}
DohvaÄa detaljne informacije o statusu dokumenta (transportni status, poslovni status, eIzvjeĆĄtavanje).
$.ajax({
url: 'eposlovanje/document/status/' + documentId,
method: 'GET'
}).done(function(response) {
console.log(response);
});
HTTP
eposlovanje/document/status/12345
application/json; charset=utf-8
{
"id": 12345,
"status": 1,
"changedOn": "2025-07-15T12:00:00.123+02:00"
}
/eposlovanje/document/visualization/{id}
DohvaÄa PDF vizualizaciju raÄuna enkodiranu kao Base64 string.
$.ajax({
url: 'eposlovanje/document/visualization/' + documentId,
method: 'GET'
}).done(function(response) {
console.log(response);
});
HTTP
eposlovanje/document/visualization/12345
application/json; charset=utf-8
{
"pdf": "VEVTVCBQREY..."
}
/eposlovanje/document/changestatus/{id}
Mijenja poslovni status dokumenta. Samo za kupce!
| Parametar | Tip | Status | Opis |
|---|---|---|---|
status |
string | OBAVEZNO | approved, rejected, partiallypaid, fullypaid |
note |
string | OPCIONALNO | Napomena uz promjenu statusa |
partialPaymentAmount |
decimal | OPCIONALNO | Iznos parcijalne naplate (za status partiallypaid) |
$.ajax({
url: 'eposlovanje/document/changestatus/' + documentId,
method: 'POST',
contentType: 'application/json',
data: JSON.stringify({
status: 1,
changedOn:"2025-07-15T12:00:00.123+02:00",
note: 'Odbijen zbog neusklaÄenosti podataka',
partialPaymentAmount: 500.25
})
}).done(function(response) {
console.log(response);
});
HTTP:NOENCODEPOST
eposlovanje/document/changestatus/12345
{ "status": 1, "changedOn": "2025-07-15T12:00:00.123+02:00", "note": "Odbijen zbog neusklaÄenosti podataka", "partialPaymentAmount": 500.25 }
application/json; charset=utf-8
/eposlovanje/ereporting/reportdocument
Ć alje zahtjev za fiskalizaciju izlaznog raÄuna prema Poreznoj upravi. Samo za prodavatelje!
U - ulazni eRaÄun$.ajax({
url: 'eposlovanje/ereporting/reportdocument',
method: 'POST',
contentType: 'application/json',
data: JSON.stringify({
document: xmlString,
type: 'I' // I=izlazni, U=ulazni, IR=nepostan
})
}).done(function(response) {
console.log(response);
});
HTTP:NOENCODEPOST
eposlovanje/ereporting/reportdocument
FILE=json_kao_u_curl_primjeru.json
application/json; charset=utf-8
{
"responseId": "string",
"message": "string"
}
/eposlovanje/ereporting/paid/{id}
Ć alje izvjeĆĄtaj o naplati raÄuna prema Poreznoj upravi. Samo za prodavatelje!
Ć alje zahtjev za eIzvjeĆĄtavanjem Poreznoj upravi za raÄun koji se veÄ nalazi u sustavu ePoslovanja.$.ajax({
url: 'eposlovanje/ereporting/paid/' + documentId,
method: 'POST',
contentType: 'application/json',
data: JSON.stringify({
documentId: '1234/56/789',
issueDate: '2025-06-27',
supplierPartyId: '12345678912',
customerPartyId: '21987654321',
paymentDate: '2025-07-15',
paidAmount: 1000.5,
paymentType: 1
})
}).done(function() {
console.log(response);
});
HTTP:NOENCODEPOST
eposlovanje/ereporting/paid/12345
FILE=json_kao_u_curl_primjeru.json
application/json; charset=utf-8
{
"error": "GreĆĄka pri autentifikaciji korisnika",
"details": "KorisniÄki raÄun nije aktiviran"
}
/eposlovanje/ereporting/rejected/{id}
Ć alje izvjeĆĄtaj o odbijanju raÄuna prema Poreznoj upravi. Samo za kupce!
| Parametar | Tip | Status | Opis |
|---|---|---|---|
note |
string | OBAVEZNO | Razlog odbijanja raÄuna |
$.ajax({
url: 'eposlovanje/ereporting/rejected/' + documentId,
method: 'POST',
contentType: 'application/json',
data: JSON.stringify({
documentId: '1234/56/789',
issueDate: '2025-06-27',
supplierPartyId: '12345678912',
customerPartyId: '21987654321',
rejectionDate: '2025-07-15',
rejectionType: 1,
rejectionReason: 'Upisana kriva stavka u raÄunu'
})
}).done(function() {
console.log(response);
})
HTTP:NOENCODEPOST
eposlovanje/ereporting/rejected/12345
FILE=json_kao_u_curl_primjeru.json
application/json; charset=utf-8
*Ako je odgovor prazan, izvjeĆĄtaj je uspjeĆĄno zaprimljen.
*U sluÄaju greĆĄke, vraÄa se JSON s opisom greĆĄke.
/eposlovanje/ams/check
Provjerava je li korisnik (kupac) registriran u AMS sustavu Porezne uprave i moĆŸe primati eRaÄune.
| Parametar | Tip | Status | Opis |
|---|---|---|---|
schema |
string | OBAVEZNO | Tip identifikatora (npr. "9934" za OIB) |
identifier |
string | OBAVEZNO | OIB korisnika (11 znamenki) |
$.ajax({
url: 'eposlovanje/ams/check',
method: 'POST',
contentType: 'application/json',
data: JSON.stringify({
schema: '9934',
identifier: '12345678901'
})
}).done(function(response) {
console.log(response);
});
HTTP:NOENCODEPOST
eposlovanje/ams/check
{"schema":"9934","identifier":"12345678901"}
application/json; charset=utf-8
{
"schema": 9934,
"identifier": 62781739468,
"publishedOnAms": true,
"mpsEndpoint": "https://prod.mps.eposlovanje.hr"
}
| Resurs | Link |
|---|---|
| Primjeri eRaÄuna po EN16931 specifikaciji | Preuzmi ZIP |
| Primjeri eRaÄuna po CIUS-2025 specifikaciji | Preuzmi ZIP |
| UBL 2.1 Invoice i CreditNote XSD Schema | Preuzmi ZIP |
| Specifikacija osnovne upotrebe eRaÄuna s proĆĄirenjima | Preuzmi PDF |
{
"status": "success",
"data": {
// ... podaci specifiÄni za endpoint
}
}
{
"error": "Validation error",
"message": "Document is not valid according to UBL 2.1 schema",
"details": [
"Missing required element: cbc:ID",
"Invalid date format in cbc:IssueDate"
]
}
| GreĆĄka u Response | Uzrok | RjeĆĄenje |
|---|---|---|
| "Unauthorized" / 401 | API token nije konfiguriran ili je neispravan | Provjerite Authorization token u postavkama plugina |
| "Validation error" | XML nije validan prema UBL 2.1 schemi | Koristite /document/validate prije slanja |
| "Document not found" / 404 | Dokument s tim ID-em ne postoji ili ne pripada vaĆĄem raÄunu | Provjerite ID dokumenta |
| "Connection timeout" | ePoslovanje.hr servis nije dostupan ili je spor | PoveÄajte timeout u postavkama ili pokuĆĄajte kasnije |
| Resurs | URL |
|---|---|
| Test Registracija | https://test.eposlovanje.hr/client/register |
| Test Prijava | https://test.eposlovanje.hr/client/ |
| Produkcijski Portal | https://eracun.eposlovanje.hr |
| ePoslovanje Dokumentacija | https://doc.eposlovanje.hr |
| Swagger/OpenAPI Specifikacija | Scalar Workspace |
Verzija dokumentacije: 2.0 (28.11.2025)
ePoslovanje.hr API verzija: 2.0.17
HrFiskalizator Plugin: ePoslovanje v1.0
UBL Specifikacija: UBL 2.1 (EN16931 do 31.12.2025, CIUS-2025 od 1.1.2026)