Docs
5

Pogreške i katalog

Problem JSON i sve šifre iz kataloga.

  • U sandboxu

Jednostavnim riječima

Kad poziv ne uspije, odgovor kaže je li neispravan zahtjev ili račun. Za račun šifra navodi polje u izvozu klijenta i kaže tko ga ispravlja. Partner ispravlja neispravne zahtjeve i neispravne podatke; mi ispravljamo vlastito mapiranje i ponovno pokušavamo kad pogreška nastane na strani kanala.

Savjet

400 se odnosi na naš format zahtjeva. 422 se odnosi na račun, a njegova šifra iz kataloga navodi polje u izvozu iz ERP-a. Ne miješajte ta dva odgovora.

Problem JSON

Svaki odgovor s pogreškom je problem JSON (RFC 9457): type, title i status, uz detail kad postoji dodatno objašnjenje. Odgovor 422 dodaje errors, popis nalaza. Svaki nalaz ima code iz kataloga, tko ga ispravlja (who_fixes), fix_hint i message te field kad se nalaz odnosi na jedno polje (pogledajte stranicu 3.2). Istaknuti redak je šifra.

curl -X POST "https://api-sandbox-eu.eurinvoice.com/invoices/xml?route=PEPPOL&invoice_ref=INV-2026-0051" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/xml" \
  -H "Idempotency-Key: order-2026-0051" \
  --data-binary @not-an-invoice.xml
Odgovor422 Unprocessable Content
{
  "type": "https://eurinvoice.com/problems/validation-failed",
  "title": "The invoice did not pass the checks",
  "errors": [
    {
      "code": "EI-XML-TYPE",
      "fix_hint": "Send the invoice itself, in the format agreed for the route.",
      "who_fixes": "erp",
      "source": "XML-safety",
      "message": "The file is not an invoice in a format this route accepts. Please send the invoice in the agreed format."
    }
  ],
  "status": 422
}
Zabilježeno 7. lis. 2026. Ispravno oblikovan XML koji nije račun. Cijeli poziv nalazi se na stranici 3.3.

Putanja koju usluga nema daje odgovor 404 s {"detail": "Not Found"}, u običnom JSON-u.

Što znači pojedini status

StatusZnačenjeŠto učiniti
400Zahtjev se ne može pročitati: nije JSON, neko polje nije ispravno ili Idempotency-Key nedostaje ili nema od 8 do 100 znakova.Ispravite zahtjev.
401Nema ključa ili je ključ nepoznat.Ispravite ključ.
403Ključ nema opseg koji poziv traži ili se poziv odnosi na podatke drugog klijenta (forbidden).Upotrijebite ključ s tim opsegom ili pravog klijenta.
404Za ovog klijenta nema takvog računa, dokumenta, unosa u katalogu ni stavke na popisu za obradu.Provjerite ID.
409Idempotency-Key je upotrijebljen s drugačijim tijelom ili je njegov prvi zahtjev još u tijeku. Otkazivanje je stiglo prekasno. Pristupni podaci već postoje ili su opozvani.Ispravite poziv.
413Tijelo je veće od 5 MB (payload-too-large).Pošaljite manju datoteku.
415Vrsta sadržaja nije XML ni PDF ili tijelo označeno kao PDF nije PDF.Ispravite vrstu sadržaja.
422Račun nije prošao provjeru. Ništa nije stavljeno u red čekanja.Ispravite nalaze označene s erp. Nalazi označeni s us su na nama.
429Previše zahtjeva za ključ.Pričekajte sekunde navedene u Retry-After, pa pokušajte ponovno.
500Račun se nije mogao provjeriti. Nešto nije uspjelo na našoj strani.Ponovite isti poziv s istim ključem.
503Usluga je zauzeta (busy) ili je poziv za pristupne podatke stigao na proces bez postavljenog glavnog ključa.Ponovite isti poziv nakon onoliko sekundi koliko navodi Retry-After.

Svaki 409 ima vlastiti type problema, pod https://eurinvoice.com/problems/: idempotency-conflict, request-in-progress, already-submitted, send-in-progress, dead-letter, credential-exists i credential-revoked. Da biste ih razlikovali, čitajte type, a ne title. Odgovor 413 ne sprema se uz Idempotency-Key, pa se isti ključ može ponovno upotrijebiti s manjim tijelom.

Odgovor 429 dolazi po klijentu i opsegu, uz Retry-After (pogledajte ograničenja). Nakon odgovora 202 račun nikad ne šaljete ponovno. Pogreške na strani prijenosnog sustava koje mogu proći ponavljamo prema vlastitom rasporedu, a trajno odbijanje ide na popis za obradu.

Tko postupa

Svaka šifra iz kataloga ima jednu odgovornu stranu.

Odgovorna stranaTko je to
erpPartner: izvoz iz ERP-a ili njegovi matični podaci.
useurinvoice: mapiranje, serijalizator ili konfiguracija.
businessPoslovanje prodavatelja, s njegovim kupcem ili računovođom.
clientKlijent, odnosno prodavatelj: registracija, pristupni podaci ili ovlaštenje.
buyerStrana kupca.
routeOperator kanala, odnosno tijelo, pristupna točka ili platforma: pričekajte i pokušajte ponovno.

Partner ispravlja 400, 401, 403, 409, 413 i 415. Odgovor 422 sadrži nalaze i svaki kaže tko ga ispravlja: erp je partner, us je eurinvoice.

Katalog

