AP
Developer Portal
APEX AP Service — REST API & SAPI Documentation
Integrační příručka REST API SAPI Swagger / OpenAPI OAuth 2.0
Peppol Access Point • REST API • SAPI-SK v1.0

APEX AP Developer Portal — kompletní dokumentace API a SAPI endpointů. Developer Portal — kompletná dokumentácia API a SAPI endpointov.

Technická reference pro všechny 25+ endpointů implementovaných v APEX AP Service. Obsahuje APEX API pro hlubokou integraci, SAPI pro zjednodušený přístup dle SAPI-SK v1.0, autentizaci, validaci, odesílání, inbox, webhooky, reporting a participant lookup.

APEX API
Documents, Inbox, Events
Plné REST API pro odesílání, příjem, validaci a sledování dokumentů.
SAPI
Zjednodušené rozhraní
Synchronní odesílání, příjem a autentizace dle specifikace SAPI-SK.
Participants
Lookup DIČ / IČO
Vyhledávání účastníků dle DIČ nebo IČO přes SMP/SML.
Webhooky & Reporting
Notifikace a EUSR/TSR
Webhook subscriptions, AMQP queue a statistiky reportingu.
Navigace portálem
Struktura dokumentace
Všechny endpointy jsou implementovány a dostupné. Dokumentace odráží aktuální stav zdrojového kódu a Swagger anotací.
Integrační cesty

Dvě cesty, jak se napojit na APEX

APEX Access Point nabízí dva rovnocenné způsoby integrace. Výběr závisí na tom, kde běží váš systém a jaký styl komunikace potřebujete. Obě cesty pokrývají plný Peppol tok (odesílání i příjem) a lze je i kombinovat.

A
Cesta A — přímá REST integrace

APEX REST API (SAPI)

REST OAuth 2.0 JSON UBL 2.1 Webhooky
👤 Pro koho
Vývojáři ERP, účetních systémů, e-shopů a portálů, kteří si chtějí postavit vlastního klienta a mít plnou kontrolu nad tokem.
⚙️ Jak to funguje
HTTPS volání na apex.asseco-peppol.com s OAuth 2.0 tokenem. JSON payload, UBL XML v Base64. Synchronní request/response + status polling nebo webhooky.
✅ Proč zvolit tuto cestu
  • Žádná dodatečná infrastruktura — stačí HTTPS klient
  • Plná kontrola nad retry logikou, timeouty a chybovými stavy
  • On-demand synchronní odesílání (např. z user-triggered akce v UI)
  • Jednoduché testování přes Postman / curl / Swagger UI
Otevřít API Reference
B
Cesta B — managed messaging

QHUB (RabbitMQ message bus)

AMQPS RabbitMQ async DLQ Audit
👤 Pro koho
Systémy běžící v ASOL Cloud a externí ERP, které již používají messaging vrstvu (Java/Spring AMQP, .NET MassTransit, pika). Ideální pro enterprise provoz a automatizované batch toky.
⚙️ Jak to funguje
AMQPS připojení k RabbitMQ v ASOL Cloud. Odesíláte SynchronizationMessage s entitou PeppolDocument, QHUB ji doručí APEX-u a případné odpovědi pošle zpět na vaši queue.
✅ Proč zvolit tuto cestu
  • Retry + Dead-Letter Queue out-of-the-box při dočasných výpadcích
  • Automatický audit trail každé zprávy v transakční tabulce
  • Asynchronní tok — váš systém nemusí být dostupný non-stop
  • Jednotná správa credentials pro více ASOL produktů
Otevřít Integrační příručku
💡
Tip: Obě cesty lze zkombinovat. Např.: odesílání přes REST API (synchronně, z UI akce) a příjem přes QHUB (asynchronně, se spolehlivým retry).
Přehled

Pro koho je tato dokumentace

Integrátor ERP
Potřebuje vědět jak autentizovat, validovat dokument, odeslat ho a sledovat stav doručení. Používá převážně APEX API.
Klíčové sekce: Quickstart, Document Management, Participants, Status & Events.
Backend vývojář
Zajímá ho OAuth 2.0 flow, retry strategie, webhook integrace, přístup k AMQP queue a idempotence operací.
Klíčové sekce: Autentizace, Webhooky, SAPI, Rate limiting.
Support / Operations
Potřebuje rychle zjistit stav dokumentu, přečíst události (events), sledovat reporting submissions a řešit problémy.
Klíčové sekce: Events, Responses, Reporting, Inbox.

Rychlý start

4 kroky k první integraci

01
Autentizace
Zavolejte POST /sapi/v1/auth/token s client_credentials. Získáte JWT access token (15 min) a refresh token (30 dní). Token používejte v hlavičce Authorization: Bearer <token>. s client_credentials. Získate JWT access token (15 min) a refresh token (30 dní). Token používajte v hlavičke Authorization: Bearer <token>.
Výsledek: autorizovaný přístup ke všem API endpointům.
02
Validace / Precheck
Před odesláním zavolejte POST /api/v1/documents/validate nebo /precheck. Validate ověří XML, Schematron a business rules. Precheck navíc ověří existenci účastníka a routovatelnost. alebo /precheck. Validate overí XML, Schematron a business rules. Precheck navyše overí existenciu participanta a routovateľnosť.
Výsledek: méně runtime chyb a méně support incidentů.
03
Odešli dokument
Zavolejte POST /api/v1/documents/send. API vrátí HTTP 202 se statusem QUEUED. Dokument se zpracuje asynchronně — QUEUED neznamená finální doručení.. API vráti HTTP 202 so statusom QUEUED. Dokument sa spracuje asynchrónne — QUEUED neznamená finálne doručenie.
Výsledek: dokument zařazen do processing pipeline.
04
Sleduj stav a odpovědi
Pollujte GET /api/v1/documents/{id}/status pro aktuální stav. Použijte /events pro časovou osu a /responses pro odpovědi protistrany (MLR, IMR). pre aktuálny stav. Použite /events pre časovú os a /responses pre odpovede protistrany (MLR, IMR).
Výsledek: kompletní přehled o doručení dokumentu.

Reference

REST API Reference

POST Existující core

/api/v1/documents/send

Zařazení business dokumentu do asynchronního odesílacího pipeline. Vrátí HTTP 202 se statusem QUEUED.
Účel služby
Přijme UBL dokument a zařadí ho do asynchronního zpracování. Odpověď 202 se statusem QUEUED znamená, že dokument byl přijat ke zpracování, ne že byl doručen. Životní cyklus: QUEUED → PROCESSING → DELIVERED / RETRYING → DEAD_LETTER.
Kdy volat službu
  • po úspěšném prechecku nebo validaci
  • při automatizovaném hromadném odesílání
  • na explicitní požadavek uživatele k odeslání faktury
