CPDS API integrácia — sprievodca pre vývojárov

Najdôležitejšie upozornenie

Neexistuje jedno spoločné štátne ani OpenPeppol „CPDS REST API“. Zákon a technické špecifikácie určujú dokumenty, adresovanie, doručovací rámec a oznamovanie údajov. Rozhranie medzi vaším ERP a certifikovaným poskytovateľom je produktový kontrakt konkrétnej služby.

Názvy endpointov, OAuth scope, hlavičky, webhookové udalosti a stavy v tomto článku preto nie sú prezentované ako štandard. Nasledujúce vzory slúžia na návrh integrácie; implementujte ich podľa aktuálnej OpenAPI dokumentácie, zmluvy a testov vybraného poskytovateľa.

Architektonické vrstvy

VrstvaVlastníkČo rieši
ERP alebo fakturačná aplikáciavaša firma alebo dodávateľ softvéruobchodné údaje, schválenie, účtovanie
Konektor k poskytovateľoviintegračný tímmapovanie, API volania, stavy, retry
Certifikovaný poskytovateľ doručovacej službyzmluvný poskytovateľvalidácia podľa rozsahu služby, registrácia, Peppol prenos, prevádzkové stavy
Peppol discovery a transportposkytovatelia v sietinájdenie príjemcu a bezpečný prenos medzi prístupovými bodmi
Slovenské daňové oznamovaniezákonný a technický rámec FS SRzákonom určené údaje a reportingový tok

ERP tím zvyčajne neimplementuje AS4, SMP ani SML priamo. Ak firma nie je sama certifikovaným poskytovateľom, tieto vrstvy má obslúžiť vybraný poskytovateľ.

Najprv si vyžiadajte API kontrakt

Pred návrhom konektora získajte:

Marketingová stránka alebo ukážka jedného endpointu nie je API kontrakt.

Odoslanie dokumentu

Robustný tok má oddeliť prijatie požiadavky od konečného výsledku:

  1. ERP uzavrie obchodný doklad a pridelí mu nemenný interný identifikátor.
  2. Mapovacia vrstva vytvorí podporované XML.
  3. Dokument prejde lokálnou validáciou proti presnej verzii pravidiel.
  4. Konektor odošle dokument poskytovateľovi s idempotentným identifikátorom.
  5. Poskytovateľ prijatie požiadavky potvrdí vlastným identifikátorom.
  6. Konektor asynchrónne zistí konečný stav doručenia alebo chyby.
  7. ERP uloží výsledok, no nezamieňa „prijaté API“ s „doručené príjemcovi“.

Ilustračný pseudokód, nie reálne API:

document = mapToSupportedInvoice(erpInvoice)
validation = validate(document, rulesetVersion)

if validation.hasFatalErrors:
    stopAndAssignToOwner(validation.errors)

result = provider.submit(
    document,
    idempotencyKey = erpInvoice.immutableId
)

storeProviderReference(result.reference)
waitForTerminalDeliveryState(result.reference)

Ak konkrétny poskytovateľ nemá samostatnú validačnú operáciu, validáciu urobte lokálne a výsledok aj tak overte v jeho testovacom prostredí. Lokálna validácia a akceptácia poskytovateľom môžu používať odlišné vydanie pravidiel; verziu preto logujte.

Idempotencia a duplicity

Sieťové volanie môže skončiť timeoutom aj vtedy, keď poskytovateľ dokument prijal. Bez idempotencie môže slepý retry vytvoriť duplicitné odoslanie.

Použite:

Nezamieňajte technické opakovanie požiadavky s vyhotovením novej alebo opravnej faktúry. Oprava obsahu musí mať účtovný a daňový dôvod aj správnu referenciu.

Príjem dokumentov

Poskytovateľ môže ponúknuť webhook, frontu, sťahovanie cez API alebo kombináciu. Bez ohľadu na mechanizmus zabezpečte:

Ilustračný webhook cieľ používajte iba s rezervovanou doménou, napríklad:

