VerifyEU API
Live dokumentácia · rovnaký kontrakt ako API

API docs, ktoré sa dajú použiť hneď.

VerifyEU API pokrýva PEPPOL XML validáciu, slovenské eFaktúra workflowy, Peppol lookup, VIES, PDF bridge, error catalog a dokumentový lifecycle. Táto stránka číta živý OpenAPI shell, takže vývojár vidí dostupné endpointy priamo z backendu.

Pokrytie API

Kontroloval som to aj voči dodaným referenciám: nechávame si praktické onboarding prvky, ale pridávame širší workflow okolo validácie, lookupu, dokumentov a opráv.

Validácia XML

Batch aj single-file JSON requesty pre UBL, EN 16931, Peppol profil a slovenskú aplikačnú vrstvu s issues, summary a remediation odkazmi.

POST /validatePOST /validate-fileSK CIUS

Delivery workflow

Dokumentový lifecycle drží status, event timeline, artefakty na stiahnutie, idempotency kľúč a prípravu send kroku cez pripojeného certifikovaného partnera po validácii.

POST /documents/send/acknowledgements

Lookup a opravy

Peppol participant lookup, batch radar, VIES kontrola, error catalog a remediation API pre vysvetlenie chýb bez hľadania v normách.

/peppol-radar/error-catalog/remediation

Quickstart

Primárny payload je JSON, nie multipart. Je to stabilnejšie pre serverless deploy, auditovanie requestov a batch spracovanie.

1. Načítajte XMLObsah súboru pošlite ako string v poli content.
2. Zavolajte validáciuPre viac faktúr použite files, pre jednu faktúru filename + content.
3. Opravte podľa rule_idKaždý issue má vrstvu, závažnosť a odkaz na error catalog alebo remediation flow.
# Batch validácia XML faktúr
curl -X POST https://verifyeu.com/api/validate \
  -H "Content-Type: application/json" \
  -d '{
    "files": [
      {
        "filename": "faktura.xml",
        "content": "<Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\">...</Invoice>"
      }
    ]
  }'
import { readFile } from "node:fs/promises";

const xml = await readFile("faktura.xml", "utf8");
const response = await fetch("https://verifyeu.com/api/validate", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    files: [{ filename: "faktura.xml", content: xml }]
  })
});

const result = await response.json();
console.log(result.valid, result.invalid, result.results[0].issues);
import json
from urllib.request import Request, urlopen

with open("faktura.xml", "r", encoding="utf-8") as f:
    xml = f.read()

payload = json.dumps({
    "files": [{"filename": "faktura.xml", "content": xml}]
}).encode("utf-8")

req = Request(
    "https://verifyeu.com/api/validate",
    data=payload,
    headers={"Content-Type": "application/json"},
    method="POST",
)

print(json.loads(urlopen(req, timeout=30).read()))
{
  "total": 1,
  "valid": 0,
  "invalid": 1,
  "results": [
    {
      "filename": "faktura.xml",
      "valid": false,
      "fatal_count": 1,
      "warning_count": 1,
      "summary": { "invoice_id": "FV-2026-0001", "currency": "EUR" },
      "issues": [
        {
          "level": "fatal",
          "layer": "EN16931",
          "rule_id": "BR-CO-10",
          "message": "Súčet riadkov nesedí s LegalMonetaryTotal."
        }
      ]
    }
  ]
}

Auth, limity a bezpečnosť

Voľný validator pomáha pri testovaní. Produkčná integrácia má mať oddelené workspace oprávnenia, audit a idempotency.

Verejný režim

Endpointy validácie a PDF bridge môžu bežať bez API kľúča, ale sú metered cez verejný denný soft limit. Pri limite API vráti public_soft_limit_reached s hodnotami used a limit.

Workspace režim

Pre dôverné faktúry používajte workspace API kľúč, role developer alebo admin, a pri vytváraní dokumentu posielajte Idempotency-Key, aby retry nevytvoril duplicitu.

Živé endpointy

Zoznam nižšie sa skladá z /api/openapi.json. Ak backend pribudne alebo sa zmení, táto časť to ukáže bez ručnej úpravy stránky.

...OpenAPI paths
...sandbox endpoints
...artifact registry
...public daily limit