Asynchronní chování
Dokument prochází stavy: QUEUED → PROCESSING → DELIVERED nebo RETRYING → DEAD_LETTER. Retry používá exponenciální backoff, maximálně 5 pokusů. Sledujte stav přes endpoint /status. endpoint.
Typické chyby
  • 400 — chybějící povinný údaj nebo neplatný payload — chýbajúci povinny udaj alebo nevalidný payload
  • 401 — neplatný nebo expirovaný token — neplatný alebo expirovaný token
  • 422 — neplatný UBL dokument — nevalidný UBL dokument
Vstupní pole
Název
Popis
Stav
senderParticipantId
Peppol ID odesílatele
povinné
receiverParticipantId
Peppol ID příjemce
povinné
documentTypeId
Peppol typ dokumentu
povinné
processId
Peppol identifikace procesu
povinné
ublDocument
UBL XML dokument v Base64 kódování
povinné
Výstupní pole
Název
Popis
documentId
UUID identifikátor odeslaného dokumentu
status
Počáteční stav — QUEUED
submittedAt
Čas přijetí požadavku (ISO 8601)
GET Existující core

/api/v1/documents/{documentId}/status

Zjištění aktuálního stavu doručení odeslaného dokumentu. Používejte pro polling.
Účel služby
Jednoduchý endpoint pro zjištění aktuálního statusu dokumentu. Možné hodnoty: QUEUED, PROCESSING, DELIVERED, RETRYING, FAILED, DEAD_LETTER.
Kdy volat službu
  • v polling modelu po odeslání dokumentu
  • v seznamu dokumentů pro zobrazení stavu
  • při rozhodování, zda je třeba řešit chybu
Stavové hodnoty
QUEUED — čeká na zpracování
PROCESSING — probíhá AS4 odesílání
DELIVERED — úspěšně doručen
RETRYING — dočasná chyba, opakovaný pokus
FAILED — trvalé selhání
DEAD_LETTER — přesunuto do DLQ po vyčerpání pokusů — čaká na spracovanie
PROCESSING — prebieha AS4 odosielanie
DELIVERED — úspešne doručený
RETRYING — dočasná chyba, opakovaný pokus
FAILED — trvale zlyhanie
DEAD_LETTER — presunuté do DLQ po vyerpani pokusov
Typické chyby
  • 404 — dokument neexistuje — dokument neexistuje
  • 401 — neplatný token — neplatný token
Parametry
Název
Popis
Stav
documentId
UUID dokumentu (path parametr)
povinné
Výstupní pole
Název
Popis
documentId
UUID identifikátor dokumentu
status
Aktuální stav doručení
submittedAt
Čas původního odeslání
POST Existující core

/api/v1/documents/validate

Validace UBL dokumentu bez odeslání. Tři vrstvy: XML Schema, EN 16931 Schematron, Peppol BIS 3.0 pravidla.
Účel služby
Umožňuje ověřit syntaktickou a pravidlovou správnost UBL dokumentu ještě před odesláním do sítě Peppol. Podporuje Invoice a Credit Note. Tři validační vrstvy: XML Schema → EN 16931 Schematron → Peppol BIS 3.0 business rules.
Kdy volat službu
  • při generování faktury ještě před odesláním
  • při testování integrace a ladění XML šablon
  • při validaci hromadných importů nebo migrací
Validační vrstvy
1. XML Schema — formální validace struktury
2. EN 16931 Schematron — evropská norma pro e-invoicing
3. Peppol BIS 3.0 — Peppol-specifická business pravidla — formálna validácia štruktúry
2. EN 16931 Schematron — európska norma pre e-invoicing
3. Peppol BIS 3.0 — Peppol-špecifické business pravidlá
Typické chyby
  • 400 — neplatné XML nebo nesprávný payload — nevalidné XML alebo nesprávny payload
  • 422 — porušení validačních pravidel — porušenie validačných pravidiel
Vstupní pole
Název
Popis
Stav
ublDocument
UBL XML dokument (string)
povinné
documentTypeId
Peppol typ dokumentu
volitelné
Výstupní pole
Název
Popis
valid
Celkový výsledek validace (boolean)
schemaValid
Výsledek XSD validace
schematronValid
Výsledek EN 16931 validace
businessRulesValid
Výsledek pravidel Peppol BIS 3.0
errors[]
Pole chyb s detailem
warnings[]
Pole upozornění
documentType
Rozpoznaný typ dokumentu
documentId
ID z dokumentu
issueDate
Datum vystavení
supplierName
Název dodavatele
customerName
Název odběratele
totalAmount
Celková částka
currencyCode
Kód měny
POST Existující core

/api/v1/documents/precheck

Kombinované ověření dokumentu, existence účastníka a routovatelnosti před odesláním. Tři kontroly v jednom volání.
Účel služby
Kombinuje tři kontroly: 1) validace dokumentu, 2) ověření existence účastníka přes SMP/SML, 3) ověření routovatelnosti (podpora doctype). Výsledek networkReady = valid AND participantExists AND canSend. = valid AND participantExists AND canSend.
Kdy volat službu
  • těsně před odesláním dokumentu do sítě Peppol
  • při implementaci business tlačítka "Odeslat"
  • při hromadném odesílání pro vyfiltrování problematických dokumentů
Kategorie chyb
VALIDATION — chyby v UBL dokumentu
PARTICIPANT — příjemce neexistuje v SMP/SML
ROUTING — příjemce nepodporuje daný doctype/proces

Varování: CERT_EXPIRING_SOON — certifikát příjemce brzy vyprší — chyby v UBL dokumente
PARTICIPANT — prijemca neexistuje v SMP/SML
ROUTING — prijemca nepodporuje daný doctype/proces

Varovanie: CERT_EXPIRING_SOON — certifikát príjemcu čoskoro vyprší
Typické chyby
  • 400 — chybějící povinný údaj — chýbajúci povinny udaj
  • 422 — validační chyby v dokumentu — validačné chyby v dokumente
  • 404 — účastník nenalezen v SMP/SML — participant nenájdený v SMP/SML
Vstupní pole
Název
Popis
Stav
senderParticipantId
Peppol ID odesílatele
povinné
receiverParticipantId
Peppol ID příjemce
povinné
documentTypeId
Peppol typ dokumentu
povinné
processId
Peppol identifikace procesu
povinné
ublDocument
UBL XML dokument (Base64)
povinné
Výstupní pole
Název
Popis
networkReady
Zda je dokument připraven k odeslání (valid AND participantExists AND canSend)
valid
Celkový výsledek validace
participantExists
Zda příjemce existuje v SMP/SML
canSend
Zda příjemce podporuje daný typ dokumentu
errors[]
Pole chyb s kategorií (VALIDATION/PARTICIPANT/ROUTING)
warnings[]
Pole varování (např. CERT_EXPIRING_SOON)
checkedAt
Čas provedení kontrol
GET Existující inbound

