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

APEX AP Developer Portal — kompletná dokumentácia API a SAPI endpointov.

Technická referencia pre všetkých 25+ endpointov implementovaných v APEX AP Service. Obsahuje APEX API pre hlbokú integráciu, SAPI pre zjednodušený prístup podľa SAPI-SK v1.0, autentifikáciu, validáciu, odosielanie, inbox, webhooky, reporting a participant lookup.

APEX API
Documents, Inbox, Events
Plná REST API pre odosielanie, príjem, validáciu a sledovanie dokumentov.
SAPI
Zjednodušené rozhranie
Synchrónne odosielanie, príjem a autentifikácia podľa SAPI-SK špecifikácie.
Participants
Lookup DIC / ICO
Vyhľadávanie participantov podľa DIC alebo ICO cez SMP/SML.
Webhooky & Reporting
Notifikácie a EUSR/TSR
Webhook subscriptions, AMQP queue a reporting štatistiky.
Navigácia portálom
Štruktúra dokumentácie
Všetky endpointy su implementované a dostupné. Dokumentácia odrazuje aktuálny stav zdrojového kódu a Swagger anotácií.
Integračné cesty

Dve cesty, ako sa napojiť na APEX

APEX Access Point ponúka dve rovnocenné spôsoby integrácie. Výber závisí od toho, kde beží váš systém a aký štýl komunikácie potrebujete. Obe cesty pokrývajú plný Peppol tok (odosielanie aj prijímanie) a môžete ich aj kombinovať.

A
Cesta A — priama REST integrácia

APEX REST API (SAPI)

REST OAuth 2.0 JSON UBL 2.1 Webhooky
👤 Pre koho
Vývojári ERP, účtovných systémov, e-shopov a portálov, ktorí si chcú postaviť vlastného klienta a mať plnú kontrolu nad tokom.
⚙️ Ako to funguje
HTTPS volania na apex.asseco-peppol.com s OAuth 2.0 tokenom. JSON payload, UBL XML v Base64. Synchronné request/response + status polling alebo webhooky.
✅ Prečo si vybrať túto cestu
  • Žiadna dodatočná infraštruktúra — stačí HTTPS klient
  • Plná kontrola nad retry logikou, timeoutami a chybovými stavmi
  • On-demand synchrónne odosielanie (napr. z user-triggered akcie v UI)
  • Jednoduché testovanie cez Postman / curl / Swagger UI
Otvoriť API Reference
B
Cesta B — managed messaging

QHUB (RabbitMQ message bus)

AMQPS RabbitMQ async DLQ Audit
👤 Pre koho
Systémy bežiace v ASOL Cloud a externé ERP, ktoré už používajú messaging vrstvu (Java/Spring AMQP, .NET MassTransit, pika). Ideálne pre enterprise prevádzky a automatizované batch toky.
⚙️ Ako to funguje
AMQPS pripojenie k RabbitMQ v ASOL Cloud. Odosielate SynchronizationMessage s entitou PeppolDocument, QHUB ju doručí do APEX-u a prípadné odpovede pošle späť na vašu queue.
✅ Prečo si vybrať túto cestu
  • Retry + Dead-Letter Queue out-of-the-box pri dočasných výpadkoch
  • Automatický audit trail každej správy v transakčnej tabuľke
  • Asynchrónny tok — váš systém nemusí byť dostupný non-stop
  • Jednotná správa kredencií pre viacero ASOL produktov
Otvoriť Integračnú príručku
💡
Tip: Obe cesty môžete skombinovať. Napríklad: odosielanie cez REST API (synchrónne, z UI akcie) a prijímanie cez QHUB (asynchrónne, so spoľahlivým retry).
Overview

Pre koho je táto dokumentácia

APEX AP poskytuje dve API skupiny: APEX API (/api/v1/) pre hlbokú enterprise integráciu a APEX SAPI (/sapi/v1/) pre zjednodušené rozhranie podľa SAPI-SK v1.0 špecifikácie.

Integrator ERP
Potrebuje vedieť ako autentifikovať, validovať dokument, odoslať ho a sledovať stav doručovania. Používa prevažne APEX API.
Kľúčové sekcie: Quickstart, Document Management, Participants, Status & Events.
Backend vývojár
Zaujíma ho OAuth 2.0 flow, retry stratégia, webhook integrácia, AMQP queue prístup a idempotencia operácií.
Kľúčové sekcie: Autentifikácia, Webhooky, SAPI, Rate limiting.
Support / Operations
Potrebuje rýchlo zistiť stav dokumentu, prečítať udalosti (events), sledovať reporting submissions a riešiť problémy.
Kľúčové sekcie: Events, Responses, Reporting, Inbox.
Quickstart

