Technical reference for all 25+ endpoints implemented in APEX AP Service. Covers APEX API for deep integration, SAPI for simplified access per SAPI-SK v1.0, authentication, validation, sending, inbox, webhooks, reporting and participant lookup.
The APEX Access Point offers two equivalent integration paths. Your choice depends on where your system runs and which communication style you need. Both paths cover the full Peppol flow (sending and receiving) and you can combine them.
apex.asseco-peppol.com with an OAuth 2.0 token. JSON payload, UBL XML Base64-encoded. Synchronous request/response + status polling or webhooks.SynchronizationMessage carrying a PeppolDocument entity, QHUB delivers it to APEX and any responses are returned to your queue.POST /sapi/v1/auth/token with client_credentials. You receive a JWT access token (15 min) and a refresh token (30 days). Use the token in the Authorization: Bearer <token> header. 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 or /precheck. Validate checks XML, Schematron and business rules. Precheck additionally verifies participant existence and routability. alebo /precheck. Validate overí XML, Schematron a business rules. Precheck navyše overí existenciu participanta a routovateľnosť.POST /api/v1/documents/send. The API returns HTTP 202 with status QUEUED. The document is processed asynchronously — QUEUED does not mean final delivery.. 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 for the current status. Use /events for the timeline and /responses for counterparty responses (MLR, IMR). pre aktuálny stav. Použite /events pre časovú os a /responses pre odpovede protistrany (MLR, IMR)./status endpoint. endpoint.400 — missing required field or invalid payload — chýbajúci povinny udaj alebo nevalidný payload401 — invalid or expired token — neplatný alebo expirovaný token422 — invalid UBL document — nevalidný UBL dokument404 — document does not exist — dokument neexistuje401 — invalid token — neplatný token400 — invalid XML or incorrect payload — nevalidné XML alebo nesprávny payload422 — validation rule violation — porušenie validačných pravidielnetworkReady = valid AND participantExists AND canSend. = valid AND participantExists AND canSend.CERT_EXPIRING_SOON — recipient certificate expiring soon — chyby v UBL dokumenteCERT_EXPIRING_SOON — certifikát príjemcu čoskoro vyprší400 — missing required field — chýbajúci povinny udaj422 — validation errors in the document — validačné chyby v dokumente404 — participant not found in SMP/SML — participant nenájdený v SMP/SMLtotal for the overall record count. pre celkový počet záznamov.400 — invalid filter or parameter — neplatný filter alebo parameter401 — invalid token — neplatný tokendocumentId, senderParticipantId, receiverParticipantId, documentTypeId, processId, receivedAt, status, ublDocument (XML payload), senderParticipantId, receiverParticipantId, documentTypeId, processId, receivedAt, status, ublDocument (XML payload)404 — document does not exist — dokument neexistuje401 — invalid token — neplatný token404 — document does not exist — dokument neexistuje409 — document already acknowledged (conflict) — dokument už bol potvrdený (conflict)404 — document does not exist — dokument neexistuje404 — document does not exist or has no responses — dokument neexistuje alebo nemá odpovedesource field (LOCAL or SMP) indicating where the data came from. Lokálna databáza (cache)source pole: LOCAL alebo SMP.400 — missing parameter schema or dic — chýbajúci parameter schema alebo dic404 — participant does not exist — participant neexistuje503 — SMP/SML temporarily unavailable — SMP/SML dočasné nedostupný400 — invalid Company ID format — neplatný format ICO422 — Company ID could not be resolved to a VAT ID — ICO sa nepodarilo preložiť na DIC404 — participant does not exist — participant neexistujeperiod — period type and rangesent — total, delivered, failed, deliveryRate, byDocumentType, byCountryreceived — same structuretopRecipients[], topSenders[] — top partnersfailedDocuments — 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 — invalid period or date format — neplatne obdobie alebo format datumu400 — invalid filter — neplatný filterdocumentTypeFilters[]) and sender (senderParticipantFilters[]). Without a filter, notifications are sent for all received documents.) a odosielateľa (senderParticipantFilters[]). Bez filtra sa notifikuje o všetkých prijatých dokumentoch.400 — invalid URL (must be https://) — neplatná URL (musí byt https://)422 — invalid filter — nevalidný filter401 — invalid token — neplatný token404 — subscription does not exist — subscription neexistuje404 — subscription does not exist — subscription neexistuje400 — invalid URL or filters — neplatná URL alebo filtre404 — subscription does not exist — subscription neexistuje409 — queue already exists for this account — queue už existuje pre daný účet401 — invalid client_id or client_secret — neplatne client_id alebo client_secret423 — account locked after 5 failed attempts — účet zamknutý po 5 neúspešných pokusoch429 — rate limit exceeded — prekročený rate limit401 — token is invalid or expired — token je neplatný alebo expiroval401 — invalid or expired refresh token — neplatný alebo expirovaný refresh token400 — missing token parameter — chýbajúci token parameter/documents/send which is asynchronous, SAPI send waits for the delivery result., ktorý je asynchrónny, SAPI send čaká na výsledok doručenia.Idempotency-Key — unique key for idempotent processing (required)X-Peppol-Participant-Id — Peppol ID of sender (required)X-Peppol-Participant-Id — Peppol ID odosielateľa (povinné)400 — missing Idempotency-Key or payload — chýbajúci Idempotency-Key alebo payload422 — validation errors — validačné chyby429 — rate limit exceeded (100/min) — prekročený rate limit (100/min)502 — error during AS4 delivery — chyba pri AS4 doručenípageToken instead of offset/limit. Response contains next_page_token for the next page. total_count gives the total number of records. namiesto offset/limit. Odpoveď obsahuje next_page_token pre ďalšiu stranu. total_count uvadza celkový počet.400 — invalid pageToken or filter — neplatný pageToken alebo filter401 — invalid token — neplatný token404 — document does not exist — dokument neexistuje404 — document does not exist — dokument neexistuje/api/v1/) is the full enterprise REST API for deep integration. Sending is asynchronous (QUEUED); events, responses, webhooks, reporting and participant lookup are available./sapi/v1/) is a simplified interface per SAPI-SK v1.0. Sending is synchronous, pagination is cursor-based. Suitable for simpler integrations./auth/token are valid for both APIs. (/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). Used for routing and SMP lookup./lookup/ico endpoint automatically resolves Company ID → VAT ID → 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, detailed timeline via /events, and counterparty responses via /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"
}