/api/v1/documents/inbox

Seznam přijatých dokumentů. Stránkované (offset/limit), seřazené dle receivedAt DESC.
Účel služby
Inbox slouží jako integrační plocha pro klienta, který chce přijímané dokumenty číst pull modelem. Podporuje filtrování dle statusu: RECEIVED, VALIDATED, DELIVERED, FAILED, REJECTED.
Kdy volat službu
  • při integraci přijatých faktur do ERP
  • když klient preferuje polling místo webhooků
  • při dohledávání konkrétního inbound dokumentu
Stránkování
Používá offset/limit model. Výchozí limit je 20, maximum 100. Odpověď obsahuje total pro celkový počet záznamů. pre celkový počet záznamov.
Typické chyby
  • 400 — neplatný filtr nebo parametr — neplatný filter alebo parameter
  • 401 — neplatný token — neplatný token
Query parametry
Název
Popis
Stav
status
Filtr dle statusu (RECEIVED, VALIDATED, DELIVERED, FAILED, REJECTED)
volitelné
offset
Offset pro stránkování (výchozí 0)
volitelné
limit
Počet záznamů (výchozí 20, max 100)
volitelné
Výstupní pole
Název
Popis
items[]
Pole přijatých dokumentů
total
Celkový počet záznamů
offset
Aktuální offset
limit
Aktuální limit
GET Existující inbound

/api/v1/documents/inbox/{documentId}

Detail přijatého dokumentu včetně kompletního UBL XML payloadu.
Účel služby
Vrátí kompletní přijatý dokument včetně všech metadat a UBL XML payloadu pro zpracování v ERP systému.
Kdy volat službu
  • při stažení konkrétního dokumentu do ERP
  • při zobrazení detailu faktury
Výstupní pole
documentId, senderParticipantId, receiverParticipantId, documentTypeId, processId, receivedAt, status, ublDocument (XML payload), senderParticipantId, receiverParticipantId, documentTypeId, processId, receivedAt, status, ublDocument (XML payload)
Typické chyby
  • 404 — dokument neexistuje — dokument neexistuje
  • 401 — neplatný token — neplatný token
POST Existující inbound

/api/v1/documents/inbox/{documentId}/acknowledged

Potvrzení přijetí dokumentu. Nastaví status na DELIVERED. Idempotentní operace, vrátí 204 No Content.
Účel služby
Po zpracování přijatého dokumentu v ERP systému zavolejte tento endpoint pro potvrzení přijetí. Dokument přechází do stavu DELIVERED. Operace je idempotentní — opakované volání nemá vedlejší efekt.
Kdy volat službu
  • po úspěšném zpracování dokumentu v ERP
  • po importu faktury do účetního systému
Odpověď
HTTP 204 No Content — úspěšné potvrzení. Žádné tělo odpovědi.
Typické chyby
  • 404 — dokument neexistuje — dokument neexistuje
  • 409 — dokument již byl potvrzen (conflict) — dokument už bol potvrdený (conflict)
GET Existující ops

/api/v1/documents/{documentId}/events

Kompletní chronologický seznam událostí (events) pro odeslaný i přijatý dokument.
Účel služby
Vrátí všechny události dokumentu v chronologickém pořadí. Kategorie událostí: Lifecycle, Validation, SMP lookup, AS4 transport, Storage, Retry/queue, TDD/C5. Každý event obsahuje technický detail a časovou značku.
Kdy volat službu
  • při reklamaci doručení — časová osa co se stalo
  • při detailní analýze chování dokumentu
  • při exportu auditní stopy
Kategorie událostí
Lifecycle — změny stavu dokumentu
Validation — výsledky validace
SMP lookup — dohledání účastníka
AS4 transport — odesílání přes Peppol
Storage — uložení dokumentu
Retry/queue — retry pokusy a DLQ
TDD/C5 — testovací framework — zmeny stavu dokumentu
Validation — výsledky validácie
SMP lookup — dohľadanie participanta
AS4 transport — odosielanie cez Peppol
Storage — uloženie dokumentu
Retry/queue — retry pokusy a DLQ
TDD/C5 — testovaci framework
Typické chyby
  • 404 — dokument neexistuje — dokument neexistuje
Parametry
Název
Popis
Stav
documentId
UUID dokumentu (path parametr)
povinné
Výstupní pole (každá událost)
Název
Popis
id
Unikátní identifikátor eventu
messageId
ID zprávy v kontextu AS4
eventType
Typ události (kategorie)
eventCode
Kód události
eventMessage
Čitelný popis události
technicalDetails
Technické detaily
stacktrace
Stack trace při chybě
createdAt
Čas vzniku události
GET Existující ops

/api/v1/documents/{documentId}/responses

Odpovede na aplikačnej úrovni prijaté od protistrany (MLR, IMR, ORDER_RESPONSE, RECEIPT_ADVICE).
Účel služby
Vrátí seznam odpovědí přijatých k odeslanému dokumentu. Typy odpovědí: MLR (Message Level Response), IMR (Invoice Message Response), ORDER_RESPONSE, RECEIPT_ADVICE.
Kódy odpovedí
AP — Accepted (přijato)
RE — Rejected (zamítnuto)
CA — Conditionally Accepted
UQ — Under Query (v řešení)
IP — In Process — Accepted (akceptovane)
RE — Rejected (zamietnuté)
CA — Conditionally Accepted
UQ — Under Query (v riešení)
IP — In Process (spracováva sa)
Kdy volat službu
  • při reklamaci doručení — zjištění zda přišla odpověď
  • při auditu a prokazování výměny dokumentů
  • při řešení sporu o doručení
Typické chyby
  • 404 — dokument neexistuje nebo nemá odpovědi — dokument neexistuje alebo nemá odpovede
Parametry
Název
Popis
Stav
documentId
UUID dokumentu (path parametr)
povinné
Výstupné polia (kazda odpoveď)
Název
Popis
responseId
Unikátní identifikátor odpovědi
responseType
Typ odpovědi (MLR/IMR/ORDER_RESPONSE/RECEIPT_ADVICE)
responseCode
Kód odpovědi (AP/RE/CA/UQ/IP)
summary
Souhrn odpovědi
respondedAt
Čas přijetí odpovědi
issues[]
Pole problémů z odpovědi
GET Existující participants

/api/v1/participants/lookup/dic

Vyhľadanie participanta podľa DIC (VAT number). Rozlíšenie: lokálna DB → SMP/SML pri cache miss → 404 ak nenájdený.
Účel služby
Umožňuje vyhledat Peppol účastníka dle DIČ. Nejprve hledá v lokální DB, při cache miss dotazuje SMP/SML. Hodnoty schématu: 9950 (SK), 9910 (AT), 9919 (DE), 9955 (CZ).
Kdy volat službu
  • při onboarding formuláři nebo výběru obchodního partnera
  • před capability checkem v precheck flow
  • při automatickém doplňování partnera v ERP