4 kroky k prvej integrácii

Technická cesta od prvého requestu po kompletnú integráciu: autentifikácia, validácia, odoslanie a sledovanie stavu.

01
Autentifikácia
Zavolajte POST /sapi/v1/auth/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ýsledok: autorizovaný prístup ku všetkým API endpointom.
02
Validácia / Precheck
Pred odoslaním zavolajte POST /api/v1/documents/validate alebo /precheck. Validate overí XML, Schematron a business rules. Precheck navyše overí existenciu participanta a routovateľnosť.
Výsledok: menej runtime chýb a menej support incidentov.
03
Odosli dokument
Zavolajte POST /api/v1/documents/send. API vráti HTTP 202 so statusom QUEUED. Dokument sa spracuje asynchrónne — QUEUED neznamená finálne doručenie.
Výsledok: dokument zaradený do processing pipeline.
04
Sleduj stav a odpovede
Pollujte GET /api/v1/documents/{id}/status pre aktuálny stav. Použite /events pre časovú os a /responses pre odpovede protistrany (MLR, IMR).
Výsledok: kompletný prehľad o doručení dokumentu.
Reference

REST API Reference

Kompletná dokumentácia všetkých endpointov implementovaných v APEX AP Service. Každý endpoint obsahuje účel, vstupy, vystupy, typické chyby a príklady.

POST Existujúce core

/api/v1/documents/send

Zaradenie business dokumentu do asynchrónneho odosielacieho pipeline. Vráti HTTP 202 so statusom QUEUED.
Účel služby
Prijme UBL dokument a zaradi ho do asynchrónneho spracovania. Odpoveď 202 s QUEUED statusom znamena, že dokument bol prijatý na spracovanie, nie že bol doručený. Životný cyklus: QUEUED → PROCESSING → DELIVERED / RETRYING → DEAD_LETTER.
Kedy službu volať
  • po úspešnom prechecku alebo validaci
  • pri automatizovanom batch odosielani
  • pri explicitnom požiadavku pouzivatela na odoslanie faktúry
Asynchrónne správanie
Dokument prechádza stavmi: QUEUED → PROCESSING → DELIVERED alebo RETRYING → DEAD_LETTER. Retry používa exponenciálny backoff, maximálne 5 pokusov. Sledujte stav cez /status endpoint.
Typické chyby
  • 400 — chýbajúci povinny udaj alebo nevalidný payload
  • 401 — neplatný alebo expirovaný token
  • 422 — nevalidný UBL dokument
Vstupné polia
Názov
Popis
Stav
senderParticipantId
Peppol ID odosielateľa
povinné
receiverParticipantId
Peppol ID príjemcu
povinné
documentTypeId
Peppol typ dokumentu
povinné
processId
Peppol identifikácia procesu
povinné
ublDocument
UBL XML dokument v Base64 kodovani
povinné
Výstupné polia
Názov
Popis
documentId
UUID identifikátor odoslaného dokumentu
status
Počiatočný stav — QUEUED
submittedAt
Čas prijatia požiadavky (ISO 8601)
GET Existujúce core

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

Zistenie aktuálneho stavu doručenia odoslaného dokumentu. Používajte na polling.
Účel služby
Jednoduchy endpoint pre zistenie aktuálneho statusu dokumentu. Možné hodnoty: QUEUED, PROCESSING, DELIVERED, RETRYING, FAILED, DEAD_LETTER.
Kedy službu volať
  • pri polling modeli po odoslani dokumentu
  • v zozname dokumentov pre zobrazenie stavu
  • pri rozhodovaní, či treba riešiť chybu
Statusové hodnoty
QUEUED — č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
  • 401 — neplatný token
Parametre
Názov
Popis
Stav
documentId
UUID dokumentu (path parameter)
povinné
Výstupné polia
Názov
Popis
documentId
UUID identifikátor dokumentu
status
Aktuálny stav doručenia
submittedAt
Čas pôvodného odoslania
POST Existujúce core

/api/v1/documents/validate

Validácia UBL dokumentu bez odoslania. Tri vrstvy: XML Schema, EN 16931 Schematron, Peppol BIS 3.0 pravidlá.
Účel služby
Umoznuje overit syntakticku a pravidlovú správnosť UBL dokumentu ešte pred odoslaním do Peppol siete. Podporuje Invoice a Credit Note. Tri validačné vrstvy: XML Schema → EN 16931 Schematron → Peppol BIS 3.0 business rules.
Kedy službu volať
  • pri generovaní faktúry ešte pred submitom
  • pri testovani integrácie a ladeni XML šablón
  • pri validaci batch importov alebo migráciách