https://webhook.example/integrations/provider/events

Toto nie je existujúca služba ani odporúčaný endpoint. Doména example je zámerne neprodukčná.

Bezpečnostné minimum

Poverenia

Transport a webhooky

Oprávnenia medzi firmami

Ak integrácia obsluhuje viac účtovných jednotiek, každý dokument musí byť viazaný na správny subjekt. Identifikátor odosielateľa neprijímajte iba z používateľského vstupu; autorizujte ho voči zmluvnému účtu, povereniu alebo portfóliu klienta.

Validácia dokumentu

„XML sa dá otvoriť“ nie je úspešná validácia. Potrebujete najmenej:

  1. syntaktickú kontrolu XML,
  2. kontrolu schémy použitej syntaxe,
  3. pravidlá EN 16931,
  4. aktuálne Peppol BIS Billing pravidlá,
  5. aktuálne slovenské pravidlá,
  6. produktové obmedzenia podporovaného toku.

K 20. augustu 2026 je aktuálne povinné vydanie Peppol BIS Billing 3.0.21, publikované 20. mája 2026 a povinné od 17. augusta 2026. Verziu validačných artefaktov neukladajte natrvalo bez mechanizmu aktualizácie.

Pravidlá sa môžu meniť nezávisle od aplikačného releasu. V prevádzke preto evidujte:

Stavový model

Názvy stavov sú poskytovateľské, ale interný model by mal rozlišovať aspoň:

Interný stavVýznam
pripravenédoklad je uzavretý v ERP
neplatnélokálna validácia našla fatálnu chybu
odovzdanie nejasnétimeout alebo prerušenie; pred retry treba zistiť stav
prijaté poskytovateľomAPI požiadavka bola prijatá, doručenie ešte nie je potvrdené
doručenéposkytovateľ potvrdil konečný doručovací výsledok podľa kontraktu
nedoručenépríjemca, smerovanie, validácia alebo transport skončili chybou
vyžaduje zásahstav nemožno bezpečne vyriešiť automaticky

Mapovanie stavov musí vychádzať z dokumentácie poskytovateľa. Nepremenujte každú odpoveď HTTP 200 na „doručené“.

Testovací plán

Testujte v určenom testovacom prostredí so syntetickými firmami, identifikátormi a dokladmi. Neposielajte fiktívnu faktúru sami sebe v produkcii.

Minimálne scenáre:

Dokumenty overte aj v OpenPeppol Testbede. Výsledok validátora nenahrádza end-to-end test so zmluvným poskytovateľom.

Prevádzkový checklist

Čo tento článok zámerne neuvádza

Neuvádzame univerzálne endpointy, OAuth scope, webhookové hlavičky, rate limits, ceny ani odporúčané programové knižnice. Tieto údaje nie sú vlastnosťou CPDS ako zákonnej kategórie a bez overenia konkrétneho produktu by boli zavádzajúce.

Pokračujte cez zdroje pre vývojárov, implementáciu pre ERP a rozdiel medzi doručením a daňovým oznamovaním.

Zdroje a verifikácia

Tento článok je písaný ako edukačný sprievodca. Pri právnych a technických tvrdeniach odporúčame overiť aktuálny stav aj v oficiálnych dokumentoch.

  1. Finančná správa SR — eFaktúra — Finančná správa SR · overené 20. augusta 2026
  2. OpenPeppol — Peppol BIS Billing 3.0 — OpenPeppol · overené 20. augusta 2026
  3. OpenPeppol — Testbed validation — OpenPeppol · overené 20. augusta 2026
  4. OASIS — Universal Business Language Version 2.1 — OASIS Open · overené 20. augusta 2026
  5. OpenPeppol test documentation — Slovakia TDD — OpenPeppol · overené 20. augusta 2026

Ako citovať túto stránku

CPDS API integrácia — sprievodca pre vývojárov. CPDS.sk, technický stav k 20. 8. 2026.