Rozlišovací logika
1. Lokální databáze (cache)
2. SMP/SML lookup při cache miss
3. HTTP 404 pokud účastník neexistuje
Odpověď obsahuje pole source (LOCAL nebo SMP) označující zdroj dat. Lokálna databáza (cache)
2. SMP/SML lookup pri cache miss
3. HTTP 404 ak participant neexistuje

Odpoveď obsahuje source pole: LOCAL alebo SMP.
Typické chyby
  • 400 — chybějící parametr schema nebo dic — chýbajúci parameter schema alebo dic
  • 404 — účastník neexistuje — participant neexistuje
  • 503 — SMP/SML dočasně nedostupný — SMP/SML dočasné nedostupný
Query parametry
Název
Popis
Stav
schema
Schéma identifikátoru (např. 9950 pro SK)
povinné
dic
DIČ hodnota (např. 2024000001)
povinné
Výstupní pole
Název
Popis
source
Zdroj dat — LOCAL nebo SMP
participantId
Interní ID účastníka
peppolId
Peppol Participant ID
organizationName
Název organizace
countryCode
Kód země (SK, AT, DE, CZ)
endpointUrl
AS4 endpoint URL
smpUrl
URL SMP záznamu
enabled
Zda je účastník aktivní
certificate
Objekt certifikátu: subject, issuer, serial, fingerprint, notBefore, notAfter, expired
smpMetadataUpdatedAt
Poslední aktualizace SMP metadat
GET Existující participants

/api/v1/participants/lookup/ico

Vyhľadanie participanta podľa ICO (číslo v obchodnom registri). Rezolvuje ICO → DIC → Peppol ID.
Účel služby
Umožňuje vyhledat Peppol účastníka dle IČO. Rozlišovací logika: IČO → Registr účetních závěrek / Finstat → DIČ → Peppol ID → lokální DB → SMP/SML.
Kdy volat službu
  • když známe jen IČO obchodního partnera
  • při integraci s ERP, kde se pracuje s IČO
  • při automatickém doplňování Peppol identity
Rozlišovací logika
IČO (6-8 číslic) → vyhledání v Registru účetních závěrek / Finstat → získání DIČ → rozlišení Peppol ID → lokální DB → SMP/SML lookup.
Typické chyby
  • 400 — neplatný formát IČO — neplatný format ICO
  • 422 — IČO se nepodařilo přeložit na DIČ — ICO sa nepodarilo preložiť na DIC
  • 404 — účastník neexistuje — participant neexistuje
Query parametry
Název
Popis
Stav
ico
IČO (6-8 číslic)
povinné
schema
Schéma identifikátoru (výchozí 9950)
volitelné
Výstupní pole
Název
Popis
source
Zdroj dat — LOCAL nebo SMP
participantId
Interní ID účastníka
peppolId
Peppol Participant ID
organizationName
Název organizace
countryCode
Kód země
endpointUrl
AS4 endpoint URL
certificate
Certifikát účastníka
GET Existující reporting

/api/v1/reporting/statistics

Agregované statistiky dokumentů za zvolené období. Odeslané, přijaté, úspěšnost doručení, top příjemci a odesílatelé.
Účel služby
Poskytuje agregovaný přehled o dokumentovém provozu. Období: month, quarter, year nebo custom (from/to). Obsahuje statistiky pro odeslané i přijaté dokumenty, delivery rate a top seznamy.
Kdy volat službu
  • při generování přehledového dashboardu
  • při pravidelném reportování vedení
  • při analýze trendů a úspěšnosti doručení
Výstupní struktura
period — typ a rozsah období
sent — total, delivered, failed, deliveryRate, byDocumentType, byCountry
received — stejná struktura
topRecipients[], topSenders[] — top partneři
failedDocuments — total, deadLetters, retrying, rejected — typ a rozsah obdobia
sent — total, delivered, failed, deliveryRate, byDocumentType, byCountry
received — rovnaka štruktúra
topRecipients[], topSenders[] — zoznamy top partnerov
failedDocuments — total, deadLetters, retrying, rejected
Typické chyby
  • 400 — neplatné období nebo formát data — neplatne obdobie alebo format datumu
Query parametry
Název
Popis
Stav
period
Typ období: month, quarter, year
volitelné
from
Začátek vlastního období (ISO 8601)
volitelné
to
Konec vlastního období (ISO 8601)
volitelné
Výstupní pole
Název
Popis
period
Objekt s type, from, to
sent
Statistiky odeslaných dokumentů
received
Statistiky přijatých dokumentů
deliveryRate
Celková úspěšnost doručení (%)
topRecipients[]
Top příjemci
topSenders[]
Top odesílatelé
failedDocuments
Přehled neúspěšných dokumentů
GET Existující reporting

/api/v1/reporting/submissions

Historie odeslaných EUSR/TSR reportů do OpenPeppol. Filtrování dle typu reportu a statusu.
Účel služby
Vrátí seznam generovaných a odeslaných compliance reportů (EUSR — End User Statistics Report, TSR — Transaction Statistics Report). Umožňuje sledovat stav každého reportu.
Kdy volat službu
  • při pravidelné kontrole reporting compliance
  • při řešení neúspěšného submissionu
  • při exportu nebo validaci odeslaného reportu
Stavové hodnoty
PENDING — čeká na odeslání
SUBMITTED — úspěšně odesláno
FAILED — odeslání selhalo
VALIDATED — report byl validován — čaká na odoslanie
SUBMITTED — úspešne odoslaný
FAILED — odoslanie zlyhalo
VALIDATED — report bol validovany
Typické chyby
  • 400 — neplatný filtr — neplatný filter
Query parametry
Název
Popis
Stav
reportType
Typ reportu: EUSR nebo TSR
volitelné
status
Filtr: PENDING, SUBMITTED, FAILED, VALIDATED
volitelné
offset
Offset pro stránkování
volitelné
limit
Počet záznamů
volitelné
Výstupní pole (každá položka)
Název
Popis
id
Identifikátor reportu
reportType
Typ: EUSR nebo TSR
periodStart
Začátek reportovacího období
periodEnd
Konec reportovacího období
reporterId
ID reportéra (AP)
status
Stav reportu
errorMessage
Chybová zpráva při selhání
submittedAt
Čas odeslání
validatedAt
Čas validace
createdAt
Čas vytvoření záznamu
POST Existující webhooky

/api/v1/subscriptions

