Docs

3 API3.1

3.1

Skúšobný beh: POST /validate

Spustí rovnaké kontroly ako podanie. Nič neukladá ani neodosiela.

  • V sandboxe

Jednoducho povedané

Skúšobný beh skontroluje faktúru tak, ako by to urobilo skutočné podanie, a nič neodošle, takže partner môže nájsť každý problém skôr, než faktúra klienta niekam odíde.

POST /validate spustí rovnaké kontroly ako podanie a odpovie protokolom. Nič nezaradí do frontu a nič neodošle. Volanie vyžaduje kľúč s oprávnením submit. Telo je JSON s veľkosťou najviac 5 MB.

Tip

Začnite tu, keď mapujete nového klienta.

Požiadavka

PoleVýznam
invoice_refPovinné. Vlastné ID dokladu v ERP, najviac 100 znakov. Vracia sa v každej stavovej udalosti.
routePovinné. DE-XRECHNUNG, PEPPOL, FR-PA, PL-KSEF alebo RO-EFACTURA.
documentJedna faktúra v kanonickom modeli. Pošlite buď toto, alebo export, nie oboje.
export, connectorExport z ERP tak, ako ho ERP napísalo, s connector nastaveným na business-central alebo sap-b1. Pošlite buď toto, alebo document, nie oboje. Pri inom kanáli než nemeckom začína protokol vrstvou mapping. mapping_version zvolí inú verziu, než je aktívna (pozri verzie mapovania).
formatsDokumenty, ktoré sa majú zostaviť, kde kanál dovoľuje výber. Nemecko: ľubovoľné z xrechnung-ubl (predvolené), xrechnung-cii a zugferd; KoSIT sa spustí raz pre každý formát a pri PDF sa navyše spustia Mustang a veraPDF. Francúzsko: ubl, cii alebo facturx.
environmentVoliteľné. Musí zodpovedať prostrediu vášho kľúča.
erp_totalsSúčty, ktoré vypočítal váš ERP: payable_amount, currency a voliteľne tax_amount, ako reťazce. Ak sa líšia od súčtov, ktoré služba vypočíta z riadkov, protokol obsahuje zistenie EI-TOTALS-MISMATCH pre erp_totals.payable_amount.

Úplný zoznam polí je v referenčnej dokumentácii.

Faktúra, ktorá prejde

Vzorová požiadavka je validate-de-ok.json, vymyslená nemecká faktúra. Protokol obsahuje valid: true, jeden dokument s jeho SHA-256 a štyri vrstvy, ktoré prešli.

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
Odpoveď200 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"
    }
  ]
}
Zaznamenané 7. okt. 2026. Spustite vo vlastnom priečinku so vzorovým súborom vedľa neho.

Faktúra, ktorá neprejde

Tá istá faktúra bez názvu predávajúceho, validate-de-missing-seller-name.json. Skúšobný beh aj tak odpovie 200. valid je false a každé zistenie pomenuje pole a uvedie, kto ho opraví. Pozrite sa na dva zvýraznené riadky: code z katalógu a field v údajoch klienta.

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
Odpoveď200 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"
    }
  ]
}
Zaznamenané 7. okt. 2026.

Ako čítať protokol

  • valid je true len vtedy, keď prešli všetky vrstvy.
  • layers sa spúšťajú v poradí: schema, mapping, pre-check a potom vlastné validátory kanála, pomenované podľa toho, čo bežalo (napríklad KoSIT-XRechnung-3.0.2).
  • Každé zistenie má code z katalógu, field, who_fixes (us alebo erp), fix_hint, message a vrstvu source. Stránka Chyby a katalóg uvádza všetky kódy.
  • documents uvádza, čo sa vytvorilo, spolu s jeho SHA-256 a pri súbore do 2 MiB aj s jeho bajtmi v content_base64. Je prítomné, keď je faktúra platná.

Ďalšie odpovede

StavVýznam
200Protokol, či už platný, alebo nie.
400Požiadavku nemožno prečítať: nie je to JSON, niektoré pole je nesprávne alebo sú prítomné document aj export.
401Chýba kľúč alebo je neznámy.
403Kľúč nemá oprávnenie submit.
413Telo má viac ako 5 MB (payload-too-large).
422Číslo mimo limitov, napríklad dlhšie ako 40 znakov (EI-SCHEMA s pomenovaním poľa). Každé ďalšie zistenie príde v protokole s 200.
429Príliš veľa požiadaviek pre kľúč. Počkajte Retry-After sekúnd.
503Všetky validátory sú zaneprázdnené (busy). Skúste znova po Retry-After sekundách.
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
Odpoveď400 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
}
Zaznamenané 7. okt. 2026.

Na tejto stránke