Validačné vrstvy
1. XML Schema — 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 — nevalidné XML alebo nesprávny payload
  • 422 — porušenie validačných pravidiel
Vstupné polia
Názov
Popis
Stav
ublDocument
UBL XML dokument (string)
povinné
documentTypeId
Peppol typ dokumentu
voliteľné
Výstupné polia
Názov
Popis
valid
Celkový výsledok validácie (boolean)
schemaValid
Výsledok XSD validácie
schematronValid
Výsledok EN 16931 validácie
businessRulesValid
Výsledok Peppol BIS 3.0 pravidiel
errors[]
Pole chýb s detailom
warnings[]
Pole upozorneni
documentType
Rozpoznany typ dokumentu
documentId
ID z dokumentu
issueDate
Dátum vystavenia
supplierName
Názov dodávateľa
customerName
Názov odberateľa
totalAmount
Celková suma
currencyCode
Kod meny
POST Existujúce core

/api/v1/documents/precheck

Kombinované overenie dokumentu, existencie participanta a routovateľnosti pred odoslaním. Tri kontroly v jednom volani.
Účel služby
Spaja tri kontroly: 1) validácia dokumentu, 2) overenie existencie participanta cez SMP/SML, 3) overenie routovateľnosti (podpora doctype). Výsledok networkReady = valid AND participantExists AND canSend.
Kedy službu volať
  • tesne pred odoslaním dokumentu do Peppol siete
  • pri implementacii business tlačidla "Odoslať"
  • pri hromadnom odosielani na odfiltrovanie problematických dokumentov
Kategórie chýb
VALIDATION — 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 — chýbajúci povinny udaj
  • 422 — validačné chyby v dokumente
  • 404 — participant nenájdený v SMP/SML
Vstupné polia
Názov
Popis
Stav
senderParticipantId
Peppol ID odosielateľa
povinné
receiverParticipantId
Peppol ID príjemcu
povinné
documentTypeId
Peppol typ dokumentu
povinné
processId
Peppol identifikácia procesu
povinné
ublDocument
UBL XML dokument (Base64)
povinné
Výstupné polia
Názov
Popis
networkReady
Či je dokument pripravený na odoslanie (valid AND participantExists AND canSend)
valid
Celkový výsledok validácie
participantExists
Či prijemca existuje v SMP/SML
canSend
Či prijemca podporuje daný doctype
errors[]
Pole chýb s kategoriou (VALIDATION/PARTICIPANT/ROUTING)
warnings[]
Pole varovani (napr. CERT_EXPIRING_SOON)
checkedAt
Čas vykonania kontrol
GET Existujúce inbound

/api/v1/documents/inbox

Zoznam prijatých dokumentov. Stránkované (offset/limit), zoradené podľa receivedAt DESC.
Účel služby
Inbox sluzi ako integracna plocha pre klienta, ktorý chce prijaté dokumenty čítať pull modelom. Podporuje filtrovanie podľa statusu: RECEIVED, VALIDATED, DELIVERED, FAILED, REJECTED.
Kedy službu volať
  • pri integracii prijatých faktur do ERP
  • keď klient preferuje polling namiesto webhookov
  • pri dohľadávaní konkrétneho inbound dokumentu
Stránkovanie
Používa offset/limit model. Default limit je 20, maximum 100. Odpoveď obsahuje total pre celkový počet záznamov.
Typické chyby
  • 400 — neplatný filter alebo parameter
  • 401 — neplatný token
Query parametre
Názov
Popis
Stav
status
Filter podľa statusu (RECEIVED, VALIDATED, DELIVERED, FAILED, REJECTED)
voliteľné
offset
Offset pre stránkovanie (default 0)
voliteľné
limit
Počet záznamov (default 20, max 100)
voliteľné
Výstupné polia
Názov
Popis
items[]
Pole prijatých dokumentov
total
Celkový počet záznamov
offset
Aktuálny offset
limit
Aktuálny limit
GET Existujúce inbound

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

Detail prijateho dokumentu vrátane kompletného UBL XML payloadu.
Účel služby
Vráti kompletný prijatý dokument vrátane všetkých metadát a UBL XML payloadu pre spracovanie v ERP systeme.
Kedy službu volať
  • pri stiahnutí konkrétneho dokumentu do ERP
  • pri zobrazení detailu faktúry
Výstupné polia
documentId, senderParticipantId, receiverParticipantId, documentTypeId, processId, receivedAt, status, ublDocument (XML payload)
Typické chyby
  • 404 — dokument neexistuje
  • 401 — neplatný token