Vytvoření webhook subscription. Registrace HTTPS endpointu pro notifikace o přijetí dokumentu.
Účel služby
Registruje HTTPS endpoint, na který se budou posílat notifikace o přijetí dokumentů. Notifikační payload obsahuje: eventType, subscriptionId, receivedCount, documentIds[], notifiedAt. Timeouty: připojení 2s, odpověď 2s.
Kdy volat službu
  • při nastavení event-driven integrace
  • v inbound scénářích s okamžitým zpracováním
  • jako alternativa k pollingu přes inbox endpoint
Filtry
Webhook lze filtrovat dle typu dokumentu (documentTypeFilters[]) a odesílatele (senderParticipantFilters[]). Bez filtru se notifikuje o všech přijatých dokumentech.) a odosielateľa (senderParticipantFilters[]). Bez filtra sa notifikuje o všetkých prijatých dokumentoch.
Typické chyby
  • 400 — neplatná URL (musí být https://) — neplatná URL (musí byt https://)
  • 422 — neplatný filtr — nevalidný filter
Vstupní pole
Název
Popis
Stav
name
Název subscription
povinné
description
Popis
volitelné
url
HTTPS callback URL
povinné
active
Zda je subscription aktivní
volitelné
documentTypeFilters
Pole filtrů na typ dokumentu
volitelné
senderParticipantFilters
Pole filtrů na odesílatele
volitelné
Výstupní pole
Název
Popis
subscriptionId
UUID subscription
name
Název
url
Callback URL
active
Zda je aktivní
documentTypeFilters
Nastavené filtry
senderParticipantFilters
Nastavené filtry
createdAt
Čas vytvoření
updatedAt
Čas poslední aktualizace
GET Existující webhooky

/api/v1/subscriptions

Seznam všech webhook subscriptions. Stránkovaný přehled.
Účel služby
Vrátí stránkovaný seznam všech registrovaných webhook subscriptions pro daný účet.
Kdy volat službu
  • při zobrazení správcovské obrazovky webhooků
  • při auditu nastavení notifikací
Typické chyby
  • 401 — neplatný token — neplatný token
GET Existující webhooky

/api/v1/subscriptions/{subscriptionId}

Detail jedné webhook subscription.
Účel služby
Vrátí kompletní detail subscription včetně filtrů, statusu a časových údajů.
Typické chyby
  • 404 — subscription neexistuje — subscription neexistuje
PUT Existující webhooky

/api/v1/subscriptions/{subscriptionId}

Aktualizace webhook subscription (full replace). Nahradí kompletní objekt subscription.
Účel služby
Kompletní náhrada subscription. Používá se při změně URL, filtrů nebo statusu (active/inactive). Vstupní pole jsou stejná jako při POST vytvoření.
Typické chyby
  • 404 — subscription neexistuje — subscription neexistuje
  • 400 — neplatná URL nebo filtry — neplatná URL alebo filtre
DELETE Existující webhooky

/api/v1/subscriptions/{subscriptionId}

Zmazanie webhook subscription. Nevratná operácia — po zmazani sa notifikácie prestanu posielat.
Účel služby
Trvale smaže webhook subscription. Operace je nevratná. Po smazání se notifikace pro daný endpoint okamžitě zastaví.
Typické chyby
  • 404 — subscription neexistuje — subscription neexistuje
POST Existující webhooky

/api/v1/subscriptions/queue

Vytvoření AMQP queue přístupu. Jedna queue na účet, credentials se zobrazí pouze jednou.
Účel služby
Vytvoří přístup k AMQP queue pro příjem notifikací přes RabbitMQ místo HTTP webhooků. Jedna queue na účet. AMQPS na portu 5671, trvanlivá queue, 7denní buffer zpráv. Credentials se zobrazí jen jednou!
Kdy volat službu
  • když preferujete AMQP před HTTP webhooky
  • při high-throughput integraci
  • když potřebujete garantované doručení zpráv
Bezpečnostní upozornění
Credentials (username, password) se zobrazí pouze jednou v odpovědi. Uložte je bezpečně. Při ztrátě je nutné vytvořit novou queue. v odpovedí. Uložte ich bezpečne. Pri strate je nutne vytvoriť novu queue.
Typické chyby
  • 409 — queue již existuje pro daný účet — queue už existuje pre daný účet
Výstupní pole
Název
Popis
queueId
ID queue
amqpUrl
AMQPS connection URL
host
Hostname serveru
port
Port (5671 pro AMQPS)
vhost
Virtual host
username
Přihlašovací jméno (zobrazí se jen jednou!)
password
Heslo (zobrazí se jen jednou!)
queueName
Název queue
createdAt
Čas vytvoření
securityWarning
Upozornění na jednorázovost credentials
POST Existující SAPI auth

/sapi/v1/auth/token

Získanie access a refresh tokenov. OAuth 2.0 client_credentials grant. JWT RS256.
Účel služby
Autentizace klienta pomocí grant typu client_credentials. Vrátí JWT access token (platnost 15 min) a refresh token (platnost 30 dní). Používá OAuth 2.0 client credentials flow. grant type. Vráti JWT access token (platnosť 15 min) a refresh token (platnosť 30 dní). Token je podpísaný algoritmom RS256.
Kdy volat službu
  • při prvním přihlášení do API
  • když vypršela platnost access tokenu
  • při inicializaci integračního klienta
Bezpečnosť
Po 5 neúspěšných pokusech je účet zamčen (HTTP 423 Locked). Rate limiting: výchozí 200 req/min. Tokeny by měly být bezpečně uloženy a opakovaně používány do vypršení platnosti. je účet zamknutý (HTTP 423 Locked). Rate limiting: 200 req/min default. Tokeny sa majú uchovávať bezpečne a neprenášať v URL parametroch.
Typické chyby
  • 401 — neplatné client_id nebo client_secret — neplatne client_id alebo client_secret
  • 423 — účet zamčen po 5 neúspěšných pokusech — účet zamknutý po 5 neúspešných pokusoch
  • 429 — překročen rate limit — prekročený rate limit
Vstupní pole
Název
Popis
Stav
grant_type
Hodnota: client_credentials
povinné
client_id
Identifikátor klienta
povinné
client_secret
Tajemství klienta
povinné
Výstupní pole
Název
Popis
access_token
JWT access token
token_type
Typ tokenu — Bearer
expires_in
Platnost v sekundách (900 = 15 min)
scope
Rozsah oprávnění
GET Existující SAPI auth

/sapi/v1/auth/token/status

Introspekcia aktuálneho access tokenu. Overenie platnosti a informácie o expiraci.
Účel služby
Ověří platnost aktuálního access tokenu bez nutnosti volat jiný endpoint. Vrátí informace o expiraci a doporučení, zda je třeba token obnovit.
Kdy volat službu
  • před kritickou operací pro ověření platnosti tokenu
  • v health-check logice integračního klienta
Typické chyby
  • 401 — token je neplatný nebo expiroval — token je neplatný alebo expiroval
Výstupní pole
Název
Popis
valid
Zda je token platný (boolean)
token_type
Typ tokenu
client_id
ID klienta
issued_at
Čas vydání tokenu
expires_at
Čas expirace
expires_in_seconds
Zbývá sekund do vypršení
should_refresh
Zda je vhodné token obnovit
refresh_recommended_at
Doporučený čas obnovení
POST Existující SAPI auth

/sapi/v1/auth/renew

Obnovenie tokenov pomocou refresh tokenu. Token rotácia — starý refresh token sa zneplatní.
Účel služby
Obnoví access token pomocí refresh tokenu. Implementuje token rotaci — starý refresh token je okamžitě zneplatněn a vydán nový pár (access + refresh).
Kdy volat službu
  • když access token expiroval nebo se blíží k expiraci
  • v automatickém token refresh cyklu
Token rotácia
Po úspěšném obnovení je starý refresh token okamžitě neplatný. Použití starého refresh tokenu vrátí chybu 401.. Použitie starého refresh tokenu vráti chybu 401.
Typické chyby
  • 401 — neplatný nebo expirovaný refresh token — neplatný alebo expirovaný refresh token
Vstupní pole
Název
Popis
Stav
refresh_token
Aktuální refresh token
povinné
Výstupní pole
Název
Popis
access_token
Nový JWT access token
token_type
Bearer
expires_in
Platnost v sekundách
scope
Rozsah oprávnění
POST Existující SAPI auth

/sapi/v1/auth/revoke

Zneplatnenie aktívneho tokenu. Idempotentna operácia podľa RFC 7009.
Účel služby
Zneplatní aktivní access nebo refresh token. Operace je idempotentní dle RFC 7009 — opakované volání se stejným tokenem vrátí úspěch.
Kdy volat službu
  • při odhlášení klienta
  • při bezpečnostním incidentu
  • při rotaci credentials
Typické chyby
  • 400 — chybějící parametr token — chýbajúci token parameter
Vstupní pole
Název
Popis
Stav
token
Token ke zneplatnění
povinné
Výstupní pole
Název
Popis
revoked
Zda byl token zneplatněn (boolean)
message
Zpráva o výsledku
POST Existující SAPI core

/sapi/v1/document/send

Synchronní odeslání dokumentu do sítě Peppol. Validace + SMP lookup + AS4 delivery v jednom HTTP požadavku.
Účel služby
SYNCHRONNÍ endpoint, který v jednom HTTP volání provede: validaci dokumentu, SMP lookup, AS4 doručení. Na rozdíl od APEX API /documents/send, který je asynchronní, SAPI send čeká na výsledek doručení., ktorý je asynchrónny, SAPI send čaká na výsledok doručenia.
Kdy volat službu
  • když klient potřebuje okamžitou odpověď o doručení
  • při jednoduchých integracích bez webhook/polling
  • při SAPI-SK v1.0 kompatibilní integraci
Povinné hlavičky
Idempotency-Key — unikátní klíč pro idempotentní zpracování (povinné)
X-Peppol-Participant-Id — Peppol ID odesílatele (povinné)

Rate limit: 100 req/min (přísnější než výchozích 200 req/min)
Formáty: UBL, CII — unikátny kľúč pre idempotentne spracovanie (povinné)
X-Peppol-Participant-Id — Peppol ID odosielateľa (povinné)

Rate limit: 100 req/min (prísnejší ako default 200 req/min)
Formáty: UBL, CII
Typické chyby
  • 400 — chybějící Idempotency-Key nebo payload — chýbajúci Idempotency-Key alebo payload
  • 422 — validační chyby — validačné chyby
  • 429 — překročen rate limit (100/min) — prekročený rate limit (100/min)
  • 502 — chyba při AS4 doručení — chyba pri AS4 doručení
Hlavičky a vstup
Název
Popis
Stav
Idempotency-Key
Unikátní klíč (HTTP hlavička)
povinné
X-Peppol-Participant-Id
Peppol ID odesílatele (HTTP hlavička)
povinné
payload
UBL nebo CII dokument
povinné
Výstupní pole
Název
Popis
provider_document_id
ID dokumentu u providera
status
Stav doručení
sent_at
Čas odeslání
GET Existující SAPI inbound

/sapi/v1/document/receive

Seznam přijatých dokumentů s cursor-based stránkováním. Filtr dle statusu (RECEIVED, ACKNOWLEDGED).
Účel služby
Vrátí seznam přijatých dokumentů s cursor-based stránkováním (pageToken + limit). Filtrování dle statusu: RECEIVED (dosud nepotvrzené), ACKNOWLEDGED (potvrzené).
Kdy volat službu
  • při pravidelném pollingu přijatých dokumentů
  • při integraci kde se používá SAPI rozhraní
Stránkování pomocí kurzoru
Používá pageToken místo offset/limit. Odpověď obsahuje next_page_token pro další stránku. total_count uvádí celkový počet záznamů. namiesto offset/limit. Odpoveď obsahuje next_page_token pre ďalšiu stranu. total_count uvadza celkový počet.
Typické chyby
  • 400 — neplatný pageToken nebo filtr — neplatný pageToken alebo filter
  • 401 — neplatný token — neplatný token
Query parametry
Název
Popis
Stav
status
Filtr: RECEIVED nebo ACKNOWLEDGED
volitelné
pageToken
Cursor token pro další stránku
volitelné
limit
Počet záznamů na stránku
volitelné
Výstupní pole
Název
Popis
documents[]
Pole přijatých dokumentů
next_page_token
Token pro další stránku
total_count
Celkový počet záznamů
GET Existující SAPI inbound

/sapi/v1/document/receive/{documentId}

Detail přijatého dokumentu včetně metadat, XML payloadu a checksum.
Účel služby
Vrátí kompletní detail jednoho přijatého dokumentu včetně metadat, XML payloadu, formátu a checksum pro ověření integrity.
Kdy volat službu
  • při stažení konkrétního dokumentu
  • při ověřování integrity payloadu
Typické chyby
  • 404 — dokument neexistuje — dokument neexistuje
Výstupní pole
Název
Popis
provider_document_id
ID dokumentu u providera
status
Stav dokumentu
received_at
Čas přijetí
metadata
Objekt s metadaty
payload
XML obsah dokumentu
payload_format
Formát payloadu (UBL/CII)
checksum
Checksum pro ověření integrity
POST Existující SAPI inbound

/sapi/v1/document/receive/{documentId}/acknowledge

Potvrdenie prijatia dokumentu. Prechod RECEIVED → ACKNOWLEDGED. Idempotentna operácia.
Účel služby
Potvrdí přijetí dokumentu klientem. Status přechází z RECEIVED na ACKNOWLEDGED. Operace je idempotentní — opakované volání nemá vedlejší efekt.
Kdy volat službu
  • po úspěšném zpracování dokumentu v klientském systému
  • po importu faktury do ERP
Typické chyby
  • 404 — dokument neexistuje — dokument neexistuje
Výstupní pole
Název
Popis
provider_document_id
ID dokumentu
status
ACKNOWLEDGED
acknowledged_at
Čas potvrzení
Klíčové pojmy a rozdíly mezi službami
Tato sekce vysvětluje základní pojmy, rozdíly mezi APEX API a SAPI, stavové hodnoty a technický kontext.
APEX API (/api/v1/) je plné enterprise REST API pro hlubokou integraci. Odesílání je asynchronní (QUEUED), k dispozici jsou events, responses, webhooky, reporting a participant lookup.

APEX SAPI (/sapi/v1/) je zjednodušené rozhraní dle SAPI-SK v1.0. Odesílání je synchronní, stránkování je cursor-based. Vhodné pro jednodušší integrace.

Autentizace je sdílená — tokeny získané přes SAPI /auth/token platí pro obě API. (/api/v1/) je plná enterprise REST API pre hlbokú integráciu. Odosielanie je asynchrónne (QUEUED), k dispozícii su events, responses, webhooky, reporting a participant lookup.

APEX SAPI (/sapi/v1/) je zjednodušené rozhranie podľa SAPI-SK v1.0. Odosielanie je synchrónne, stránkovanie je cursor-based. Vhodné pre jednoduchšie integrácie.

Autentifikácia je zdieľaná — tokeny ziskane cez SAPI /auth/token platia pre obe API.
Participant ID je jednoznačný identifikátor v síti Peppol (formát: iso6523-actorid-upis::9950:2024000001). Používá se pro routing a SMP lookup.

DIČ (Daňové identifikační číslo) je business identifikátor. Schéma: 9950 (SK), 9910 (AT), 9919 (DE), 9955 (CZ).

IČO (Identifikační číslo organizace) je 6-8místné číslo z obchodního rejstříku. Endpoint /lookup/ico automaticky překládá IČO → DIČ → Peppol ID. je jednoznačný identifikátor v Peppol sieti (format: iso6523-actorid-upis::9950:2024000001). Používa sa na routing a SMP lookup.

DIC (Daňové identifikačné číslo) je business identifikátor. Schema: 9950 (SK), 9910 (AT), 9919 (DE), 9955 (CZ).

ICO (Identifikačné číslo organizácie) je 6-8 miestne číslo z obchodného registra. Endpoint /lookup/ico automaticky prekladá ICO → DIC → Peppol ID.
QUEUED — dokument přijat ke zpracování (HTTP 202)
PROCESSING — probíhá AS4 odesílání
DELIVERED — úspěšně doručen příjemci
RETRYING — dočasná chyba, opakovaný pokus (exponenciální backoff, max 5 pokusů)
FAILED — trvalé selhání
DEAD_LETTER — přesunuto do DLQ po vyčerpání všech pokusů

Sledujte stav přes /status, detailní časovou osu přes /events a odpovědi protistrany přes /responses. — dokument prijatý na spracovanie (HTTP 202)
PROCESSING — prebieha AS4 odosielanie
DELIVERED — úspešne doručený príjemcovi
RETRYING — dočasná chyba, opakovaný pokus (exponenciálny backoff, max 5 pokusov)
FAILED — trvale zlyhanie
DEAD_LETTER — presunuté do DLQ po vyčerpaní všetkých pokusov

Sledujte stav cez /status, detailnu časovú os cez /events a odpovede protistrany cez /responses.
RECEIVED — dokument přijat přes AS4
VALIDATED — proběhla validace
DELIVERED — potvrzen klientem (acknowledged)
FAILED — chyba při zpracování
REJECTED — odmítnut

SAPI používá zjednodušený model: RECEIVED → ACKNOWLEDGED. — dokument prijatý cez AS4
VALIDATED — prebehla validácia
DELIVERED — potvrdený klientom (acknowledged)
FAILED — chyba pri spracovaní
REJECTED — odmietnutý

SAPI používa zjednodušený model: RECEIVED → ACKNOWLEDGED.
1. XML Schema (XSD) — formální validace XML struktury dle UBL 2.1 schématu
2. EN 16931 Schematron — evropská norma pro elektronickou fakturaci, ověřuje business sémantiku
3. Peppol BIS 3.0 Rules — Peppol-specifická pravidla nad rámec EN 16931

Validate endpoint aplikuje všechny tři vrstvy. Precheck navíc ověřuje účastníka a routovatelnost. — formálna validácia XML štruktúry podľa UBL 2.1 schemy
2. EN 16931 Schematron — európska norma pre elektronickú fakturáciu, overuje business sémantiku
3. Peppol BIS 3.0 Rules — Peppol-špecifické pravidlá nad rámec EN 16931

Validate endpoint aplikuje všetky tri vrstvy. Precheck navyše overuje participanta a routovateľnosť.
MLR (Message Level Response) — potvrzení přijetí zprávy na úrovni AS4 transportu
IMR (Invoice Message Response) — business odpověď na fakturu
ORDER_RESPONSE — odpověď na objednávku
RECEIPT_ADVICE — potvrzení přijetí zboží/služby

Kódy odpovědí: AP (Accepted), RE (Rejected), CA (Conditionally Accepted), UQ (Under Query), IP (In Process) (Message Level Response) — potvrdenie prijatia správy na úrovni AS4 transportu
IMR (Invoice Message Response) — business odpoveď na fakturu
ORDER_RESPONSE — odpoveď na objednávku
RECEIPT_ADVICE — potvrdenie prijatia tovaru/služby

Kódy odpovedí: AP (Accepted), RE (Rejected), CA (Conditionally Accepted), UQ (Under Query), IP (In Process)
Rate limiting: 200 req/min (výchozí), 100 req/min (SAPI send endpoint). Překročení vrátí HTTP 429.

OAuth 2.0: client_credentials grant, JWT RS256 tokeny. Access token 15 min, refresh token 30 dní.

Account lockout: po 5 neúspěšných pokusech o autentizaci je účet zamčen (HTTP 423).

Pouze HTTPS: všechny endpointy vyžadují HTTPS. Webhook callback URL musí být HTTPS. 200 req/min (default), 100 req/min (SAPI send endpoint). Prekročenie vráti HTTP 429.

OAuth 2.0: client_credentials grant, JWT RS256 tokeny. Access token 15 min, refresh token 30 dní.

Account lockout: po 5 neúspešných pokusoch o autentifikáciu je účet zamknutý (HTTP 423).

HTTPS only: všetky endpointy vyžadujú HTTPS. Webhook callback URL musí byt HTTPS.
Asynchronní odesílání používá exponenciální backoff s maximálním počtem 5 pokusů. Po vyčerpání pokusů se dokument přesune do Dead Letter Queue (DLQ) se statusem DEAD_LETTER.

Retry se aplikuje pouze při dočasných chybách (např. network timeout, 503). Při trvalých chybách (např. 400, 422) se dokument okamžitě označí jako FAILED bez opakování. s maximálnym poctom 5 pokusov. Po vyčerpaní pokusov sa dokument presunie do Dead Letter Queue (DLQ) so statusom DEAD_LETTER.

Retry sa aplikuje len pri dočasných chybach (napr. network timeout, 503). Pri trvalych chybach (napr. 400, 422) sa dokument okamžite označí ako FAILED bez opakovania.
SML (Service Metadata Locator) — DNS-based registr, který určuje, v kterém SMP je účastník registrován.
SMP (Service Metadata Publisher) — obsahuje metadata účastníka: podporované typy dokumentů, procesy, AS4 endpoint URL a certifikát.

Participant lookup: DIČ/IČO → Peppol ID → SML DNS query → SMP metadata. Výsledky jsou cachovány lokálně. (Service Metadata Locator) — DNS-based registry, ktorý urcuje, v ktorom SMP je participant registrovany.
SMP (Service Metadata Publisher) — obsahuje metadata participanta: podporovane typy dokumentov, procesy, AS4 endpoint URL a certifikát.

Participant lookup: DIC/ICO → Peppol ID → SML DNS query → SMP metadata. Výsledky su cachované lokalne.
Autentizace

OAuth 2.0 — Bearer Token Authentication. Tokeny získate cez SAPI auth endpoint alebo ASOL IAM server.

Autentizační flow
Kompletní postup od získání tokenu po jeho obnovení a zneplatnění.

1. Token

2. Použití

3. Obnovení

4. Revoke

Důležité: Access token platí 15 minut. Refresh token platí 30 dní. Po obnovení se starý refresh token okamžitě zneplatní (token rotace). Po 5 neúspěšných pokusech se účet zamkne. Access token plati 15 minút. Refresh token plati 30 dní. Po obnovení sa starý refresh token okamžite zneplatní (token rotácia). Po 5 neúspešných pokusoch sa účet zamkne.
Příklad autentizace
Token request a použití
1. Získání tokenu
POST /sapi/v1/auth/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&client_id=your-client-id
&client_secret=your-client-secret
Response
{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 900,
  "scope": "peppol:send peppol:receive"
}
2. Použití tokenu v požadavku
GET /api/v1/documents/inbox
Authorization: Bearer eyJhbGciOiJSUzI1NiIs...
Accept: application/json

Příklady

Request / Response příklady

POST /api/v1/documents/send
Odeslání dokumentu
Request
{
  "senderParticipantId": "iso6523-actorid-upis::9950:2024000001",
  "receiverParticipantId": "iso6523-actorid-upis::9950:2024000002",
  "documentTypeId": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1",
  "processId": "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "ublDocument": "PD94bWwgdmVyc2lvbj0iMS4wIi..."
}
Response (HTTP 202)
{
  "documentId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "status": "QUEUED",
  "submittedAt": "2025-01-15T14:30:00Z"
}
POST /api/v1/documents/precheck
Precheck před odesláním
Request
{
  "senderParticipantId": "iso6523-actorid-upis::9950:2024000001",
  "receiverParticipantId": "iso6523-actorid-upis::9950:2024000002",
  "documentTypeId": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##...",
  "processId": "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "ublDocument": "PD94bWwgdmVyc2lvbj0iMS4wIi..."
}
Response
{
  "networkReady": true,
  "valid": true,
  "participantExists": true,
  "canSend": true,
  "errors": [],
  "warnings": [],
  "checkedAt": "2025-01-15T14:29:00Z"
}
POST /api/v1/documents/validate
Validace dokumentu
Response (validny dokument)
{
  "valid": true,
  "schemaValid": true,
  "schematronValid": true,
  "businessRulesValid": true,
  "errors": [],
  "warnings": [],
  "documentType": "Invoice",
  "documentId": "INV-2025-001",
  "issueDate": "2025-01-15",
  "supplierName": "Dodavatel s.r.o.",
  "customerName": "Odberatel a.s.",
  "totalAmount": 1200.00,
  "currencyCode": "EUR"
}
GET /api/v1/participants/lookup/dic
Participant lookup
Response
{
  "source": "SMP",
  "participantId": "abc123",
  "peppolId": "iso6523-actorid-upis::9950:2024000002",
  "organizationName": "Partner s.r.o.",
  "countryCode": "SK",
  "endpointUrl": "https://ap.partner.sk/as4",
  "smpUrl": "https://smp.example.com/...",
  "enabled": true,
  "certificate": {
    "subject": "CN=Partner s.r.o.",
    "issuer": "CN=Peppol CA",
    "serial": "ABC123DEF456",
    "fingerprint": "sha256:...",
    "notBefore": "2024-01-01T00:00:00Z",
    "notAfter": "2026-01-01T00:00:00Z",
    "expired": false
  },
  "smpMetadataUpdatedAt": "2025-01-10T08:00:00Z"
}
GET /api/v1/documents/{id}/events
Document events
Response
[
  {
    "id": "evt-001",
    "messageId": "msg-f47ac10b",
    "eventType": "LIFECYCLE",
    "eventCode": "DOCUMENT_QUEUED",
    "eventMessage": "Dokument zaradený do spracovania",
    "technicalDetails": null,
    "stacktrace": null,
    "createdAt": "2025-01-15T14:30:00Z"
  },
  {
    "id": "evt-002",
    "messageId": "msg-f47ac10b",
    "eventType": "AS4_TRANSPORT",
    "eventCode": "AS4_SENT",
    "eventMessage": "Dokument úspešne odoslaný cez AS4",
    "technicalDetails": "MessageId: msg-f47ac10b",
    "stacktrace": null,
    "createdAt": "2025-01-15T14:30:05Z"
  }
]
POST /api/v1/subscriptions
Webhook subscription
Request
{
  "name": "ERP Invoice Notifications",
  "description": "Notifikácie o novych fakturach",
  "url": "https://erp.example.com/webhooks/peppol",
  "active": true,
  "documentTypeFilters": [
    "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##..."
  ],
  "senderParticipantFilters": []
}
Webhook notification payload
{
  "eventType": "DOCUMENT_RECEIVED",
  "subscriptionId": "sub-abc123",
  "receivedCount": 3,
  "documentIds": [
    "doc-001", "doc-002", "doc-003"
  ],
  "notifiedAt": "2025-01-15T14:35:00Z"
}