Docs

3 API3.3

3.3

Podanie XML: POST /invoices/xml

XML vo formáte UBL, CII alebo FA(3).

  • V sandboxe

Jednoducho povedané

Toto volanie podá faktúru, ktorá už existuje ako hotový súbor XML. Prejde bezpečnostnou kontrolou a validátormi kanála a ak prejde, ide do frontu.

POST /invoices/xml prijíma hotový súbor UBL, CII alebo FA(3). Žiadne mapovanie neprebieha. Služba skontroluje bezpečnosť a typ súboru, spustí oficiálne validátory kanála, potom ho zaradí do frontu a odošle nezmenený. Pri FA(3) ide o kontrolu schémy a pravidiel KSeF pre súbor a dátum.

Poznámka

202 znamená, že súbor prešiel bezpečnostnou kontrolou a je vo fronte. Ak chcete súbor skontrolovať pred odoslaním, pošlite faktúru ako JSON na POST /validate.

Požiadavka

ČasťVýznam
Parameter dotazu routePovinný. Jeden z piatich kanálov.
Parameter dotazu invoice_refPovinný. Vlastné ID dokladu v ERP, najviac 100 znakov.
Parameter dotazu clientVoliteľný. Kľúč klienta ho môže vynechať alebo uviesť vlastného klienta.
Hlavička Idempotency-KeyPovinná, 8 až 100 znakov.
Hlavička Content-Typeapplication/xml alebo text/xml. application/pdf sa uloží a zaradí do frontu rovnako.

Aký súbor prijíma každý kanál:

KanálPrijíma
DE-XRECHNUNGUBL, CII
FR-PAUBL, CII
PEPPOLUBL
RO-EFACTURAUBL
PL-KSEFFA(3)

Prijatý súbor

Vzorka je fa3-pl-ksef.xml, poľský súbor FA(3) s vymyslenými stranami. Stav 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
Odpoveď202 Accepted
{
  "links": {
    "self": "/invoices/inv_d249e33382ce2911876b7295",
    "events": "/invoices/inv_d249e33382ce2911876b7295/events"
  },
  "id": "inv_d249e33382ce2911876b7295",
  "state": "queued"
}
Zaznamenané 7. okt. 2026.

Súbor poslaný dvakrát

Ten istý súbor poslaný znova pre toho istého klienta a kanál je faktúra, ktorú už máme. Odpoveď obsahuje duplicate_of, ID prvej faktúry, a nič nové sa neodošle. Podanie, ktoré skončilo ako rejected, validation_failed alebo cancelled, sa nepočíta, takže súbor možno poslať znova.

Odmietnuté súbory

XML, ktoré je správne utvorené, ale nie je faktúrou, dostane 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
Odpoveď422 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
}
Zaznamenané 7. okt. 2026. Súbor je [not-an-invoice.xml](/samples/not-an-invoice.xml).

Súbor s DOCTYPE dostane 422 s EI-XML-DTD skôr, než ho prečíta akýkoľvek validátor. Súbor, ktorý nie je správne utvorený, dostane 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
Odpoveď422 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
}
Zaznamenané 7. okt. 2026. Súbor je [with-doctype.xml](/samples/with-doctype.xml).

Typ obsahu, ktorý nie je XML ani PDF, dostane 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
Odpoveď415 Unsupported Media Type
{
  "type": "https://eurinvoice.com/problems/unsupported-media",
  "title": "Not UBL, CII or FA(3)",
  "status": 415
}
Zaznamenané 7. okt. 2026.

Chýbajúci alebo príliš krátky Idempotency-Key dostane 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
Odpoveď400 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
}
Zaznamenané 7. okt. 2026.

Odpovede

StavVýznam
202Prijatý a zaradený do frontu. Location obsahuje URL faktúry.
400Parameter dotazu alebo Idempotency-Key chýba alebo je nesprávny.
401Chýba kľúč alebo je neznámy.
403Kľúču chýba oprávnenie submit alebo uvádza iného klienta (forbidden).
409Kľúč bol použitý s iným telom (idempotency-conflict) alebo jeho prvá požiadavka ešte beží (request-in-progress).
413Telo má viac ako 5 MB (payload-too-large).
415Typ obsahu nie je XML ani PDF (unsupported-media).
422Odmietnutý súbor: EI-XML-DTD, EI-XML-SYNTAX alebo EI-XML-TYPE.
429Príliš veľa požiadaviek pre kľúč. Počkajte Retry-After sekúnd.
503Iná požiadavka na ten istý dokument sa ešte ukladá (busy). Skúste znova po Retry-After sekundách.

Na tejto stránke