POST Existujúce inbound

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

Potvrdenie prijatia dokumentu. Nastavi status na DELIVERED. Idempotentna operácia, vráti 204 No Content.
Účel služby
Po spracovaní prijateho dokumentu v ERP systeme zavolajte tento endpoint na potvrdenie prijatia. Dokument prechádza do stavu DELIVERED. Operácia je idempotentna — opakované volanie nemá vedľajší efekt.
Kedy službu volať
  • po úspešnom spracovaní dokumentu v ERP
  • po importovaní faktúry do účtovného systemu
Odpoveď
HTTP 204 No Content — úspešne potvrdenie. Ziadne telo odpovede.
Typické chyby
  • 404 — dokument neexistuje
  • 409 — dokument už bol potvrdený (conflict)
GET Existujúce ops

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

Kompletný chronologicky zoznam udalosti (events) pre odosielany aj prijatý dokument.
Účel služby
Vráti všetky udalosti dokumentu v chronologickom poradi. Kategórie udalosti: Lifecycle, Validation, SMP lookup, AS4 transport, Storage, Retry/queue, TDD/C5. Každý event obsahuje technický detail a časovú pečiatku.
Kedy službu volať
  • pri reklamácii doručenia — casova os čo sa stalo
  • pri detailnej analýze spravania dokumentu
  • pri exporte auditnej stopy
Kategórie udalosti
Lifecycle — 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
Parametre
Názov
Popis
Stav
documentId
UUID dokumentu (path parameter)
povinné
Výstupné polia (každý event)
Názov
Popis
id
Unikátny identifikátor eventu
messageId
ID správy v kontexte AS4
eventType
Typ udalosti (kategoria)
eventCode
Kod udalosti
eventMessage
Čitateľný popis udalosti
technicalDetails
Technické detaily
stacktrace
Stack trace pri chybe
createdAt
Čas vzniku udalosti
GET Existujúce ops

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

Odpovede na aplikačnej úrovni prijaté od protistrany (MLR, IMR, ORDER_RESPONSE, RECEIPT_ADVICE).
Účel služby
Vráti zoznam odpovedí prijatých k odoslanemu dokumentu. Typy odpovedí: MLR (Message Level Response), IMR (Invoice Message Response), ORDER_RESPONSE, RECEIPT_ADVICE.
Kódy odpovedí
AP — Accepted (akceptovane)
RE — Rejected (zamietnuté)
CA — Conditionally Accepted
UQ — Under Query (v riešení)
IP — In Process (spracováva sa)
Kedy službu volať
  • pri reklamácii doručenia — zistenie či prisla odpoveď
  • pri audite a dokazovaní vymeny dokumentu
  • pri riešení sporu o doručenie
Typické chyby
  • 404 — dokument neexistuje alebo nemá odpovede
Parametre
Názov
Popis
Stav
documentId
UUID dokumentu (path parameter)
povinné
Výstupné polia (kazda odpoveď)
Názov
Popis
responseId
Unikátny identifikátor odpovede
responseType
Typ odpovede (MLR/IMR/ORDER_RESPONSE/RECEIPT_ADVICE)
responseCode
Kod odpovede (AP/RE/CA/UQ/IP)
summary
Sumár odpovede
respondedAt
Čas prijatia odpovede
issues[]
Pole problemov z odpovede
GET Existujúce 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
Umoznuje vyhladat Peppol participanta podľa DIC. Najprv hlada v lokálnej DB, pri cache miss dotazuje SMP/SML. Schema hodnoty: 9950 (SK), 9910 (AT), 9919 (DE), 9955 (CZ).
Kedy službu volať
  • pri onboarding formulari alebo výbere obchodného partnera
  • pred capability checkom v precheck flow
  • pri automatickom dopĺňaní partnera v ERP
Rozlišovacia logika
1. 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 — chýbajúci parameter schema alebo dic
  • 404 — participant neexistuje
  • 503 — SMP/SML dočasné nedostupný
Query parametre
Názov
Popis
Stav
schema
Schema identifikátora (napr. 9950 pre SK)
povinné
dic
DIC hodnota (napr. 2024000001)
povinné
Výstupné polia
Názov
Popis
source
Zdroj dat — LOCAL alebo SMP
participantId
Interny ID participanta
peppolId
Peppol Participant ID
organizationName
Názov organizácie
countryCode
Kod krajiny (SK, AT, DE, CZ)
endpointUrl
AS4 endpoint URL
smpUrl
URL SMP záznamu
enabled
Či je participant aktívny
certificate
Objekt s certifikátom: subject, issuer, serial, fingerprint, notBefore, notAfter, expired
smpMetadataUpdatedAt
Posledna aktualizácia SMP metadát
GET Existujúce participants

