Docs

3 API3.3

3.3

Predaja XML-a: POST /invoices/xml

XML u formatu UBL, CII ili FA(3).

  • U sandboxu

Jednostavnim riječima

Ovaj poziv predaje račun koji već postoji kao gotova XML datoteka. Prolazi sigurnosnu provjeru i vlastite validatore kanala te ide u red čekanja ako prođe.

POST /invoices/xml prima gotovu datoteku u formatu UBL, CII ili FA(3). Mapiranje se ne provodi. Usluga provjerava sigurnost i vrstu datoteke, izvodi službene validatore za kanal, a zatim je stavlja u red čekanja i šalje nepromijenjenu. Za FA(3) provjere su shema te pravila KSeF-a za datoteke i datume.

Napomena

Odgovor 202 znači da je datoteka prošla sigurnosnu provjeru i da je u redu čekanja. Da biste datoteku provjerili prije slanja, pošaljite račun kao JSON na POST /validate.

Zahtjev

DioZnačenje
Parametar upita routeObavezno. Jedan od pet kanala slanja.
Parametar upita invoice_refObavezno. Vlastiti ID dokumenta u ERP-u, do 100 znakova.
Parametar upita clientNeobavezno. Vlastiti ključ klijenta može ga izostaviti ili navesti vlastitog klijenta.
Zaglavlje Idempotency-KeyObavezno, od 8 do 100 znakova.
Zaglavlje Content-Typeapplication/xml ili text/xml. application/pdf sprema se i stavlja u red čekanja na isti način.

Koje datoteke prima pojedini kanal:

KanalPrima
DE-XRECHNUNGUBL, CII
FR-PAUBL, CII
PEPPOLUBL
RO-EFACTURAUBL
PL-KSEFFA(3)

Prihvaćena datoteka

Primjer je fa3-pl-ksef.xml, poljska datoteka FA(3) s izmišljenim stranama. Stanje je queued.

curl -X POST "https://api-sandbox-eu.eurinvoice.com/invoices/xml?route=PL-KSEF&invoice_ref=INV-2026-0042" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/xml" \
  -H "Idempotency-Key: order-2026-0042" \
  --data-binary @fa3-pl-ksef.xml
Odgovor202 Accepted
{
  "links": {
    "self": "/invoices/inv_d249e33382ce2911876b7295",
    "events": "/invoices/inv_d249e33382ce2911876b7295/events"
  },
  "id": "inv_d249e33382ce2911876b7295",
  "state": "queued"
}
Zabilježeno 7. lis. 2026.

Datoteka poslana dvaput

Ista datoteka poslana ponovno za istog klijenta i isti kanal jest račun koji već imamo. Odgovor sadrži duplicate_of, ID prvog računa, i ništa se novo ne šalje. Predaja koja je završila u stanju rejected, validation_failed ili cancelled ne računa se, pa se datoteka može poslati ponovno.

Odbijene datoteke

XML koji je ispravno oblikovan, ali nije račun, dobiva 422 s EI-XML-TYPE.

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. Datoteka je [not-an-invoice.xml](/samples/not-an-invoice.xml).

Datoteka s DOCTYPE dobiva 422 s EI-XML-DTD, prije nego što je ijedan validator pročita. Datoteka koja nije ispravno oblikovana dobiva EI-XML-SYNTAX.

curl -X POST "https://api-sandbox-eu.eurinvoice.com/invoices/xml?route=PEPPOL&invoice_ref=INV-2026-0052" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/xml" \
  -H "Idempotency-Key: order-2026-0052" \
  --data-binary @with-doctype.xml
Odgovor422 Unprocessable Content
{
  "type": "https://eurinvoice.com/problems/validation-failed",
  "title": "The invoice did not pass the checks",
  "errors": [
    {
      "code": "EI-XML-DTD",
      "fix_hint": "Export the invoice without the DOCTYPE line. If the ERP adds one on purpose, raise it with the ERP vendor: no e-invoicing format uses it.",
      "who_fixes": "erp",
      "source": "XML-safety",
      "message": "The invoice file contains a DOCTYPE declaration, which e-invoices never use, so we refused it for security before reading it. Export it again without the DOCTYPE line."
    }
  ],
  "status": 422
}
Zabilježeno 7. lis. 2026. Datoteka je [with-doctype.xml](/samples/with-doctype.xml).

Vrsta sadržaja koja nije XML ni PDF dobiva 415.

curl -X POST "https://api-sandbox-eu.eurinvoice.com/invoices/xml?route=PEPPOL&invoice_ref=INV-2026-0053" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: text/plain" \
  -H "Idempotency-Key: order-2026-0053" \
  --data-binary @hello.txt
Odgovor415 Unsupported Media Type
{
  "type": "https://eurinvoice.com/problems/unsupported-media",
  "title": "Not UBL, CII or FA(3)",
  "status": 415
}
Zabilježeno 7. lis. 2026.

Idempotency-Key koji nedostaje ili je prekratak dobiva 400.

curl -X POST "https://api-sandbox-eu.eurinvoice.com/invoices/xml?route=PEPPOL&invoice_ref=INV-2026-0054" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/xml" \
  --data-binary @ubl-peppol.xml
Odgovor400 Bad Request
{
  "detail": "Idempotency-Key must be between 8 and 100 characters.",
  "type": "https://eurinvoice.com/problems/bad-request",
  "title": "The request could not be read",
  "status": 400
}
Zabilježeno 7. lis. 2026.

Odgovori

StatusZnačenje
202Prihvaćeno i stavljeno u red čekanja. Location sadrži URL računa.
400Parametar upita ili Idempotency-Key nedostaje ili nije ispravan.
401Nema ključa ili je ključ nepoznat.
403Ključ nema opseg submit ili navodi drugog klijenta (forbidden).
409Ključ je upotrijebljen s drugačijim tijelom (idempotency-conflict) ili je njegov prvi zahtjev još u tijeku (request-in-progress).
413Tijelo je veće od 5 MB (payload-too-large).
415Vrsta sadržaja nije XML ni PDF (unsupported-media).
422Odbijena datoteka: EI-XML-DTD, EI-XML-SYNTAX ili EI-XML-TYPE.
429Previše zahtjeva za ključ. Pričekajte onoliko sekundi koliko navodi Retry-After.
503Drugi zahtjev za isti dokument još se sprema (busy). Pokušajte ponovno nakon onoliko sekundi koliko navodi Retry-After.

Na ovoj stranici