Docs

3 API3.1

3.1

Probna provjera: POST /validate

Izvodi iste provjere kao predaja. Ništa ne sprema i ništa ne šalje.

  • U sandboxu

Jednostavnim riječima

Probna provjera provjerava račun jednako kao stvarna predaja i ništa ne šalje, pa partner može pronaći svaki problem prije nego što račun klijenta ikamo ode.

POST /validate izvodi iste provjere kao predaja i odgovara izvješćem. Ništa ne stavlja u red čekanja i ništa ne šalje. Za poziv je potreban ključ s opsegom submit. Tijelo je JSON, do 5 MB.

Savjet

Počnite ovdje kad mapirate novog klijenta.

Zahtjev

PoljeZnačenje
invoice_refObavezno. Vlastiti ID dokumenta u ERP-u, do 100 znakova. Ponavlja se u svakom statusnom događaju.
routeObavezno. DE-XRECHNUNG, PEPPOL, FR-PA, PL-KSEF ili RO-EFACTURA.
documentJedan račun u kanonskom modelu. Pošaljite ovo polje ili export, ali ne oba.
export, connectorIzvoz iz ERP-a onakav kakav ga je ERP napisao, uz connector postavljen na business-central ili sap-b1. Pošaljite ovo ili document, ali ne oba. Za kanal koji nije njemački izvješće počinje slojem mapping. mapping_version odabire verziju koja nije aktivna (pogledajte verzije mapiranja).
formatsDokumenti koje treba izraditi kad kanal dopušta izbor. Njemačka: bilo koji od formata xrechnung-ubl (zadano), xrechnung-cii i zugferd; KoSIT se pokreće jednom po formatu, a za PDF se pokreću i Mustang i veraPDF. Francuska: ubl, cii ili facturx.
environmentNeobavezno. Mora odgovarati okruženju vašeg ključa.
erp_totalsUkupni iznosi koje je izračunao vaš ERP: payable_amount, currency i po želji tax_amount, kao nizovi znakova. Ako se razlikuju od ukupnih iznosa koje usluga izračuna iz stavki, izvješće sadrži nalaz EI-TOTALS-MISMATCH na polju erp_totals.payable_amount.

Potpuni popis polja nalazi se u referenci.

Račun koji prolazi

Ogledni zahtjev je validate-de-ok.json, izmišljeni njemački račun. Izvješće sadrži valid: true, jedan dokument s njegovim SHA-256 i četiri sloja koja su prošla.

curl -X POST "https://api-sandbox-eu.eurinvoice.com/validate" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  --data-binary @validate-de-ok.json
Odgovor200 OK
{
  "valid": true,
  "route": "DE-XRECHNUNG",
  "documents": [
    {
      "sha256": "e21ab9d5097022bea30bfa9f9fe0a4c7ca9afdbd672b0ce2f9150461db773625",
      "kind": "xrechnung-ubl",
      "content_base64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgi... (7,092 characters, shortened for these docs)"
    }
  ],
  "layers": [
    {
      "findings": [],
      "passed": true,
      "layer": "schema"
    },
    {
      "findings": [],
      "passed": true,
      "layer": "mapping"
    },
    {
      "findings": [],
      "passed": true,
      "layer": "pre-check"
    },
    {
      "findings": [],
      "passed": true,
      "layer": "kosit"
    }
  ]
}
Zabilježeno 7. lis. 2026. Pokrenite u vlastitoj mapi u kojoj se nalazi i ogledna datoteka.

Račun koji ne prolazi

Isti račun bez naziva prodavatelja, validate-de-missing-seller-name.json. Probna provjera i dalje odgovara 200. valid je false, a svaki nalaz navodi polje i tko ga ispravlja. Pogledajte dva istaknuta retka: code iz kataloga i field u podacima klijenta.

curl -X POST "https://api-sandbox-eu.eurinvoice.com/validate" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  --data-binary @validate-de-missing-seller-name.json
Odgovor200 OK
{
  "valid": false,
  "route": "DE-XRECHNUNG",
  "layers": [
    {
      "findings": [
        {
          "code": "EI-SCHEMA",
          "field": "seller.name",
          "related": [
            {
              "code": "Art.226(5)",
              "source": "pre-check"
            }
          ],
          "fix_hint": "Read the JSON path in the error and correct the client mapping.",
          "who_fixes": "us",
          "source": "schema",
          "message": "We could not read this invoice from your export. We are correcting our mapping; if a field is missing in the ERP we will tell you which one."
        }
      ],
      "passed": false,
      "layer": "schema"
    },
    {
      "findings": [],
      "passed": true,
      "layer": "mapping"
    },
    {
      "findings": [
        {
          "code": "Art.226(5)",
          "field": "seller.name",
          "related": [
            {
              "code": "EI-SCHEMA",
              "source": "schema"
            }
          ],
          "fix_hint": "Complete the party's name and address in the master data.",
          "who_fixes": "erp",
          "source": "pre-check",
          "message": "A company name or street address is missing. Complete the company or customer record in the ERP."
        }
      ],
      "passed": false,
      "layer": "pre-check"
    }
  ]
}
Zabilježeno 7. lis. 2026.

Čitanje izvješća

  • valid je true samo kad su prošli svi slojevi.
  • layers se izvode redom: schema, mapping, pre-check, zatim vlastiti validatori kanala, nazvani prema onome što se pokrenulo (na primjer KoSIT-XRechnung-3.0.2).
  • Svaki nalaz ima code iz kataloga, field, who_fixes (us ili erp), fix_hint, message i sloj source. Stranica Pogreške i katalog navodi sve šifre.
  • documents navodi što je izrađeno, s pripadajućim SHA-256 i, za datoteku do 2 MiB, njezinim bajtovima u content_base64. Prisutno je kad je račun valjan.

Drugi odgovori

StatusZnačenje
200Izvješće, valjano ili ne.
400Zahtjev se ne može pročitati: nije JSON, neko polje nije ispravno ili su prisutni i document i export.
401Nema ključa ili je ključ nepoznat.
403Ključ nema opseg submit.
413Tijelo je veće od 5 MB (payload-too-large).
422Broj izvan ograničenja, na primjer dulji od 40 znakova (EI-SCHEMA, uz navod polja). Svi ostali nalazi dolaze u izvješću s odgovorom 200.
429Previše zahtjeva za ključ. Pričekajte onoliko sekundi koliko navodi Retry-After.
503Svi su validatori zauzeti (busy). Pokušajte ponovno nakon onoliko sekundi koliko navodi Retry-After.
curl -X POST "https://api-sandbox-eu.eurinvoice.com/validate" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  --data-binary @not-json.txt
Odgovor400 Bad Request
{
  "detail": "The request is not valid JSON.",
  "type": "https://eurinvoice.com/problems/bad-request",
  "title": "The request could not be read",
  "status": 400
}
Zabilježeno 7. lis. 2026.

Na ovoj stranici