/api/v1/participants/lookup/ico

Vyhľadanie participanta podľa ICO (číslo v obchodnom registri). Rezolvuje ICO → DIC → Peppol ID.
Účel služby
Umoznuje vyhladat Peppol participanta podľa ICO. Rozlišovacia logika: ICO → Register účtovných zavierok / Finstat → DIC → Peppol ID → lokálna DB → SMP/SML.
Kedy službu volať
  • keď poznáme len ICO obchodného partnera
  • pri integrácii s ERP, kde sa pracuje s ICO
  • pri automatickom dopĺňaní Peppol identity
Rozlišovacia logika
ICO (6-8 čísiel) → vyhľadanie v Registri účtovných zavierok / Finstat → získanie DIC → rozlíšenie Peppol ID → lokálna DB → SMP/SML lookup.
Typické chyby
  • 400 — neplatný format ICO
  • 422 — ICO sa nepodarilo preložiť na DIC
  • 404 — participant neexistuje
Query parametre
Názov
Popis
Stav
ico
ICO (6-8 čísiel)
povinné
schema
Schema identifikátora (default 9950)
voliteľné
Výstupné polia
Názov
Popis
source
Zdroj dat — LOCAL alebo SMP
participantId
Interny ID participanta
peppolId
Peppol Participant ID
organizationName
Názov organizácie
countryCode
Kod krajiny
endpointUrl
AS4 endpoint URL
certificate
Certifikát participanta
GET Existujúce reporting

/api/v1/reporting/statistics

Agregované štatistiky dokumentov za zvolené obdobie. Odoslané, prijaté, úspešnosť doručenia, top príjemcovia a odosielatelia.
Účel služby
Poskytuje agregovaný prehľad o dokumentovej prevádzke. Obdobie: month, quarter, year alebo custom (from/to). Obsahuje štatistiky pre odoslané aj prijaté dokumenty, delivery rate a top zoznamy.
Kedy službu volať
  • pri generovaní dashboardu prevádzky
  • pri pravidelnom reportovaní vedeniu
  • pri analýze trendov a úspešnosti doručenia
Výstupná štruktúra
period — 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 — neplatne obdobie alebo format datumu
Query parametre
Názov
Popis
Stav
period
Typ obdobia: month, quarter, year
voliteľné
from
Začiatok custom obdobia (ISO 8601)
voliteľné
to
Koniec custom obdobia (ISO 8601)
voliteľné
Výstupné polia
Názov
Popis
period
Objekt s type, from, to
sent
Štatistiky odoslaných dokumentov
received
Štatistiky prijatých dokumentov
deliveryRate
Celková úspešnosť doručenia (%)
topRecipients[]
Top príjemcovia
topSenders[]
Top odosielatelia
failedDocuments
Prehľad zlyhaných dokumentov
GET Existujúce reporting

/api/v1/reporting/submissions

Historia odoslaných EUSR/TSR reportov do OpenPeppol. Filtrovanie podľa typu reportu a statusu.
Účel služby
Vráti zoznam generovaných a odoslaných compliance reportov (EUSR — End User Statistics Report, TSR — Transaction Statistics Report). Umoznuje sledovať stav každého reportu.
Kedy službu volať
  • pri pravidelnej kontrole reporting compliance
  • pri riešení neúspešného submissionu
  • pri exporte alebo validaci odoslaného reportu
Statusové hodnoty
PENDING — čaká na odoslanie
SUBMITTED — úspešne odoslaný
FAILED — odoslanie zlyhalo
VALIDATED — report bol validovany
Typické chyby
  • 400 — neplatný filter
Query parametre
Názov
Popis
Stav
reportType
Typ reportu: EUSR alebo TSR
voliteľné
status
Filter: PENDING, SUBMITTED, FAILED, VALIDATED
voliteľné
offset
Offset pre stránkovanie
voliteľné
limit
Počet záznamov
voliteľné
Výstupné polia (každý item)
Názov
Popis
id
Identifikátor reportu
reportType
Typ: EUSR alebo TSR
periodStart
Začiatok reportovacieho obdobia
periodEnd
Koniec reportovacieho obdobia
reporterId
ID reportéra (AP)
status
Stav reportu
errorMessage
Chybová správa pri zlyhaní
submittedAt
Čas odoslania
validatedAt
Čas validácie
createdAt
Čas vytvorenia záznamu
POST Existujúce webhooky

/api/v1/subscriptions

