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 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.
apex.asseco-peppol.com s OAuth 2.0 tokenem. JSON payload, UBL XML v Base64. Synchronní request/response + status polling nebo webhooky.SynchronizationMessage s entitou PeppolDocument, QHUB ji doručí APEX-u a případné odpovědi pošle zpět na vaši queue.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>.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ť.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.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)./status. endpoint.400 — chybějící povinný údaj nebo neplatný payload — chýbajúci povinny udaj alebo nevalidný payload401 — neplatný nebo expirovaný token — neplatný alebo expirovaný token422 — neplatný UBL dokument — nevalidný UBL dokument404 — dokument neexistuje — dokument neexistuje401 — neplatný token — neplatný token400 — neplatné XML nebo nesprávný payload — nevalidné XML alebo nesprávny payload422 — porušení validačních pravidel — porušenie validačných pravidielnetworkReady = valid AND participantExists AND canSend. = valid AND participantExists AND canSend.CERT_EXPIRING_SOON — certifikát příjemce brzy vyprší — chyby v UBL dokumenteCERT_EXPIRING_SOON — certifikát príjemcu čoskoro vyprší400 — chybějící povinný údaj — chýbajúci povinny udaj422 — validační chyby v dokumentu — validačné chyby v dokumente404 — účastník nenalezen v SMP/SML — participant nenájdený v SMP/SMLtotal pro celkový počet záznamů. pre celkový počet záznamov.400 — neplatný filtr nebo parametr — neplatný filter alebo parameter401 — neplatný token — neplatný tokendocumentId, senderParticipantId, receiverParticipantId, documentTypeId, processId, receivedAt, status, ublDocument (XML payload), senderParticipantId, receiverParticipantId, documentTypeId, processId, receivedAt, status, ublDocument (XML payload)404 — dokument neexistuje — dokument neexistuje401 — neplatný token — neplatný token404 — dokument neexistuje — dokument neexistuje409 — dokument již byl potvrzen (conflict) — dokument už bol potvrdený (conflict)404 — dokument neexistuje — dokument neexistuje404 — dokument neexistuje nebo nemá odpovědi — dokument neexistuje alebo nemá odpovedesource (LOCAL nebo SMP) označující zdroj dat. Lokálna databáza (cache)source pole: LOCAL alebo SMP.400 — chybějící parametr schema nebo dic — chýbajúci parameter schema alebo dic404 — účastník neexistuje — participant neexistuje503 — SMP/SML dočasně nedostupný — SMP/SML dočasné nedostupný400 — neplatný formát IČO — neplatný format ICO422 — IČO se nepodařilo přeložit na DIČ — ICO sa nepodarilo preložiť na DIC404 — účastník neexistuje — participant neexistujeperiod — typ a rozsah obdobísent — total, delivered, failed, deliveryRate, byDocumentType, byCountryreceived — stejná strukturatopRecipients[], topSenders[] — top partneřifailedDocuments — total, deadLetters, retrying, rejected — typ a rozsah obdobiasent — total, delivered, failed, deliveryRate, byDocumentType, byCountryreceived — rovnaka štruktúratopRecipients[], topSenders[] — zoznamy top partnerovfailedDocuments — total, deadLetters, retrying, rejected400 — neplatné období nebo formát data — neplatne obdobie alebo format datumu400 — neplatný filtr — neplatný filterdocumentTypeFilters[]) 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.400 — neplatná URL (musí být https://) — neplatná URL (musí byt https://)422 — neplatný filtr — nevalidný filter401 — neplatný token — neplatný token404 — subscription neexistuje — subscription neexistuje404 — subscription neexistuje — subscription neexistuje400 — neplatná URL nebo filtry — neplatná URL alebo filtre404 — subscription neexistuje — subscription neexistuje409 — queue již existuje pro daný účet — queue už existuje pre daný účet401 — neplatné client_id nebo client_secret — neplatne client_id alebo client_secret423 — účet zamčen po 5 neúspěšných pokusech — účet zamknutý po 5 neúspešných pokusoch429 — překročen rate limit — prekročený rate limit401 — token je neplatný nebo expiroval — token je neplatný alebo expiroval401 — neplatný nebo expirovaný refresh token — neplatný alebo expirovaný refresh token400 — chybějící parametr token — chýbajúci token parameter/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.Idempotency-Key — unikátní klíč pro idempotentní zpracování (povinné)X-Peppol-Participant-Id — Peppol ID odesílatele (povinné)X-Peppol-Participant-Id — Peppol ID odosielateľa (povinné)400 — chybějící Idempotency-Key nebo payload — chýbajúci Idempotency-Key alebo payload422 — validační chyby — validačné chyby429 — 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í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.400 — neplatný pageToken nebo filtr — neplatný pageToken alebo filter401 — neplatný token — neplatný token404 — dokument neexistuje — dokument neexistuje404 — dokument neexistuje — dokument neexistuje/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./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./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./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./auth/token platia pre obe API.iso6523-actorid-upis::9950:2024000001). Používá se pro routing a SMP lookup./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./lookup/ico automaticky prekladá ICO → DIC → Peppol ID./status, detailní časovou osu přes /events a odpovědi protistrany přes /responses. — dokument prijatý na spracovanie (HTTP 202)/status, detailnu časovú os cez /events a odpovede protistrany cez /responses.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
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 900,
"scope": "peppol:send peppol:receive"
}
GET /api/v1/documents/inbox Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Accept: application/json
{
"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..."
}
{
"documentId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "QUEUED",
"submittedAt": "2025-01-15T14:30:00Z"
}
{
"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..."
}
{
"networkReady": true,
"valid": true,
"participantExists": true,
"canSend": true,
"errors": [],
"warnings": [],
"checkedAt": "2025-01-15T14:29:00Z"
}
{
"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"
}
{
"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"
}
[
{
"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"
}
]
{
"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": []
}
{
"eventType": "DOCUMENT_RECEIVED",
"subscriptionId": "sub-abc123",
"receivedCount": 3,
"documentIds": [
"doc-001", "doc-002", "doc-003"
],
"notifiedAt": "2025-01-15T14:35:00Z"
}