Katalog sadrži šifru za svaki nalaz. Ova stranica prikazuje uzorak od dvanaest šifri, jednu ili dvije za svaku skupinu pravila. Upišite šifru i pritisnite Enter da biste skočili na nju. S ključem GET /catalogue/{code} objašnjava bilo koju šifru (pogledajte pretraživanje kataloga). Cijeli katalog namijenjen je partnerima: zatražite ga uz pristup sandboxu.

ŠifraTko postupaŠto nije u reduŠto učiniti
EI-ID-IBANNaše provjere, provjera identifikatoraPartnerIBAN ne prolazi provjeru mod-97.Ispravite bankovni račun u postavkama tvrtke.
EI-SCHEMANaše provjere, shemaeurinvoiceJSON računa ne odgovara kanonskom modelu: polje nedostaje ili je nepoznato, vrsta ili šifra nije ispravna ili je prekršeno pravilo kanala o strukturi.Pročitajte JSON putanju u pogrešci i ispravite mapiranje klijenta.
EI-TOTALS-MISMATCHNaše provjere, preliminarna provjeraPartnerUkupni iznosi koje je poslao ERP (erp_totals) razlikuju se od ukupnih iznosa izračunatih iz stavki, pa dokument ne bi odgovarao knjigama samog ERP-a.Pronađite razliku (obično zaokruživanje po stavci umjesto po dokumentu ili stavka popusta koju je izvoz izostavio) i ispravite izvoz ili mapiranje.
BR-CO-16EN 16931 i sintaksa, validator kanalaeurinvoiceIznos za plaćanje (BT-115) nije jednak ukupnom iznosu s PDV-om (BT-112) umanjenom za plaćeni iznos (BT-113) i uvećanom za zaokruživanje (BT-114).Ukupne iznose izračunavamo iz stavki, pa se ovo pojavljuje samo kad ukupni iznosi dolaze izvana (datoteka koja se prosljeđuje bez izmjena) ili su ručno mijenjani. Ponovno izračunajte ukupne iznose iz stavki i ponovno pošaljite.
EI-XML-DTDEN 16931 i sintaksa, validator kanalaPartnerXML deklarira DOCTYPE. UBL, CII i FA(3) ga nikad ne koriste, a upravo putem DOCTYPE-a u datoteku ulaze vanjski entiteti, dohvaćanje udaljenih DTD-ova i proširivanje entiteta (XXE). Datoteka se odbija prije nego što je pročita ijedan validator ili kanal.Izvezite račun bez retka DOCTYPE. Ako ga ERP dodaje namjerno, obratite se dobavljaču ERP-a: nijedan format e-računa ga ne koristi.
EI-XML-SYNTAXEN 16931 i sintaksa, validator kanalaPartnerDatoteka nije ispravno oblikovan XML: primjerice odrezana je, njezino kodiranje ne odgovara deklaraciji ili znak poput & nije zaštićen. Nijedan validator je ne može pročitati.Ponovno izvezite datoteku i otvorite je u bilo kojem pregledniku XML-a. Potražite odrezanu datoteku, kodiranje koje se razlikuje od deklaracije ili nezaštićeni &.
EI-XML-TYPEEN 16931 i sintaksa, validator kanalaPartnerXML je ispravno oblikovan, ali nije račun koji validiramo: nije UBL Invoice ili CreditNote, račun UN/CEFACT CII ni račun KSeF FA(3) (na primjer UBL Order ili starija datoteka FA(2)).Pošaljite sam račun, u formatu dogovorenom za kanal slanja.
EI-PEPPOL-NO-ROUTEPeppol, odgovor prijenosnog sustava, potreban prijenosni sustavPartnerPristupna točka nije pronašla primatelja za kupčev identifikator: kupac nije registriran u mreži Peppol za ovu vrstu dokumenta. Konačno za ovo slanje.Usporedite Peppol ID kupca u zapisu o kupcu u ERP-u s imenikom Peppol; ako kupac nije u mreži Peppol, dogovorite s njim drugi način dostave.
PEPPOL-EN16931-R001Peppol, validator kanalaeurinvoicePoslovni proces (BT-23) trebao bi biti naveden. Mustang je to prijavio kao obavijest na našoj datoteci ZUGFeRD EN 16931, koja nije Peppol dokument.Za ZUGFeRD nije potrebna radnja; naš Peppol UBL uvijek zapisuje proces.
BR-DE-5Njemačka, validator kanalaPartnerNedostaje ime kontakta prodavatelja (BT-41).Dodajte kontaktnu osobu ili odjel za račune u postavke tvrtke.
KSEF-440Poljska, odgovor prijenosnog sustava, potreban prijenosni sustaveurinvoiceKSeF već ima račun s istim NIP-om prodavatelja, vrstom računa (RodzajFaktury) i brojem (P_2); taj ključ čuva 10 godina. Ključ je broj, a ne datoteka: u okruženju TEST i druga datoteka pod već prihvaćenim brojem dobila je 440. Odgovor navodi KSeF broj i sesiju primjerka koji je prihvaćen prvi. Broj koji je KSeF odbio (430 ili 450) ne čuva se i može se ponovno upotrijebiti.Ne šaljite ponovno. Zabilježite izvorni KSeF broj iz odgovora i prijavite račun kao prihvaćen pod tim brojem.
BR-RO-001Rumunjska, validator kanalaeurinvoiceIdentifikator specifikacije (BT-24) nije vrijednost za CIUS-RO.Postavite profil ro-cius, koji zapisuje identifikator CIUS-RO 1.0.1.

Na ovoj stranici