Vytvorenie webhook subscription. Registrácia HTTPS endpointu pre notifikácie o prijati dokumentu.
Účel služby
Registruje HTTPS endpoint, na ktorý sa budú posielat notifikácie o prijati dokumentov. Notifikačný payload obsahuje: eventType, subscriptionId, receivedCount, documentIds[], notifiedAt. Timeouty: pripojenie 2s, odpoveď 2s.
Kedy službu volať
  • pri nastavení event-driven integrácie
  • pri inbound scenaroch s okamzitym spracovaním
  • ako alternativa k pollingu cez inbox endpoint
Filtre
Webhook možno filtrovaný podľa typu dokumentu (documentTypeFilters[]) a odosielateľa (senderParticipantFilters[]). Bez filtra sa notifikuje o všetkých prijatých dokumentoch.
Typické chyby
  • 400 — neplatná URL (musí byt https://)
  • 422 — nevalidný filter
Vstupné polia
Názov
Popis
Stav
name
Názov subscription
povinné
description
Popis
voliteľné
url
HTTPS callback URL
povinné
active
Či je subscription aktívna
voliteľné
documentTypeFilters
Pole filtrov na typ dokumentu
voliteľné
senderParticipantFilters
Pole filtrov na odosielateľa
voliteľné
Výstupné polia
Názov
Popis
subscriptionId
UUID subscription
name
Názov
url
Callback URL
active
Či je aktívna
documentTypeFilters
Nastavené filtre
senderParticipantFilters
Nastavené filtre
createdAt
Čas vytvorenia
updatedAt
Čas poslednej aktualizácie
GET Existujúce webhooky

/api/v1/subscriptions

Zoznam všetkých webhook subscriptions. Stránkovaný prehľad.
Účel služby
Vráti stránkovaný zoznam všetkých registrovaných webhook subscriptions pre daný účet.
Kedy službu volať
  • pri zobrazení správcovskej obrazovky webhookov
  • pri audite nastavení notifikácií
Typické chyby
  • 401 — neplatný token
GET Existujúce webhooky

/api/v1/subscriptions/{subscriptionId}

Detail jednej webhook subscription.
Účel služby
Vráti kompletný detail subscription vrátane filtrov, statusu a časových udajov.
Typické chyby
  • 404 — subscription neexistuje
PUT Existujúce webhooky

/api/v1/subscriptions/{subscriptionId}

Aktualizácia webhook subscription (full replace). Nahradí kompletný objekt subscription.
Účel služby
Kompletná náhrada subscription. Používa sa pri zmene URL, filtrov alebo statusu (active/inactive). Vstupné polia su rovnaké ako pri POST vytvoreni.
Typické chyby
  • 404 — subscription neexistuje
  • 400 — neplatná URL alebo filtre
DELETE Existujúce webhooky

/api/v1/subscriptions/{subscriptionId}

Zmazanie webhook subscription. Nevratná operácia — po zmazani sa notifikácie prestanu posielat.
Účel služby
Trvale zmaže webhook subscription. Operácia je nevratná. Po zmazani sa notifikácie pre daný endpoint okamžite zastavia.
Typické chyby
  • 404 — subscription neexistuje
POST Existujúce webhooky

/api/v1/subscriptions/queue

Vytvorenie AMQP queue prístupu. Jedna queue na účet, credentials sa zobrazia iba raz.
Účel služby
Vytvori prístup k AMQP queue pre prijímanie notifikácií cez RabbitMQ namiesto HTTP webhook. Jedna queue na účet. AMQPS na porte 5671, durable queue, 7-dnovy message buffer. Credentials sa zobrazia iba raz!
Kedy službu volať
  • keď preferujete AMQP pred HTTP webhookmi
  • pri high-throughput integrácii
  • keď potrebujete garantované doručenie sprav
Bezpečnostné upozornenie
Credentials (username, password) sa zobrazia iba raz v odpovedí. Uložte ich bezpečne. Pri strate je nutne vytvoriť novu queue.
Typické chyby
  • 409 — queue už existuje pre daný účet
Výstupné polia
Názov
Popis
queueId
ID queue
amqpUrl
AMQPS connection URL
host
Hostname servera
port
Port (5671 pre AMQPS)
vhost
Virtual host
username
Prihlasovacie meno (jednorazové!)
password
Heslo (jednorazové!)
queueName
Názov queue
createdAt
Čas vytvorenia
securityWarning
Upozornenie o jednorazovosti credentials
POST Existujúce SAPI auth

/sapi/v1/auth/token

Získanie access a refresh tokenov. OAuth 2.0 client_credentials grant. JWT RS256.
Účel služby
Autentifikácia klienta pomocou client_credentials grant type. Vráti JWT access token (platnosť 15 min) a refresh token (platnosť 30 dní). Token je podpísaný algoritmom RS256.
Kedy službu volať
  • pri prvom prihlásení do API
  • keď vypršala platnosť access tokenu
  • pri inicializácii integračného klienta
Bezpečnosť
Po 5 neúspešných pokusoch 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 — neplatne client_id alebo client_secret
  • 423 — účet zamknutý po 5 neúspešných pokusoch
  • 429 — prekročený rate limit
Vstupné polia
Názov
Popis
Stav
grant_type
Hodnota: client_credentials
povinné
client_id
Identifikátor klienta
povinné
client_secret
Tajomstvo klienta
povinné
Výstupné polia
Názov
Popis
access_token
JWT access token
token_type
Typ tokenu — Bearer
expires_in
Platnosť v sekundach (900 = 15 min)
scope
Rozsah opravneni
GET Existujúce SAPI auth

/sapi/v1/auth/token/status

Introspekcia aktuálneho access tokenu. Overenie platnosti a informácie o expiraci.
Účel služby
Overí platnosť aktuálneho access tokenu bez nutnosti volať iny endpoint. Vráti informácie o expiraci a odporúčanie, či je čas obnoviť token.
Kedy službu volať
  • pred kritickou operaciou na overenie platnosti tokenu
  • v health-check logike integračného klienta
Typické chyby
  • 401 — token je neplatný alebo expiroval
Výstupné polia
Názov
Popis
valid
Či je token platny (boolean)
token_type
Typ tokenu
client_id
ID klienta
issued_at
Čas vydania tokenu
expires_at
Čas expirácie
expires_in_seconds
Zostáva sekund do expirácie
should_refresh
Či je vhodné token obnoviť
refresh_recommended_at
Odporúčaný čas na obnovenie
POST Existujúce SAPI auth

/sapi/v1/auth/renew

Obnovenie tokenov pomocou refresh tokenu. Token rotácia — starý refresh token sa zneplatní.
Účel služby
Obnovi access token pomocou refresh tokenu. Implementuje token rotáciu — starý refresh token sa okamžite zneplatní a vyda sa nový par (access + refresh).
Kedy službu volať
  • keď access token expiroval alebo sa blíži k expiraci
  • v automatickom token refresh cykle
Token rotácia
Po úspešnom obnovení je starý refresh token okamžite neplatný. Použitie starého refresh tokenu vráti chybu 401.
Typické chyby
  • 401 — neplatný alebo expirovaný refresh token
Vstupné polia
Názov
Popis
Stav
refresh_token
Aktuálny refresh token
povinné
Výstupné polia
Názov
Popis
access_token
Nový JWT access token
token_type
Bearer
expires_in
Platnosť v sekundach
scope
Rozsah opravneni
POST Existujúce SAPI auth

/sapi/v1/auth/revoke

Zneplatnenie aktívneho tokenu. Idempotentna operácia podľa RFC 7009.
Účel služby
Zneplatní aktívny access alebo refresh token. Operácia je idempotentna podľa RFC 7009 — opakované volanie s rovnakým tokenom neprodukuje chybu.
Kedy službu volať
  • pri odhlásení klienta
  • pri bezpečnostnom incidente
  • pri rotaci credentials
Typické chyby
  • 400 — chýbajúci token parameter
Vstupné polia
Názov
Popis
Stav
token
Token na zneplatnenie
povinné
Výstupné polia
Názov
Popis
revoked
Či bol token zneplatnený (boolean)
message
Správa o vysledku
POST Existujúce SAPI core

/sapi/v1/document/send

Synchrónne odoslanie dokumentu do Peppol siete. Validácia + SMP lookup + AS4 delivery v jednom HTTP requeste.
Účel služby
SYNCHRÓNNY endpoint, ktorý v jednom HTTP volani vykoná: validáciu dokumentu, SMP lookup, AS4 odoslanie. Na rozdiel od APEX API /documents/send, ktorý je asynchrónny, SAPI send čaká na výsledok doručenia.
Kedy službu volať
  • keď klient potrebuje okamzitu odpoveď o doručení
  • pri jednoduchých integráciách bez webhook/polling
  • pri SAPI-SK v1.0 kompatibilnej integrácii
Povinné hlavičky
Idempotency-Key — 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 — chýbajúci Idempotency-Key alebo payload
  • 422 — validačné chyby
  • 429 — prekročený rate limit (100/min)
  • 502 — chyba pri AS4 doručení
Hlavičky a vstup
Názov
Popis
Stav
Idempotency-Key
Unikátny kľúč (HTTP hlavicka)
povinné
X-Peppol-Participant-Id
Peppol ID odosielateľa (HTTP hlavicka)
povinné
payload
UBL alebo CII dokument
povinné
Výstupné polia
Názov
Popis
provider_document_id
ID dokumentu u providera
status
Stav doručenia
sent_at
Čas odoslania
GET Existujúce SAPI inbound

/sapi/v1/document/receive

Zoznam prijatých dokumentov s cursor-based stránkovaním. Filter podľa statusu (RECEIVED, ACKNOWLEDGED).
Účel služby
Vráti zoznam prijatých dokumentov s cursor-based stránkovaním (pageToken + limit). Filtrovanie podľa statusu: RECEIVED (ešte nepotvrdené), ACKNOWLEDGED (potvrdené).
Kedy službu volať
  • pri pravidelnom polling prijatých dokumentov
  • pri integrácii kde sa používa SAPI rozhranie
Cursor-based stránkovanie
Používa pageToken namiesto offset/limit. Odpoveď obsahuje next_page_token pre ďalšiu stranu. total_count uvadza celkový počet.
Typické chyby
  • 400 — neplatný pageToken alebo filter
  • 401 — neplatný token
Query parametre
Názov
Popis
Stav
status
Filter: RECEIVED alebo ACKNOWLEDGED
voliteľné
pageToken
Cursor token pre ďalšiu stranu
voliteľné
limit
Počet záznamov na stranu
voliteľné
Výstupné polia
Názov
Popis
documents[]
Pole prijatých dokumentov
next_page_token
Token pre ďalšiu stranu
total_count
Celkový počet záznamov
GET Existujúce SAPI inbound

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

Detail prijateho dokumentu vrátane metadát, XML payloadu a checksum.
Účel služby
Vráti kompletný detail jedného prijateho dokumentu vrátane metadát, XML payloadu, formatu a checksum pre integritu.
Kedy službu volať
  • pri stiahnutí konkrétneho dokumentu
  • pri verifikácii integrity payloadu
Typické chyby
  • 404 — dokument neexistuje
Výstupné polia
Názov
Popis
provider_document_id
ID dokumentu u providera
status
Stav dokumentu
received_at
Čas prijatia
metadata
Objekt s metadátami
payload
XML obsah dokumentu
payload_format
Format payloadu (UBL/CII)
checksum
Checksum pre overenie integrity
POST Existujúce SAPI inbound

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

Potvrdenie prijatia dokumentu. Prechod RECEIVED → ACKNOWLEDGED. Idempotentna operácia.
Účel služby
Potvrdí prijatie dokumentu klientom. Status prechádza z RECEIVED na ACKNOWLEDGED. Operácia je idempotentna — opakované volanie nemá vedľajší efekt.
Kedy službu volať
  • po úspešnom spracovaní dokumentu v klientovom systeme
  • po importovaní faktúry do ERP
Typické chyby
  • 404 — dokument neexistuje
Výstupné polia
Názov
Popis
provider_document_id
ID dokumentu
status
ACKNOWLEDGED
acknowledged_at
Čas potvrdenia
Kľúčové pojmy a rozdiely medzi službami
Táto sekcia vysvetluje základné pojmy, rozdiely medzi APEX API a SAPI, statusové hodnoty a technický kontext.
APEX 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 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 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 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á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) — 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 (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.
Asynchrónne odosielanie používa exponenciálny backoff 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 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.
Autentifikácia

OAuth 2.0 — Bearer Token Authentication

Všetky API endpointy vyžadujú autentifikáciu pomocou Bearer tokenu v hlavičke Authorization. Tokeny získate cez SAPI auth endpoint alebo ASOL IAM server.

Autentifikačný flow
Kompletný postup od získania tokenu po jeho obnovenie a zneplatnenie.

1. Token

POST /sapi/v1/auth/token s client_credentials

2. Použitie

Authorization: Bearer <token> v každom requeste

3. Obnovenie

POST /sapi/v1/auth/renew s refresh tokenom

4. Revoke

POST /sapi/v1/auth/revoke pri odhlásení

Dôležité: 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.
Priklad autentifikácie
Token request a použitie
1. Získanie 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žitie tokenu v requeste
GET /api/v1/documents/inbox
Authorization: Bearer eyJhbGciOiJSUzI1NiIs...
Accept: application/json
Príklady

Request / Response príklady

Konkretne príklady JSON payloadov pre kľúčové endpointy.

POST /api/v1/documents/send
Odoslanie 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 pred odoslaní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
Validácia 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"
}