Architektonický pohľad
Z pohľadu IT je Peppol ekosystém vrstvená architektúra, kde každá vrstva rieši odlišnú zodpovednosť:
- Vaše ERP / aplikácie — generujú obchodné dokumenty (faktúra, dobropis, objednávka).
- Vaša integrácia — middleware, ktorý transformuje obchodný doklad na UBL XML podľa BIS Billing 3.0 a komunikuje s CPDS.
- CPDS / Peppol Access Point — pripája vás do globálnej Peppol siete, podpisuje a šifruje doklady, vykonáva validáciu, doručuje cez AS4 ďalším AP-om.
- Peppol SML/SMP — globálna service discovery vrstva (Service Metadata Locator a Service Metadata Publisher), ktorá hovorí „kde je participant XYZ a aké formáty prijíma".
- Cieľový AP — protistrana (CPDS druhej firmy), ktorá doručí dokument do ERP príjemcu.
REST API — typický kontrakt
Slovenskí CPDS poskytovatelia ponúkajú podobnú množinu endpointov, kompatibilnú s OpenAPI 3.0 špecifikáciou. Príklady (skutočná schéma sa môže líšiť):
Príjem dokumentov
-
GET /v1/inbox— paginated list prijatých faktúr s metadata. -
GET /v1/invoices/{id}— detail vrátane UBL XML a PDF (ak generuje CPDS). -
POST /v1/webhooks— registrácia webhook URL pre push notifikácie pri nových faktúrach.
Odosielanie dokumentov
-
POST /v1/invoices— odoslanie UBL XML faktúry. Body je raw XML alebo multipart s prílohami. -
POST /v1/invoices/validate— dry-run validácia bez odoslania. Vráti syntaktické a obchodné chyby pred ostrým submitom. -
GET /v1/invoices/{id}/status— sledovanie stavu (Submitted, Delivered, Acknowledged, Rejected) po odoslaní.
Discovery a metadata
-
GET /v1/participants/lookup?id=0245:SK1234567890— overenie, či zákazník/dodávateľ je v Peppol sieti a aké formáty podporuje. -
GET /v1/health— status check pre monitoring.
Webhooks — best practices
CPDS posiela webhooky pre asynchrónne udalosti — nový dokument prijatý, odoslanie potvrdené, odoslanie zamietnuté. Robustná webhook integrácia má:
- HMAC podpis — header
X-CPDS-Signatures SHA-256 alebo SHA-512 HMAC payloadu, validujte pred spracovaním. (Niektoré CPDS prešli z SHA-256 na SHA-512 — overte aktuálny štandard poskytovateľa.) - Idempotenciu — webhook môže byť doručený opakovane, uchovávajte ID a deduplikujte.
- Acknowledgement — vráťte HTTP 2xx do 10 sekúnd, inak CPDS retry-uje (typicky exponential backoff: 1m, 5m, 30m, 2h, 12h).
- Async processing — webhook handler len enqueuje úlohu, spracovanie deje samotný worker. Zabráni timeoutom pri pomalom backende.
- Source IP allowlist — niektorí CPDS publikujú CIDR rozsahy svojich webhook IP, validujte pred prijatím.
AS4 — čo je dobré vedieť
AS4 (Applicability Statement 4) je transportný protokol používaný v Peppol sieti medzi Access Pointmi. Pre developera vašej aplikácie je AS4 „neviditeľný" — komunikujete s vaším CPDS cez REST, on rieši AS4 voči ďalším AP-om. Praktické fakty o AS4:
- Postavený na ebMS3 (ebXML Messaging Services 3.0) — SOAP + MIME multipart.
- Obojstranná autentizácia X.509 certifikátmi (Peppol Authority CA).
- Asynchrónny acknowledgement — receipt (signed) ako dôkaz doručenia.
- Podpora reliable messaging (WS-RM), non-repudiation, confidentiality.
- Štandard od OASIS, oficiálne profily pre Peppol: docs.peppol.eu/edelivery.
Sandbox testovanie — odporúčaný postup
- Registrácia sandbox účtu u CPDS (typicky zdarma).
Získate test participant ID v slovenskom formáte (napr.
0245:SKTEST123) a API kľúče oddelené od produkčných. - Smoke test — zavolajte
GET /v1/healthaGET /v1/participants/lookup?id=<your-id>. Overí sa autentizácia a discovery. - Round-trip test — pošlite testovaciu faktúru sami sebe (sender ID = receiver ID). Príde späť cez webhook do 1–5 minút.
- Validačný test — pošlite zámerne chybnú faktúru (nesprávne DPH sadzby, neexistujúce participant ID, malformed XML). Overte, že CPDS vráti relevantné chyby.
- Performance test — synthetic load test s realistickým objemom. Sledujte p95 latencia a error rate. Pre enterprise 50+ rps minimum.
- Resilience test — simulujte výpadky (network timeout, rate-limit response, 5xx errory). Overte retry logiku a circuit-breaker.
- End-to-end test s reálnym partnerom — pred 1.1.2027 dohodnite test s 2–3 kľúčovými klientmi a dodávateľmi, ktorí už majú Peppol setup.
Security checklist
- TLS 1.2+ povinné, TLS 1.3 odporúčané. Bez výnimiek.
- API kľúče v secret manager (HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager). Žiadne hardcoded kľúče v kóde alebo .env súboroch v gitu.
- Rotácia kľúčov — automaticky každých 90 dní, manuálna rotácia pri podozrení na únik.
- Princíp najmenších oprávnení — read-only kľúče pre monitoring, write kľúče len pre integration servisy.
- Webhook HMAC validation — vždy. Bez výnimky.
- Encryption at rest v databáze (AES-256), KMS-managed kľúče.
- Audit log všetkých CPDS API interakcií — append-only, retention 10 rokov.
- DPA (Data Processing Agreement) s CPDS poskytovateľom, mapovanie GDPR data flow.
Súvisiace zdroje
- Úvodná stránka — kompletný sprievodca CPDS
- Slovník Peppol a CPDS pojmov
- Pre veľké podniky — SAP, Dynamics, batch processing
- CPDS API integrácia — sprievodca pre vývojárov
- Peppol BIS 3.0 vs UBL 2.1 — vysvetlenie
- Kompletný 12-krokový checklist e-fakturácie 2027