Vyskúšajte verejné demo, overte vlastný DEV onboarding a pripravte produkčný prístup podľa svojho režimu.
Iba odosielanie cez partnera
Jedna API požiadavka pripraví registráciu firmy aj prepojenie partnera. Príjem zostáva u pôvodného poskytovateľa. Firma nepotrebuje používateľské konto ani dashboard.
1. Partner začne onboarding
POST /api/v1/onboarding-requests: serviceMode: send_only, relationshipMode: technical_delegation alebo managed_service, customerRef, dic, contactEmail. Vyžaduje neobmedzený partnerský kľúč, firms:manage, Idempotency-Key a aktuálnu produkčnú zmluvu s Enterprise API. technical_delegation platí firma; managed_service platí integrátor cez existujúci aktívny fakturačný účet. E-mail z API nie je dôkaz identity ani príjemca pozvánky. Platný existujúci súhlas s tým istým partnerom a platiteľom sa využije bez novej registrácie.
2. Firma potvrdí jedno prepojenie
Váš digitálny poštár na príjem faktúr sa nemení. Výber ePošťáka na portáli Finančnej správy používame výlučne na overenie, že ste oprávnený daňový subjekt používať dané Peppol ID. Po autentifikovanom podaní PFS dostane kontakt z PFS odkaz. Pri potvrdenom príjme inde uvidí na jednej obrazovke firmu, konkrétneho partnera, odosielanie, platiteľa a príslušné podmienky. Potvrdiť a prepojiť vytvorí firmu a súhlas. Pri technickej delegácii sa štandardná objednávka podľa cenníka aktivuje hneď po podpise, neštandardná ide na posúdenie ePošťákom; spravovaný integrátor sa aktivuje s platnou podpísanou zmluvou a fakturáciou. Bez požiadavky partnera sa aktivácia neponúka. Príjem ani SMP sa nemenia.
3. Partner vytvorí kľúč
GET /api/v1/onboarding-requests/{id} vracia stav vlastnej požiadavky. Až active sprístupní firmId a keyCreation. Potom POST /api/v1/integrator/keys s scopedFirmId: firmId a scopes: [documents:send, documents:read] vytvorí kľúč iba pre túto firmu; rodičovský kľúč potrebuje keys:manage aj požadované scopes. Kľúče musia byť prevádzkovo povolené. Kľúč sa nevydáva v onbordingovej odpovedi. Prijímanie dokladov je zakázané. Stav oznamujú webhooky onboarding.* (PUT /api/v1/onboarding-requests/webhook); GET ostáva ako záloha. Každá odpoveď nesie nextAction a clientMessage { sk, en }.
Správa a hranice
/auth/send-only-management používa jednorazový kód na kontakt PFS. Firma môže skontrolovať stav, svoju priamu zmluvu a faktúry alebo odvolať oprávnenie. Kľúče spravuje partner; odvolanie deaktivuje jeho kľúče pre túto firmu. Existujúca firma bez platného zhodného súhlasu, konanie v zastúpení, white-label a zmena platiteľa vyžadujú samostatné overenie.
Kľúč pre inštaláciu u zákazníka
Partner môže po zapnutí tejto funkcie vytvoriť sk_int_* obmedzený na jednu oprávnenú firmu. Pri lokálnej inštalácii ERP uložte u zákazníka tento kľúč. Hlavný partnerský kľúč ponechajte na vlastnom serveri.
Súhlas a existujúce oprávnenia
Najprv musí existovať aktívne oprávnenie partnera voči overenej firme. Kľúč zachováva existujúce účtovanie, platiteľa a dostupné rozhrania. Nenahrádza súhlas, overenie firmy ani jej prevádzkovú pripravenosť. Priame firemné sk_live_* zostávajú v existujúcom postupe.
Vytvorenie cez portál alebo spoločné API
V správe kľúčov zvoľte Prístup k firmám a konkrétnu firmu. Automatizácia používa GET/POST /api/v1/integrator/keys a DELETE /api/v1/integrator/keys/{keyId} s JWT z hlavného kľúča s keys:manage. POST prijíma name, scopes, ipAllowlist a voliteľné scopedFirmId. Tajomstvo key sa zobrazí iba raz. Aj SAPI klienti používajú tieto Enterprise Core endpointy. Nové hlavné kľúče majú keys:manage v predvolenom výbere; existujúce explicitné oprávnenia sa nerozširujú. Pri vypnutom vydávaní nie je výber firmy dostupný a POST s scopedFirmId vráti FIRM_KEY_ISSUANCE_DISABLED.
Použitie a výmena
Výmena sk_int_* za JWT sa nemení. Naďalej posielajte požadované X-Firm-Id, Peppol ID alebo customerRef; identifikátor musí označovať povolenú firmu. Obmedzený kľúč nespravuje kľúče, consent ponuky ani celý účet. Limit je päť aktívnych hlavných kľúčov a päť obmedzených kľúčov na firmu u integrátora. Pri výmene vytvorte nový kľúč, nasaďte ho a zrušte starý. Zrušenie kľúča alebo oprávnenia voči firme zablokuje aj vydané JWT. Nový súhlas staré kľúče neobnoví.
1. Začnite v sandboxe
SAPI si môžete vyskúšať okamžite cez verejné demo firmy. Vlastný integrátorský alebo white-label sandbox schvaľujeme manuálne; po schválení uvidíte svoje testovacie firmy a prístupy na stránke Začíname. Žiadny sandbox nevytvára produkčnú zmluvu, fakturáciu ani oprávnenie konať za reálne firmy.
SAPI bez čakania: použite verejné demo účty
Na stránke SAPI dokumentácie otvorte sekciu Demo testovacie účty. Firma A a Firma B tam majú verejný client_id, client_secret a Peppol ID. Hodnoty jednej firmy vždy používajte spolu. Získajte Bearer token cez POST https://dev.epostak.sk/sapi/v1/auth/token a podľa pripravených príkladov otestujte odoslanie z Firmy A aj prijatie vo Firme B. Nepotrebujete účet ani aktiváciu od ePošťáka.
SAPI v sandboxe: použite vlastné údaje zo stránky Začíname
Po prihlásení na dev.epostak.sk/integrator nájdete na stránke Začíname svoje client_id a Peppol ID testovacích firiem; client_secret sa zobrazí raz pri vytvorení kľúča. Hodnoty jednej firmy vždy používajte spolu. Získajte Bearer token cez POST https://dev.epostak.sk/sapi/v1/auth/token a podľa pripravených príkladov otestujte odoslanie z odosielajúcej firmy aj prijatie v prijímajúcej firme.
Ak potrebujete vlastné testovacie firmy alebo partnerský sk_int_* prístup, vyplňte žiadosť na https://dev.epostak.sk/dev. Prístup pripravíme v pracovný deň do 4 hodín, príde e-mailom.
Po schválení žiadosti dostanete e-mailom prístup do portálu https://dev.epostak.sk/integrator: integrátorský účet a dve testovacie firmy, už prepojené. Vlastný API kľúč si vytvoríte v portáli. Prístup pripravíme v pracovný deň do 4 hodín.
Prihláste sa do integrátorského prostredia
Testovanie prebieha na dev.epostak.sk/integrator s oddelenými testovacími firmami, kľúčmi a Peppol testovacou sieťou.
Overte autentifikáciu, oddelenie firiem, odoslanie, príjem, stavové udalosti a odvolanie súhlasu. Sandboxové firmy, súhlasy ani kľúče sa do produkcie neprenášajú.
White-label DEV onboarding: požiadajte o aktiváciu
Ak už máte aktívny integrátorský prístup v DEV, vyplňte žiadosť na https://dev.epostak.sk/dev a v poznámke uveďte, že chcete aktivovať aj White-label DEV sandbox. Prístup pripravíme v pracovný deň do 4 hodín, príde e-mailom. Ide o samostatné, výslovné oprávnenie; nevytvára produkčný white-label program ani oprávnenie pre reálne firmy.
Po aktivácii si na dev.epostak.sk/integrator vytvorte samostatný sk_int_* kľúč s oprávneniami participants:read, participants:write a podľa potreby participants:migrate. Overtoken nevytvára tento API kľúč: simuluje provider webhook a doručí jednorazový verification_token pre testovacie DIČ.
Overte provider webhook cez Overtoken
Pošlite z Overtokenu syntetický provider webhook na svoj DEV endpoint. Overte X-PDS-Secret nad presným raw telom a z payloadu prevezmite DIČ, e-mail a verification_token. V Overtokene zadajte DIC1 (prístupový bod) = 2122701339, DIČ ePošťáka (Kaja Solutions s.r.o.), a DIC2 = DIČ firmy, ktorú registrujete; token platí iba pre tento pár a s iným DIC1 ho testovacie SMP odmietne. DIC2 môže byť ľubovoľné 10-miestne testovacie DIČ, ktoré ešte nie je v testovacom SMP. Token je určený iba pre testovacie SMP a nenahrádza sk_int_* API kľúč.
Registráciu pošlite do ePošťáka, nie priamo do SMP
Vymeňte DEV sk_int_* za JWT so scope participants:write a zavolajte POST https://dev.epostak.sk/api/v1/white-label/participants/registrations. Pošlite Idempotency-Key, customerRef, DIČ, companyEmail a verificationToken; hlavičku X-Firm-Id neposielajte. ePošťák až potom použije token na zápis do slovenského testovacieho SMP. Odpoveď 201 potvrdzuje SMP registráciu a lokálnu väzbu; následne overte čítanie participanta a odoslanie/príjem. Pri 202 sledujte Location so scope participants:read; nový Idempotency-Key nevytvárajte.
Sandbox overuje vašu integráciu od prvého volania po odoslanie a prijatie dokladu; prihlásený integrátor vidí vlastné client_id a X-Firm-Id na stránke Začíname. Produkčné zmluvné pozvánky a White Label migrácia majú odlišné podmienky.
Štandardný sandbox: test súhlasu
Použite pridelenú testovaciu firmu a DEV kľúč s firms:manage a požadovanými documents:* oprávneniami. Súhlas funguje ako v produkcii: zavolajte POST /api/v1/consent-offers pre IČO alebo DIČ testovacej firmy (alebo POST /api/v1/firms/consent-link, OAuth „Prepojiť s ePošťákom“, prípadne portál). E-mail so žiadosťou príde na vašu vlastnú adresu, pretože firemný e-mail testovacej firmy je e-mail vášho integrátorského účtu. Otvorte vrátený consentUrl alebo odkaz z e-mailu, prihláste sa ako testovacia firma, žiadosť prijmite a overte GET /api/v1/consent-offers/{offerId}. Dve testovacie firmy sú pripravené a už prepojené; tento test potrebujete, keď chcete vyskúšať celé udelenie súhlasu. Odvolanie súhlasu urobí firma vo svojom nastavení a vaše volania API potom vrátia 403 CONSENT_REQUIRED. Postup nevytvára firmu ani API kľúč. Pre OAuth „Prepojiť s ePošťákom“ nastavte v SDK origin=https://dev.epostak.sk.
White Label: registrácia a jej výsledok
Po výslovnej aktivácii White Label DEV použite nový testovací verification_token, syntetické DIČ a stabilný customerRef. Kľúč aj JWT potrebujú participants:write pre registráciu a participants:read pre čítanie výsledku. Uložte id operácie, participantId a firmId. Pri 202 čítajte GET /api/v1/white-label/operations/{operationId}; pri manual_review kontaktujte podporu s id operácie. Po succeeded overte GET /api/v1/white-label/participants/{participantId}. Opakovanie rovnakej registrácie s rovnakým telom a Idempotency-Key môže vrátiť 200; nevytvárajte druhú registráciu. Tento režim nevyžaduje klientsky účet ani OAuth.
White Label zákazník a migrácia
Po úspešnej registrácii alebo migrácii vytvorte zákazníka cez POST /api/v1/customers s rovnakým customerRef, zhodnými testovacími identifikátormi, relationship=represented a customerAuthorization. Použite samostatný Idempotency-Key a overte GET /api/v1/customers. Vyžaduje výslovne aktivovaný Enterprise White Label sandbox; použije už registrovanú testovaciu firmu. Migráciu zo samostatného testovacieho poskytovateľa overte cez /api/v1/white-label/participants/migrations s jeho migračným kódom. Migračný kód pre odchod získate cez /api/v1/white-label/participants/{participantId}/migration-code so scope participants:migrate. Existujúca lokálna identita sa druhou registráciou ani migráciou nepreberá; interný presun medzi integrátormi a návrat tej istej lokálnej identity nie sú týmto DEV testom podporované.
Praktický test odoslania
Z pripravenej testovacej firmy overte token, preflight a odoslanie dokladu testovaciemu príjemcovi „ePošťák Test – Prijaté“ (0245:4188071545), stav dokumentu až po odpoveď Prijaté (AP) a potvrdenie až po lokálnom uložení. Ďalšie výsledky (odmietnuté, spochybnené, nedoručiteľné, príjemca neexistuje) vyvoláte ostatnými testovacími príjemcami alebo scenárovým API (sandbox v časti Prostredia). Pri Enterprise events/pull najprv vytvorte odber cez POST /api/v1/webhooks (url=null pre pravidelné čítanie). Zopakujte send s rovnakým Idempotency-Key a telom a overte, že nevznikol druhý dokument. Overte aj odmietnutie prístupu po odvolaní súhlasu. Úspech v portáli doplňte dôkazom zo svojho ERP alebo SDK.
Integrátor pripája jedným kľúčom viac firiem, klientské aj firmy vlastnej skupiny, a ich API spotrebu platí ePošťáku súhrnne jednou faktúrou podľa integrátorskej zmluvy.
SAPI, Connector alebo Enterprise API
súhlas vlastníka alebo správcu firmy zostáva povinný
Po samostatnom schválení Finančnou správou vystupuje partner voči klientovi ako digitálny poštár pod vlastnou značkou. ePošťák poskytuje technickú a Peppol infraštruktúru.
klient si vo vPDS volí priamo partnera
bez klientskeho účtu ePošťák a bez ePošťák OAuth
partner spracuje provider webhook a registráciu firmy v SMP
Úspešné sandboxové testy produkciu neaktivujú automaticky. Produkčná objednávka a produkčné prístupy vznikajú samostatne.
Otvorte produkčnú aktiváciu
Na /integrator/aktivacia vyberte API pre vlastnú firmu, technického partnera alebo integrátora/white-label podľa toho, kto spravuje klientov a kto platí.
Doplníte firemnú a fakturačnú identitu, uvediete primárne plánované API rozhranie, obchodný režim, odhad spotreby, API program a prípadný white-label program. Aktívny partnerský režim následne sprístupní SAPI, Connector aj Enterprise API bez zmeny platiteľa.
Podpíšte presný zmluvný balík
Oprávnená osoba skontroluje pripravenú objednávku, cenník, zmluvu a prílohy a elektronicky odošle podpísanú ponuku. Automatické potvrdenie znamená iba prijatie žiadosti.
ePošťák žiadosť overí a spolupodpíše
Kaja Solutions overí firmu, podpisujúcu osobu a zvolený režim. Zmluva a produkčné oprávnenie vzniknú až naším spolupodpisom; žiadosť môžeme vrátiť na opravu alebo odmietnuť.
Po spolupodpise dostanú obe strany finálny zmluvný PDF balík a partnerovi sa sprístupní príslušný produkčný portál. V režime integrátora alebo technického partnera si následne v časti API kľúče vytvorí vlastný produkčný sk_int_*. Celý tajný kľúč sa zobrazí iba raz; ePošťák ho automaticky neposiela e-mailom.
Pri API pre vlastnú firmu ide o firemný produkčný prístup. Pri integrátorovi a technickom partnerovi ide o partnerský prístup; samotný sk_int_* ešte neoprávňuje konať za ľubovoľnú firmu. Ak si klient volí ePošťák, firma potvrdzuje partnerské oprávnenie v ePošťáku. Ak si klient volí schváleného white-label partnera, firma prichádza cez jeho provider webhook a SMP onboarding bez účtu ePošťák.
Čo preniesť z DEV do PROD
Prenáša sa implementácia a overené spracovanie chýb. Identity, tajomstvá a oprávnenia vznikajú nanovo v produkcii.
Samostatná produkčná konfigurácia
SDK base URL pre Enterprise/Connector zmeňte z https://dev.epostak.sk/api/v1 na https://epostak.sk/api/v1. Pre SAPI použite https://epostak.sk/sapi/v1. OAuth origin, redirect URI a webhook URL/secret nastavte osobitne pre produkciu. Použite nový produkčný kľúč a nový JWT; DEV firmId, participantId, súhlasy, verification_token ani testovacie Peppol ID sa neprenášajú. customerRef môžete zachovať ako ERP označenie, ale jeho produkčná väzba musí vzniknúť znova.
Štandardný klient
Po aktivácii partnera vytvorte pozvánku cez POST /api/v1/consent-offers pre presné IČO/DIČ, režim, rozhranie a scopes. Bezpečne uložte id a consentUrl. Ak delivery vráti sent_to_verified_owners, ePošťák poslal odkaz vlastníkom a správcom firmy a žiadosť im ukáže aj v dashboarde; pri manual_required odkaz doručte vlastným kanálom. Stav čítajte cez GET /api/v1/consent-offers/{offerId}. accepted potvrdzuje súhlas, nie dokončené API oprávnenie či účtovanie. Firma potrebuje vlastný účet a prijatie vlastníkom alebo správcom; pred odosielaním overte aj pripravenosť firmy v zvolenom rozhraní.
White Label klient
Vyžaduje samostatné produkčné White Label oprávnenie a pripravený partnerský účet. Klient si zvolí vás; overte vlastný provider webhook FS SR a použite nový produkčný verification_token. Po úspešnej registrácii cez /api/v1/white-label/participants/registrations vytvorte Enterprise zákazníka cez POST /api/v1/customers s relationship=represented, customerAuthorization a vlastným Idempotency-Key. Tento krok nespotrebúva verification_token a nenahrádza SMP registráciu. Použite produkčný firmId z odpovede. Existujúceho participanta preberajte osobitnou migráciou s migračným kódom, nie opakovanou registráciou.
4. Zapojte klienta podľa zvoleného poskytovateľa
Najprv určte, koho si klient volí vo vPDS ako digitálneho poštára. Štandardný integrátor a white-label poskytovateľ používajú dva rozdielne onboardingové toky.
Klient si volí ePošťák
Klient si vo vPDS vyberie ePošťák, dokončí registráciu firmy a vytvorí alebo použije svoje konto ePošťák. Partner potom v LIVE dashboarde alebo cez Enterprise Core API pripraví jednorazový odkaz pre presné IČO alebo DIČ a požadované oprávnenia.
vlastník alebo správca firmy sa prihlási a potvrdí rozsah
partner používa svoj centrálny kľúč iba pre schválenú firmu
odvolanie prístupu neruší Peppol schránku klienta
Klient si volí vášho white-label poštára
Po vašom samostatnom schválení a zaradení do zoznamu poskytovateľov si klient vo vPDS vyberie priamo vašu firmu. Vaša provider vrstva prijme verification_token od FS SR a zavolá osobitné White Label API ePošťáka, ktoré vykoná obmedzený zápis do SMP.
klient si nevytvára konto ePošťák
nepoužíva sa ePošťák OAuth ani ePošťák pozvánka
FS webhook secret zostáva u partnera; ePošťák dostane iba verification_token
na White Label API sa neposiela X-Firm-Id
Rozhodujúca otázka je: koho si klient zvolil vo vPDS? Ak ePošťák, použije sa konto a samostatné oprávnenie firmy. Ak vášho schváleného white-label poskytovateľa, autorizačným zdrojom je provider výber vo vPDS a následný provider webhook; klient nemá konto ePošťák.
Automatizácia z ERP: vytvoriť → potvrdiť → overiť
Rozšírenie ePošťáka pre partnerský onboarding s platným zmluvným oprávnením. V DEV používa rovnaké endpointy a rovnaký postup ako produkcia: žiadosť o súhlas príde e-mailom na vašu adresu (e-mail testovacej firmy je e-mail vášho integrátorského účtu), prihlásite sa ako testovacia firma a súhlas prijmete. Prijatie nevytvára produkčnú zmluvu ani účtovanie. SAPI-SK štandard nemení. Nórska firma (Peppol adresa 0192:{orgnr}): ako cieľ pošlite targetIdentifierType orgnr s 9-miestnym organisasjonsnummer. Firmu do ePošťáka najprv zaregistrujeme my. Pošlite na info@epostak.sk: orgnr, meno podpisujúceho presne ako v brreg, jeho e-mail (stane sa vlastníkom firmy v ePošťákovi) a názov vášho integrátorského účtu; dátum narodenia podpisujúceho spresní zhodu v brreg. Skontrolujeme firmu v registri Enhetsregisteret (brreg) a oprávnenie podpisujúceho (signatur/prokura). Ak podpisuje sám, firmu hneď zaregistrujeme v ELMA, podpisujúci dostane pozvánku vlastníka v angličtine a vy e-mail s výsledkom; potom pošlite žiadosť o súhlas (targetIdentifierType orgnr), vlastník ju potvrdí rovnako ako vlastník slovenskej firmy a dostanete webhook aj e-mail o aktívnom prepojení. Ak brreg samostatný podpis nepotvrdí, vyžiadame si e-mailom podpísanú plnú moc (fullmakt) v PDF a po jej schválení pokračujeme rovnako.
ERP na serveri vymení partnerský kľúč za JWT, vytvorí pozvánku cez POST, bezpečne uloží id a consentUrl a otvorí odkaz oprávnenej osobe. Klient súhlas osobne potvrdí; ERP cez GET sleduje uložené id. Tieto onboardingové operácie sú súčasťou Enterprise Core pod /api/v1; SAPI štandard sa nemení. Použite zmluvne povolené rozhranie a režim. Po accepted ešte overte dokončenie aktivácie. Stiahnuť Enterprise Core API OpenAPI.
POST/api/v1/consent-offersCore
Vytvorenie pozvánky z ERP
Potrebný scope: firms:manage
Recommended primary endpoint for connecting a client (POST /api/v1/firms/consent-link is the older alias). The client confirms one page: the consent and, under technical delegation, the client's own standard API order are created together. Optional returnUrl sends the client back to your program after confirming. Webhooks consent.accepted, consent.revoked and consent.expired are delivered to the endpoint configured at PUT /api/v1/onboarding-requests/webhook. Shared Enterprise Core onboarding operation. Accepts an existing sk_int_* JWT, including one issued by /sapi/v1/auth/token. The caller JWT and current API key must hold firms:manage for POST on every interface; this is distinct from the scopes offered to the company. Supply requestedInterfaces for one transparent invitation covering all selected interfaces, or legacy integrationPath for a single interface. If both are supplied, integrationPath must equal the primary interface in canonical order (sapi, enterprise_api, connector). Every requested interface must be authorized by the same current partner relationship; approval grants only the explicitly listed interfaces. In production the requested relationship, interfaces and scopes must be authorized by the current partner agreement and key; DEV checks the key scope and targets a linked test company. 30 requests per minute per partner key. Non-idempotent: save id and consentUrl securely, and do not retry blindly after an uncertain response. A client owner/admin must explicitly accept, in DEV as well. customerReference does not deduplicate requests. No X-Firm-Id or participant header is needed; targetIdentifier binds the invitation only. In DEV the flow is the same as in production: the invitation e-mail arrives at your own address because the test company's e-mail is your integrator account's e-mail; sign in as the test company and accept through the returned link. No production contract, firm registration, credential or billing is created. The active issuing key and requested scopes are rechecked at acceptance.
Vyžaduje Bearer JWT získaný z partnerského sk_int_* cez príslušné /auth/token. Firemný kľúč ani prihlásenie v prehliadači nestačí. Volajúci token aj aktuálny kľúč musia mať firms:manage pri každom vytvorení pozvánky bez ohľadu na rozhranie. requestedInterfaces umožní jednu pozvánku pre SAPI, Enterprise API a Connector; pôvodný integrationPath zostáva pre jedno rozhranie. Ak pošlete oba parametre, integrationPath musí byť prvé rozhranie v poradí SAPI, Enterprise API, Connector. Každé požadované rozhranie musí povoľovať tá istá aktuálna partnerská zmluva. Pri technical_delegation alebo pri výbere Enterprise API musí scopes výslovne obsahovať aj firms:manage. Každé požadované oprávnenie musí mať aj token a kľúč; rozsah musí obsahovať aspoň jedno documents:* oprávnenie. Technický partner aj spravovaný integrátor môžu výslovne požiadať o reporting:read na čítanie štatistík dokumentov; nový súhlas firmy musí tento scope obsahovať. Starý súhlas sa vydaním nového kľúča alebo tokenu nerozšíri. Pre SAPI partnera prijíma JWT z existujúceho /sapi/v1/auth/token. Endpoint vytvorí pozvánku, neudeľuje súhlas ani neregistruje firmu. Ak firma už má účet v ePošťákovi, ePošťák pošle odkaz overeným vlastníkom a správcom firmy e-mailom a žiadosť im zobrazí aj po prihlásení na úvodnej stránke; pole delivery potom vráti sent_to_verified_owners, inak manual_required a odkaz doručte vlastným kanálom. Rovnaké prepojenie vznikne aj tlačidlom „Prepojiť s ePošťákom“ (OAuth): kliknutie „Povoliť prístup“ prihláseného vlastníka alebo správcu firmy je súhlas, ktorý prejde rovnakým postupom ako odkaz; partner dostane firm_id a používa centrálny sk_int_* s X-Firm-Id, žiadny firemný kľúč sa nevydáva. Limit je 30 vytvorení za minútu na kľúč. POST nie je idempotentný: bezpečne uložte id a jednorazový consentUrl; pri neistej odpovedi neopakujte požiadavku naslepo. Odkaz nemožno znovu načítať cez GET.
Hlavičky
Názov
Typ
Povinné
Popis
Authorization
string
REQ
Bearer <JWT> získaný cez POST /api/v1/auth/token z kľúča sk_live_* (priamy prístup firmy) alebo sk_int_* (integrátor; vtedy aj X-Firm-Id). Surový API kľúč ako Bearer server odmietne s 401.
Parametre
Názov
Typ
Povinné
Popis
targetIdentifierType
string
REQ
ico or dic for a Slovak firm; orgnr (9 digits) for a Norwegian firm hosted by ePostak in ELMA.(povolené: ico, dic, orgnr)
targetIdentifier
string
REQ
Exact company identifier; ico is 8 digits and dic is 10 digits. (max 40 znakov / chars)
returnUrl
string
optional
Optional https URL the client is sent back to after confirming (button and redirect). Its origin must match a redirect URI registered for the partner; otherwise VALIDATION_ERROR. It travels inside consentUrl, signed. (max 2048 znakov / chars)
customerReference
string
optional
ERP reference, not an idempotency key. (max 120 znakov / chars)
integrationPath
string
optional
Legacy single-interface selector. If requestedInterfaces is also sent, this must match its primary interface in canonical order.(povolené: sapi, enterprise_api, connector)
requestedInterfaces
string[]
optional
Exact interfaces shown to the owner and granted on approval. Requires current authorization for every interface. (max 3 položiek / items)
relationshipMode
string
REQ
Behaves as in production. In DEV the accepting firm is a test company and no production agreement or billing is created.(povolené: technical_delegation, managed_service)
scopes
string[]
REQ
At least one document scope. Explicit firms:manage is also required for technical_delegation or whenever requestedInterfaces includes enterprise_api. Every scope must be held by both the JWT and its current key. (max 20 položiek / items)
403PARTNER_NOT_AUTHORIZED, INSUFFICIENT_SCOPE or PARTNER_OFFER_UNAVAILABLE
413PAYLOAD_TOO_LARGE
429Rate limit exceeded
500INTERNAL_ERROR
503PARTNER_OFFER_CONFIGURATION_ERROR
GET/api/v1/consent-offers/{offerId}Core
Stav vlastnej pozvánky
Shared Enterprise Core onboarding operation. Accepts an existing sk_int_* JWT, including one issued by /sapi/v1/auth/token. This operation does not require unrelated Enterprise document entitlement and grants no access to other Enterprise operations. In production every requested interface, the relationship and scopes must still be authorized by the current partner agreement and key; DEV checks the key scope and targets a linked test company. 60 requests per minute per partner key. Returns requestedInterfaces as the exact consent selection and integrationPath as the legacy primary interface. Returns 404 for unknown or unowned IDs. Once the firm accepted, the response also carries firmId (the value for the X-Firm-Id header), firmIco, firmName and firmPeppolParticipantId (null while the firm is not registered); all four are null before acceptance. Does not return the secret link or search companies by ID. accepted means acceptance by the firm owner or admin, not completed contract, billing or API activation. Poll only while onboarding is open, respect rate-limit headers and stop when finished. There is no ERP acceptance callback. DEV/test runtime returns the caller-owned sandbox consent status from the same endpoint, with current key scope authorization rechecked.
Použite uložené id, rovnaký partnerský JWT a rozhranie. Endpoint vracia iba vlastnú pozvánku a znova kontroluje aktuálne oprávnenia. Vracia issued, pending, accepted, revoked, expired alebo superseded (nahradená novšou pozvánkou); výnimočne claimed, nie stav registrácie firmy. accepted znamená prijatý súhlas, nie potvrdenie dokončenia zmluvy, účtovania a aktivácie API. Pred produkčnými volaniami overte oprávnenie cez príslušné rozhranie. Po prijatí firmou vracia aj firmId (hodnota hlavičky X-Firm-Id), firmIco, firmName a firmPeppolParticipantId (null, kým firma nie je zaregistrovaná); pred prijatím sú všetky štyri null. Nevracia consentUrl ani tajný token. Nie je to vyhľadávanie firmy podľa IČO/DIČ. Počas otvoreného onboardingu kontrolujte napr. každých 5–10 sekúnd, rešpektujte rate-limit hlavičky a pri ukončení zastavte polling. Limit 60/minútu na kľúč. Prijatie nemá ERP callback.
Hlavičky
Názov
Typ
Povinné
Popis
Authorization
string
REQ
Bearer <JWT> získaný cez POST /api/v1/auth/token z kľúča sk_live_* (priamy prístup firmy) alebo sk_int_* (integrátor; vtedy aj X-Firm-Id). Surový API kľúč ako Bearer server odmietne s 401.
403PARTNER_NOT_AUTHORIZED, INSUFFICIENT_SCOPE or PARTNER_OFFER_UNAVAILABLE
404Invitation not found or not owned
429Rate limit exceeded
500INTERNAL_ERROR
5. Zapíšte white-label participanta do SMP
Tento tok je dostupný iba aktívnemu White Label sprostredkovateľovi. Nie je to všeobecný SMP proxy: integrátor môže registrovať, migrovať a čítať iba participantov priradených svojmu tenantovi; profily, certifikáty a raw SMP endpointy nemení.
1. Overte provider webhook FS SR
Overte X-PDS-Secret nad presným raw telom podľa špecifikácie FS SR. Tento secret ePošťák nepozná a nepotrebuje. Z overeného payloadu prevezmite DIČ, company_email a verification_token.
2. Zavolajte registráciu
Pošlite POST /api/v1/white-label/participants/registrations s JWT z vášho sk_int_* kľúča, scope participants:write a povinným Idempotency-Key. ePošťák token odošle do SMP ako dic_verification_code a v čitateľnej podobe ho neuloží. Ak bola firma predtým potvrdene uvoľnená zo SMP, po úspechu znovu použijeme iba jej interný firemný a právny záznam; staré platformové relácie, odkazy, členstvá a zákaznícke e-maily zostanú zablokované.
Ak participant už existuje, SMP konflikt 409 nedokazuje vlastníctvo. Získajte migračný kód od aktuálneho poskytovateľa a použite POST /api/v1/white-label/participants/migrations so scope participants:migrate.
Integrátor neposiela endpoint_profile a nemôže meniť SMP profily, certifikáty ani cudzie záznamy. ePošťák vyberie schválený profil podľa prostredia a zoznam vráti iba participantov daného integrátora.
Odpoveď 201 znamená, že SMP aj lokálna väzba uspeli. Pri 202 vyhodnoťte relatívnu cestu z hlavičky Location voči verejnej URL požiadavky a neopakujte operáciu s novým Idempotency-Key. Stav manual_review úmyselne blokuje ďalšie prevzatie, kým ePošťák nepotvrdí výsledok SMP.
6. Sledujte stav onboardingu
Stavy required, pending, active a revoked nižšie opisujú štandardnú väzbu medzi firmou a technickým alebo spravovaným integrátorom v ePošťáku. White-label poskytovateľ sleduje vlastný provider webhook, SMP registráciu a stav zmeny poskytovateľa.
required
Firma ešte nie je pripojená alebo potrebuje novú pozvánku pre požadované rozhranie a oprávnenia.
pending
Pozvánka alebo riadená aktivácia prebieha. Nezačínajte produkčné volania, kým sa stav nezmení na active.
active
Existuje aktívna, neodvolaná väzba pre požadované rozhranie a rozsah. Samotný súhlas nepotvrdzuje pripravenosť Peppol účastníka, API programu ani fakturácie; pred odoslaním overte tieto podmienky a preflight.
revoked
Firma súhlas odvolala. Zastavte ďalšie spracovanie a vytvorte novú pozvánku iba vtedy, ak chce firma prístup opäť udeliť.
Stav môžete pri Enterprise API overiť cez GET /api/v1/firms/consent-status. SAPI nemá vlastné rozhranie na správu firiem; ak tento Enterprise endpoint používate pri SAPI onboardingu, SAPI aj Enterprise API musia byť povolené v zmluve aj pozvánke.
Čo pripraviť pri prechode z DEV do produkcie
<table><thead><tr><th>Oblasť</th><th>Produkčná príprava</th></tr></thead><tbody><tr><td>Connector</td><td>Rovnaký dokumentový kontrakt; nový host, LIVE kľúč a nové customerRef väzby na skutočné firmy.</td></tr><tr><td>SAPI</td><td>Rovnaký UBL prenos; nový host, LIVE kľúč, skutočné Peppol ID a oprávnenia firmy pre zvolený smer.</td></tr><tr><td>Enterprise</td><td>Rovnaké povolené dokumentové operácie; nový host, LIVE kľúč a firemný kontext. DEV OAuth/PKCE skúška nie je produkčná pozvánka a nezaručuje rovnaký callback tok.</td></tr><tr><td>Zmluva a platiteľ</td><td>Samostatná produkčná žiadosť a prijatie podľa režimu: vlastná firma, integrátor alebo technický partner. Testovanie neurčuje platiteľa.</td></tr><tr><td>Súhlas a aktivácia</td><td>Každá skutočná firma potrebuje príslušné oprávnenie a súhlas. DEV firmy, kľúče a súhlasy sa neprenášajú.</td></tr></tbody></table>
Bezpečné overenie SAPI pripojenia
S produkčným SAPI JWT zavolajte GET https://epostak.sk/sapi/v1/auth/token/status s hlavičkou Authorization: Bearer $TOKEN. HTTP 200 a valid: true potvrdzujú platnosť tokenu. Toto čítanie neposiela faktúru ani nepreberá dokumenty a nevyžaduje Enterprise oprávnenie. Je nezávislé od firmy: nepotvrdzuje jej súhlas ani dokončenie aktivácie. Pri HTTP 401 získajte nový token platným produkčným kľúčom; pri 403 skontrolujte oprávnenia, povolené rozhranie a IP pravidlá.
Stav firmy overte v Partner Dashboarde alebo u operátora. Čakajúca aktivácia musí byť dokončená a odvolaný či chýbajúci súhlas znovu riadne udelený. SAPI dokumentové volania používajú X-Peppol-Participant-Id; odmietnutie 403 samo osebe nerozlišuje čakajúcu aktiváciu od chýbajúcej väzby alebo súhlasu. Neopakujte ich naslepo a nerozširujte oprávnenia len pre kontrolu. Až pri riadnej prevádzke čítajte GET /sapi/v1/document/receive?status=RECEIVED&limit=1 s rozsahom documents:read: 200 s prázdnym documents je platný výsledok, čítanie existujúcich dokumentov však môže evidovať účtované API prijatie.
7. Použite správny firemný kontext
SAPI
Partnerský token doplňte hlavičkou X-Peppol-Participant-Id: 0245:DIČ. Server overí aktívnu väzbu, súhlas a rozsah tokenu.
Odvolanie súhlasu partnerovi, keď si klient zvolil ePošťák, bezodkladne ukončí jeho technický prístup ku konkrétnej firme. Neruší konto firmy, jej Peppol schránku ani registráciu. Zmena digitálneho poštára je samostatný migračný proces.
Keď si klient zvolil white-label partnera, deaktivácia alebo zmena poskytovateľa prichádza do jeho provider toku. Partner spracuje uvoľnenie alebo migráciu Peppol účastníka v SMP tak, aby doručovanie pokračovalo do prevzatia novým poskytovateľom. Žiadny účet ePošťák sa neruší, pretože klient ho v tomto režime nemá.
Sandbox a produkcia
Návody
Pridanie firiem, obchodné režimy, sandbox, produkcia, iba odosielanie, odchod a odvolanie prístupu.
Pripojenie ďalšej firmy
Dokončíte pripojenie jednej klientskej firmy k svojmu partnerskému prístupu — cez portál alebo cez API — a overíte, že prístup naozaj vznikol.
Aktívna partnerská autorizácia a partnerský kľúč (portal alebo sk_int_* podľa prostredia).
Presné IČO alebo DIČ klientskej firmy a osoba, ktorá je jej vlastníkom alebo správcom.
Rozhodnutie, kto platí API spotrebu: firma alebo vy ako integrátor.
White label na pripojenie firmy nepotrebujete
Jeden partnerský prístup obslúži aj viac klientskych firiem. Každá firma vám však musí samostatne povoliť prístup a vy musíte vedieť, kto platí API spotrebu.
Partnerský kľúč identifikuje vás. Sám osebe vám nedáva prístup k ľubovoľnej firme — ten vzniká až potvrdeným súhlasom.
Postup cez partnerský portál
1
Prihláste sa do správneho prostredia
Rozlíšte DEV a produkciu ešte pred vytvorením pozvánky. Testovacia väzba v DEV neplatí v produkcii.
2
Otvorte Súhlasy klientov
Panel „Pripojiť ďalšiu firmu“ nájdete v časti so súhlasmi. Ak ho nevidíte, partnerský prístup ešte nie je aktivovaný alebo nemá potrebné oprávnenie.
3
Zadajte presné IČO alebo DIČ
Zhoda musí byť presná. Pri zhode samotného DIČ nevzniká vlastníctvo ani automatické práva k existujúcemu účtu.
4
Zvoľte režim a platiteľa
Technická delegácia znamená, že firma platí svoju API spotrebu. Spravovaná služba znamená, že ju platí integrátor.
5
Zvoľte rozhranie a najmenší rozsah
Voľba odosielania nie je pokyn na zmenu prijímajúceho poštára. Pridajte len tie oprávnenia, ktoré naozaj potrebujete.
6
Doručte odkaz a nechajte ho potvrdiť
Odkaz doručte vlastným kanálom a nechajte ho potvrdiť vlastníkom alebo správcom firmy. Vytvorenie odkazu samo neposiela e-mail.
7
Overte súhlas aj aktiváciu
Súhlas je len prvý krok. Pred odosielaním overte, že firma má v zvolenom rozhraní prístup a správny firemný kontext.
Postup cez verejné consent API
Volajúci kľúč aj JWT musia mať firms:manage a všetky požadované oprávnenia; telo musí obsahovať aspoň jedno documents:* oprávnenie.
POST nie je idempotentný. Pri timeoute alebo neistej odpovedi ho neopakujte naslepo; customerReference nie je idempotency key.
Voliteľné returnUrl: https adresa, ktorej origin je registrovaný pre partnera (inak VALIDATION_ERROR). Po potvrdení sa klient vráti do vášho programu.
Pri technickej delegácii klient jedným potvrdením udelí súhlas aj objedná vlastné API. Ak ešte nevybral ePošťák na portáli Finančnej správy, GET vráti nextAction select_provider_on_pfs (awaitingPfs) a odkaz ostáva platný 14 dní.
Webhooky consent.accepted, consent.revoked, consent.expired, consent.declined (firma žiadosť odmietla, nextAction contact_client), consent.awaiting_pfs a consent.scopes_updated (spolu s nextAction a clientMessage) prichádzajú na endpoint z PUT /api/v1/onboarding-requests/webhook, každá zmena stavu najviac raz.
GET /api/v1/consent-offers/{offerId} vráti stav, ale nikdy nezopakuje stratený consentUrl.
Verejný POST nevytvára firmu, neregistruje ju do SMP, neudeľuje súhlas a neposiela e-mail.
Tlačidlo alebo panel chýba: partnerský prístup nie je aktivovaný, alebo kľúč nemá firms:manage.
Odkaz expiroval alebo bol zrušený: vytvorte nový pozvánkový odkaz. GET starý consentUrl nevráti.
Súhlas je revoked alebo prístup nefunguje: firma musí súhlas obnoviť novým odkazom; starý súhlas sa neoživuje.
Nesprávna firma: nesnažte sa to opraviť zmenou identifikátora v existujúcej pozvánke, vytvorte novú pre správnu firmu.
Pozvánky a súhlas
Prejdete celý životný cyklus jedného súhlasu: vytvorenie, doručenie, potvrdenie, kontrola stavu a odvolanie.
Rozhodnutý režim spolupráce a platiteľ API spotreby.
Bezpečné miesto na uloženie id pozvánky a jednorazového consentUrl.
Čo znamenajú stavy
Stav
Význam
Čo urobiť
required
Pozvánka existuje, oprávnená osoba ju ešte nepotvrdila.
Doručte odkaz a čakajte; nevytvárajte druhú pozvánku pre tú istú firmu.
pending
Súhlas je potvrdený, ale aktivácia ešte nie je dokončená.
Neposielajte dokumenty; čakajte na dokončenie alebo zistite stav.
active
Firma má prístup v zvolenom rozhraní.
Overte firemný kontext a pošlite prvý testovací doklad.
revoked
Súhlas bol odvolaný.
Prístup neobnovujte starým odkazom; vytvorte novú pozvánku.
Odkaz na súhlas je tajomstvo
consentUrl patrí oprávnenej osobe firmy, nie logom, analytike ani verejným príkladom.
Portálové akcie pre vlastníka nie sú verejné API; externému integrátorovi neodporúčajte interné cesty.
Odvolanie súhlasu
Po odvolaní prestanú platiť nové volania tohto partnera pre túto firmu. Existujúce Peppol registrácie, iné poverenia ani už doručené doklady sa nemenia.
Očakávaný výsledok a chyby
Vidíte stav active pre správnu firmu a partnera a viete, čo presne sa zmení po odvolaní.
403 pri práci s firmou: chýba firms:manage alebo požadované documents:* oprávnenie.
Odkaz potvrdila nesprávna osoba: súhlas sa nedá preniesť, vytvorte novú pozvánku pre firmu.
Technický partner
Nastavíte režim, v ktorom každá klientská firma platí vlastnú API spotrebu a vy máte delegovaný prístup.
Partnerská autorizácia pre technickú delegáciu (nie iba pre spravovanú službu).
Firmy, ktoré sú ochotné objednať si API a platiť ju priamo.
Čo technická delegácia znamená
Firma vystupuje ako účastník a platiteľ svojej API spotreby; vy spracúvate jej dokumenty v jej mene.
Pri technickej delegácii firma na jednej stránke jedným potvrdením udelí rozsah aj objedná vlastné API (štandardné podmienky, aktivuje sa hneď); bez jej potvrdenia prístup nevzniká. Ak už objednávku má, iba udelí súhlas.
Nejde o white label. Vaša značka sa nemení a vy nedržíte klientske faktúry za API spotrebu.
Ako režim nastaviť
1
Vytvorte pozvánku v režime technickej delegácie
V portáli zvoľte režim spolupráce a platiteľa API = Firma; cez API pošlite relationshipMode: "technical_delegation".
2
Nechajte firmu potvrdiť rozsah
Oprávnená osoba potvrdí firmu, partnera, rozhranie a oprávnenia.
3
Overte aktiváciu pred odosielaním
Súhlas samo nie je aktivácia. Overte stav aj prístup v zvolenom rozhraní.
Očakávaný výsledok a chyby
Firma má vlastnú API objednávku a vy máte delegovaný prístup k jej dokumentom v dohodnutom rozsahu.
Firma chýba v zozname: prístup nie je udelený alebo je odvolaný.
Volanie v mene firmy vracia 403: chýba X-Firm-Id alebo oprávnenie pre danú firmu.
Sandbox
Získate vlastný sandbox, otestujete odoslanie na testovacie protistrany a budete vedieť, čo sandbox naozaj overí a čo sa v produkcii zmení.
Rozhodnuté rozhranie (SAPI, Connector alebo Enterprise API), ktoré chcete testovať.
Ako získať sandbox
Žiadosť vyplníte na https://dev.epostak.sk/dev. Prístup pripravíme v pracovný deň do 4 hodín, príde e-mailom. Prihlásite sa na https://dev.epostak.sk/integrator, kde nájdete integrátorský účet a dve testovacie firmy, už prepojené. Vlastný API kľúč si vytvoríte v portáli. Verejné demo účty nájdete v dokumentácii v časti Demo účty; zdieľajú ich všetci, preto v nich nenechávajte dôverné údaje a na vlastné testy používajte svoje firmy.
Testovacie protistrany (boty)
Doklady posielajte týmto príjemcom. Každý je firma ePošťáka v testovacej sieti Peppol a na každý doklad odpovie pevným výsledkom cez normálnu AS4 cestu. Nevymýšľajte si vlastné Peppol ID: príjemca, ktorého nie je v testovacej sieti, odoslanie odmietne.
Názov
Peppol ID
Čo sa stane
ePošťák Test – Prijaté
0245:4188071545
doručené (MLS AP) → odpoveď Prijaté (AP)
ePošťák Test – Odmietnuté
0245:4192134085
doručené (MLS AP) → odpoveď Odmietnuté (RE)
ePošťák Test – Spochybnené
0245:4192217415
doručené (MLS AP) → odpoveď Spochybnené (UQ)
ePošťák Test – Nedoručiteľné
0245:4422475910
príjemca je v SMP, ale jeho prístupový bod neodpovedá → po opakovaniach zlyhané doručenie
ePošťák Test – Príjemca neexistuje
0245:4999999999
odoslanie zlyhá: príjemca nie je v sieti Peppol
Scenáre cez API
Scenárové API spustí jeden z výsledkov na skutočnej odosielacej ceste: vygeneruje faktúru Peppol BIS 3 z vašej testovacej firmy a pošle ju príslušnej protistrane. Doklad potom vidíte v GET /api/v1/documents/{id}/status, v udalostiach a vo webhookoch ako pri bežnom odoslaní. Existuje iba na dev.epostak.sk; na produkcii vráti 404.
1
1. Získajte token
Vymeňte svoj sk_int_* kľúč za JWT cez POST https://dev.epostak.sk/api/v1/auth/token (grant_type=client_credentials, client_id a client_secret zo stránky Začíname). Kľúč a token musia mať oprávnenie documents:send. Prihlásenie do portálu (session) tu nestačí, potrebný je bearer token.
2
2. Uveďte firmu
Hlavička X-Firm-Id je povinná a musí byť jedna z vašich prepojených testovacích firiem s platným súhlasom. Iná alebo neprepojená firma vráti 403.
3
3. Spustite a sledujte beh
POST /api/sandbox/v1/scenarios s telom {"scenario": "<id>"} vráti 202 s run_id, document_id, status a status_url. Stav behu čítate cez GET /api/sandbox/v1/scenarios/{run_id}: z pending a running prejde na completed (výsledok zodpovedá scenáru) alebo failed s textom chyby. Limit je 60 spustení za hodinu na jeden kľúč. GET /api/sandbox/v1/scenarios vráti zoznam scenárov.
Scenár (id)
Príjemca
Výsledok
delivered
Prijaté
doručené, odpoveď AP, stav accepted
rejected
Odmietnuté
doručené, odpoveď RE, stav rejected
under_query
Spochybnené
doručené, odpoveď UQ, stav delivered
validation_failed
žiadny (doklad nemá menu BT-5)
validácia odosielateľa zlyhá pred odoslaním, stav validation_failed
send_failed
Príjemca neexistuje
príjemca nie je v SMP, stav recipient_not_found
delivery_failed
Nedoručiteľné
po opakovaniach (asi 25 minút) stav send_failed, kód transport_failed, webhook document.delivery_failed
DEV a produkcia majú oddelené kľúče, identity aj callbacky; DEV hodnoty sa do produkcie neprenášajú.
Odoslanie testujte na testovacích protistranách, najprv na „ePošťák Test – Prijaté“ (0245:4188071545). Doklad sám sebe (rovnaké Peppol ID odosielateľa aj príjemcu) odmietne DEV rovnako ako produkcia.
Úspech v portáli doplňte dôkazom zo svojho systému; portál sám nie je dôkaz integrácie.
Sandbox vs produkcia
Čo
Sandbox
Produkcia
Adresa API
dev.epostak.sk
epostak.sk; cesty a formát kľúča sú rovnaké
Kľúče
kľúče zo sandboxu
nové kľúče sk_int_ vytvorené v Partner Dashboarde na epostak.sk; sandboxové kľúče v produkcii neplatia
Firmy
dve testovacie firmy, pripravené a prepojené
skutočné firmy zákazníkov, ktoré si vybrali ePošťáka na vpds.financnasprava.sk
Súhlas firmy
pošlete žiadosť ako v produkcii (API, OAuth „Prepojiť s ePošťákom“ alebo portál); e-mail príde na vašu adresu, lebo e-mail testovacej firmy je e-mail integrátora; prihlásite sa ako firma a prijmete
prijíma ho skutočný majiteľ alebo správca firmy z e-mailu
Volanie v DEV vracia produkčné údaje: máte pomiešané prostredia — skontrolujte base URL a kľúč.
Testovacia firma neexistuje alebo scenár vráti 403: sandbox pripravíme po žiadosti na dev.epostak.sk/dev; X-Firm-Id musí byť jedna z prepojených firiem z portálu.
422 SELF_ADDRESSED_SEND (SAPI-DOC-042): príjemca je tá istá firma ako odosielateľ — pošlite doklad testovacej protistrane z tabuľky vyššie.
Produkčná aktivácia
Dokončíte prechod z testovacieho prostredia do produkcie vrátane objednávky, schválenia a prvého reálneho dokladu.
Odskúšaná integrácia v sandboxe vrátane spracovania chýb.
Oprávnená osoba firmy, ktorá môže potvrdiť objednávku a podmienky.
Čo sa prenáša a čo vzniká nanovo
Prenáša sa
Vzniká nanovo
Implementácia a overené spracovanie chýb.
Produkčné kľúče, JWT, callbacky, firemné a participant identity.
customerRef ako vaše ERP označenie.
Jeho produkčná väzba, súhlasy a oprávnenia.
Postup aktivácie
1
Dokončite objednávku
Objednávku potvrdzuje oprávnená osoba; cena, záväzok a platiteľ musia byť viditeľné pred potvrdením.
2
Počkajte na schválenie
Aktivácia nie je okamžitá. Stav overte predtým, než začnete posielať.
3
Vytvorte produkčné prístupy
Nový kľúč a nový JWT pre produkciu. DEV hodnoty nepoužívajte.
4
Pošlite prvý produkčný doklad
Overte prijatie odpovede, stav dokumentu a potvrdenie na strane príjemcu, ak je dostupné.
Očakávaný výsledok a chyby
Produkčné volanie vracia úspešnú odpoveď a stav dokumentu zodpovedá realite, nie iba testovaciemu prostrediu.
401 alebo 403 v produkcii: používate DEV kľúč, alebo firma ešte nie je aktivovaná.
Firma nevidí svoje doklady: skontrolujte firemný kontext volania, nie oprávnenie partnera.
Iba odosielanie
Prejdete celý send-only onboarding: partner vytvorí požiadavku, firma vyberie ePošťák na portáli Finančnej správy a potvrdí prepojenie, príjem zostáva u pôvodného poskytovateľa a firma nepotrebuje nový účet ani kľúč.
Firma má prijímaciu službu u existujúceho poskytovateľa a nechce ju meniť.
Partner má platnú produkčnú zmluvu, ktorá pokrýva Enterprise API (technický partner alebo spravovaný integrátor), a kľúč s oprávnením firms:manage. Samostatné povolenie od ePošťáka netreba. Priama zmluva firmy, ktorá API používa iba sama pre seba, neoprávňuje pripájať iné firmy.
Čo táto cesta je a čo nie je
Firma vznikne s lokálnou identitou, zmluvnou evidenciou a API oprávnením — nevzniká používateľ, heslo ani dashboardové členstvo.
Príjem sa nemení. Send-only vetva nevykonáva registráciu, migráciu ani odregistráciu v SMP.
Overtoken nie je súčasťou tejto cesty; patrí k white-label onboardingu.
Kto čo robí v jednotlivých krokoch
Krok
Firma
Partner (napr. SofCom)
ePošťák
1
V programe zapne odosielanie cez ePošťák.
POST /api/v1/onboarding-requests → stav awaiting_pfs.
Uloží žiadosť.
2
Na portáli Finančnej správy vyberie ePošťák ako poštára na odosielanie. Váš digitálny poštár na príjem faktúr sa nemení. Výber ePošťáka na portáli Finančnej správy používame výlučne na overenie, že ste oprávnený daňový subjekt používať dané Peppol ID.
Dostane webhook onboarding.pfs_received (stav action_required).
Prijme overené oznámenie z portálu Finančnej správy a pošle firme e-mail s odkazom na kontakt z portálu.
3
Otvorí odkaz a na jednej stránke (firma, program, rozsah, cena, platiteľ) potvrdí prepojenie.
Dostane onboarding.signed.
V jednej transakcii vytvorí firmu, objednávku a prepojenie s partnerom.
4
Dostane e-mail, že odosielanie je aktívne.
Dostane onboarding.active s firmId a keyCreation; pri programe nainštalovanom u zákazníka vydá kľúč obmedzený na firmu.
Štandardnú objednávku podľa cenníka aktivuje hneď po podpise. Neštandardná ide na posúdenie (onboarding.review_required).
Postup krok za krokom
1
1. Partner vytvorí jednu onboardingovú požiadavku
POST /api/v1/onboarding-requests so serviceMode: send_only, relationshipMode a customerRef. Vyžaduje neobmedzený partnerský kľúč, firms:manage a Idempotency-Key.
2
2. Autoritatívne podanie spustí pozvánku
Firma na portáli Finančnej správy vyberie ePošťák ako poštára na odosielanie. Váš digitálny poštár na príjem faktúr sa nemení. Výber ePošťáka na portáli Finančnej správy používame výlučne na overenie, že ste oprávnený daňový subjekt používať dané Peppol ID. Po autentifikovanom podaní PFS dostane odkaz kontakt uvedený pri overení, nie kontakt z API požiadavky. E-mail z requestu nie je dôkaz identity. Žiadosť prejde do action_required a partner dostane onboarding.pfs_received.
3
3. Firma potvrdí jedno prepojenie
Na jednej obrazovke vidí firmu, konkrétneho partnera, odosielanie, platiteľa a podmienky. Tlačidlo Potvrdiť a prepojiť zaznamená výslovný súhlas (onboarding.signed). Štandardná objednávka podľa cenníka sa aktivuje hneď (onboarding.active); neštandardná ostane v stave activating na posúdenie ePošťákom (onboarding.review_required). Pri managed_service platí partner a prepojenie sa aktivuje v rámci jeho zmluvy.
4
4. Partner vytvorí kľúč viazaný na firmu
Až stav active (alebo webhook onboarding.active) sprístupní firmId. Potom vytvorte kľúč s scopedFirmId a oprávneniami documents:send a documents:read. Rodičovský kľúč potrebuje keys:manage aj požadované oprávnenia a vytváranie kľúčov musí byť prevádzkovo povolené. Kľúč sa nikdy nevracia v onboardingovej odpovedi. Pri programe nainštalovanom u zákazníka kľúč nastaví dodávateľ programu; zákazník nič negeneruje ani nevkladá.
5
5. Odošlite prvý doklad a overte stav
Použite firemný kontext konkrétnej firmy. Prijímanie dokladov zostáva zakázané; overte stav dokumentu a dostupný dôkaz odoslania.
Stavy, ďalší krok a text pre firmu
Každá odpoveď aj webhook nesie nextAction a clientMessage { sk, en }. Text clientMessage môže program zobraziť firme bez vlastnej formulácie.
status
nextAction
clientMessage
awaiting_pfs
select_provider_on_pfs
Na portáli Finančnej správy vyberte ePošťák ako poštára na odosielanie. Váš digitálny poštár na príjem faktúr sa nemení. Výber ePošťáka na portáli Finančnej správy používame výlučne na overenie, že ste oprávnený daňový subjekt používať dané Peppol ID.
action_required
complete_client_activation
Otvorte e-mail od ePošťáka zaslaný na kontakt z portálu Finančnej správy a potvrďte prepojenie.
activating
provider_approval
Prepojenie je potvrdené. ePošťák kontroluje objednávku, o aktivácii vás budeme informovať e-mailom.
active
null
Odosielanie cez ePošťák je aktívne.
expired
null
Platnosť žiadosti vypršala. Pošlite novú žiadosť a firma znova vyberie ePošťák na portáli Finančnej správy.
revoked
null
Firma prepojenie odvolala. Na obnovenie ju pripojte znova s novou referenciou (customerRef) alebo kontaktujte podporu ePošťáka.
blocked
null
Prepojenie nie je platné. Pošlite novú žiadosť.
Webhooky onboarding.*
Partner si nastaví jeden webhook cez PUT /api/v1/onboarding-requests/webhook a vyberie udalosti (okrem onboarding.* aj consent.accepted, consent.revoked, consent.expired, consent.declined, consent.awaiting_pfs, consent.scopes_updated, webhook.disabled a pre White Label partnerov participant.released). Každá udalosť príde pre danú žiadosť najviac raz, aj keď firma klikne dvakrát; znovu otvorená expirovaná žiadosť dostáva udalosti odznova. GET /api/v1/onboarding-requests/{id} ostáva ako záloha.
Firma vybrala ePošťák na portáli Finančnej správy a žiadosť prešla do action_required. Príde aj vtedy, keď firma vybrala ePošťák skôr, než prišla žiadosť.
onboarding.signed
Firma potvrdila prepojenie na stránke z e-mailu.
onboarding.review_required
Objednávka nie je štandardná alebo ju nebolo možné aktivovať automaticky; stav ostáva activating, kým ju ePošťák neschváli.
onboarding.active
Odosielanie je aktívne; data obsahuje firmId a keyCreation.
onboarding.expired
Firma žiadosť nepotvrdila do 30 dní od poslednej zmeny (stav awaiting_pfs alebo action_required).
onboarding.revoked
Firma prepojenie odvolala.
consent.declined
Vlastník alebo správca firmy žiadosť o súhlas odmietol. nextAction je contact_client: skontaktujte sa s klientom a ak sa dohodnete, vytvorte novú ponuku. data obsahuje declinedAt a reason declined_by_firm.
consent.awaiting_pfs
Firma otvorila žiadosť o súhlas, ale ešte nevybrala ePošťák na portáli Finančnej správy. nextAction je select_provider_on_pfs.
consent.scopes_updated
Firma zmenila oprávnenia aktívneho prepojenia. data obsahuje previousScopes, currentScopes a change (narrowed, widened alebo changed).
webhook.disabled
Iný webhook partnera sme vypli po opakovaných zlyhaniach doručenia (reason consecutive_failures). Na vypnutý endpoint ho nikdy neposielame; data obsahuje subscriptionId, url, failedAttempts a disabledAt.
participant.released
White Label participant, ktorého partner spravoval, už nie je jeho: zákazník prešiel k inému poskytovateľovi (reason provider_changed) alebo bola služba ukončená (reason service_terminated). data obsahuje participantId, customerRef, firmId, dic, peppolId, operationId, status released, reason a releasedAt. Od tohto okamihu vracia GET /api/v1/white-label/participants/{participantId} 404 a volania s X-Firm-Id tejto firmy 403.
Telo webhooku (syntetické hodnoty)
{
"id": "6f1c2d3e-4a5b-5c6d-a7e8-9f0a1b2c3d4e",
"type": "onboarding.pfs_received",
"occurredAt": "2026-09-30T09:15:00.000Z",
"data": {
"requestId": "<REQUEST_ID>",
"customerRef": "erp-klient-42",
"status": "action_required",
"nextAction": "complete_client_activation",
"clientMessage": {
"sk": "Otvorte e-mail od ePošťáka zaslaný na kontakt z portálu Finančnej správy a potvrďte prepojenie.",
"en": "Open the ePošťák e-mail sent to your Financial Administration contact and confirm the connection."
},
"firmId": null,
"keyCreation": null
}
}
Na poradí krokov nezáleží
Ak firma vyberie ePošťák na portáli Finančnej správy skôr, než program pošle žiadosť, odkaz z e-mailu jej povie, že čakáme na žiadosť od jej programu. Keď žiadosť so zhodným DIČ príde, firma dostane e-mail s odkazom na potvrdenie bez nového výberu na portáli a partner dostane onboarding.pfs_received.
Ak autorizácia z portálu medzitým vypršala, žiadosť ostane v stave awaiting_pfs a firma musí ePošťák na portáli vybrať znova.
Čo povedať zákazníkovi
Text môžete skopírovať do programu alebo e-mailu zákazníkovi.
Po slovensky
Na odosielanie e-faktúr cez ePošťák: 1) v programe potvrďte odosielanie cez ePošťák, 2) na portáli Finančnej správy vyberte ePošťák ako poštára na odosielanie (Váš digitálny poštár na príjem faktúr sa nemení. Výber ePošťáka na portáli Finančnej správy používame výlučne na overenie, že ste oprávnený daňový subjekt používať dané Peppol ID.), 3) otvorte e-mail od ePošťáka a potvrďte prepojenie. Žiadny kľúč nikam nevkladáte.
Po anglicky
To send e-invoices through ePošťák: 1) confirm sending through ePošťák in the program, 2) on the Financial Administration portal select ePošťák as your sending provider (Your digital postman for receiving invoices does not change. We use the selection of ePošťák on the Financial Administration portal solely to verify that you are an authorized taxpayer entitled to use the given Peppol ID.), 3) open the e-mail from ePošťák and confirm the connection. You do not insert any key anywhere.
Príklad: technický partner, firma platí, príjem inde
Neistý lookup príjmu: ponúkne sa opakovanie overenia. Výpadok hľadania neblokuje prijatie oznámenia a nespôsobí zápis do SMP.
Duplicitné oznámenie alebo opakované dokončenie: nevzniká druhý záznam ani falošný aktívny stav.
Expirovaný aktivačný odkaz: vyžaduje nové autoritatívne podanie; stratený token sa partnerovi nevracia.
Existujúca firma bez zhodného súhlasu alebo konanie v zastúpení patrí do ručného posúdenia, nie do automatického toku.
Registračné API
Presný kontrakt onboardingových volaní: autentifikácia, telo, idempotencia, stavy a to, čo partner nikdy nedostane.
Neobmedzený partnerský kľúč (nie kľúč viazaný na jednu firmu) s firms:manage.
Aktuálna produkčná zmluva s Enterprise API pre daný typ vzťahu. Samostatné povolenie od ePošťáka netreba.
POST /api/v1/onboarding-requests
Hlavička Idempotency-Key má 8–128 znakov a musí byť stabilná pri opakovaní tej istej požiadavky.
Volanie je bez X-Firm-Id; partner koná ako partner, nie ako klientska firma.
Kľúč partnera musí byť prevádzkovo povolený; samotné oprávnenie firms:manage nestačí.
Odpoveď má kód 202 a rovnaký tvar ako GET: stav, nextAction a clientMessage { sk, en } s textom, ktorý môžete zobraziť firme.
Pole
Povinné
Význam
serviceMode
áno
Pre túto cestu hodnota send_only.
relationshipMode
nie
technical_delegation (predvolené; platí firma) alebo managed_service (platí integrátor).
customerRef
áno
Stabilné označenie klientskej firmy vo vašom ERP.
dic
áno
DIČ firmy, na ktorú sa požiadavka vzťahuje.
contactEmail
áno
Kontakt pre evidenciu; nie je adresát PFS pozvánky ani dôkaz identity.
Odpoveď po vytvorení (syntetické hodnoty)
{
"id": "<REQUEST_ID>",
"customerRef": "erp-klient-42",
"serviceMode": "send_only",
"status": "awaiting_pfs",
"relationshipMode": "technical_delegation",
"payerMode": "firm_billed",
"keyCreation": null,
"firmId": null,
"nextAction": "select_provider_on_pfs",
"clientMessage": {
"sk": "Na portáli Finančnej správy vyberte ePošťák ako poštára na odosielanie. Váš digitálny poštár na príjem faktúr sa nemení. Výber ePošťáka na portáli Finančnej správy používame výlučne na overenie, že ste oprávnený daňový subjekt používať dané Peppol ID.",
"en": "On the Financial Administration portal, select ePošťák as your sending provider. Your digital postman for receiving invoices does not change. We use the selection of ePošťák on the Financial Administration portal solely to verify that you are an authorized taxpayer entitled to use the given Peppol ID."
}
}
GET /api/v1/onboarding-requests/{id}
Vracia stav vašej vlastnej požiadavky; partner nevidí cudzie požiadavky.
Až stav active sprístupní firmId a možnosť vytvorenia kľúča.
Aktivačný odkaz a PFS token sa partnerovi nevracajú nikdy, ani počas čakania na aktiváciu.
Stavy a ďalší krok
status -> nextAction
awaiting_pfs -> select_provider_on_pfs
action_required -> complete_client_activation
activating -> provider_approval
active -> null (firmId and keyCreation available)
revoked -> null
blocked -> null
expired -> null
Expirovaná a odvolaná žiadosť
Žiadosť, ktorú firma nepotvrdí do 30 dní od poslednej zmeny, prejde do stavu expired a partner dostane onboarding.expired.
Expirovanú žiadosť znovu otvoríte novým POST s rovnakým customerRef a rovnakým telom, ale s novým Idempotency-Key. Žiadosť si ponechá svoje id a začne znova v stave awaiting_pfs (alebo rovno active, ak už platné prepojenie existuje).
Odvolanú žiadosť (revoked) znovu otvoriť nemožno. Firmu pripojte novou žiadosťou s novým customerRef.
Webhook pre onboarding: PUT, GET a DELETE /api/v1/onboarding-requests/webhook
Partner má jeden webhook pre onboarding, bez X-Firm-Id. PUT ho vytvorí alebo nahradí (url a events), GET ho prečíta, DELETE ho zruší. PUT a DELETE vyžadujú webhooks:write, GET webhooks:read.
url musí byť https. events je neprázdny zoznam z: onboarding.pfs_received, onboarding.signed, onboarding.review_required, onboarding.active, onboarding.expired, onboarding.revoked.
Tajomstvo na overenie podpisu (secret) sa vráti iba raz: pri vytvorení (201) alebo po opätovnom vytvorení po DELETE. Ďalšie PUT (200) menia url a udalosti a tajomstvo ponechajú.
403 pri vytvorení: kľúč je obmedzený na firmu, chýba firms:manage alebo produkčná zmluva partnera nepokrýva Enterprise API pre zvolený relationshipMode (SEND_ONLY_NOT_AUTHORIZED).
409 ONBOARDING_CONFLICT: customerRef alebo Idempotency-Key už patrí žiadosti s iným telom. Pri opakovaní použite rovnaký Idempotency-Key a rovnaké telo; pre inú firmu použite nový customerRef.
400 INVALID_REQUEST: skontrolujte serviceMode, relationshipMode, dic a kontakt. 400 INVALID_IDEMPOTENCY_KEY: chýba hlavička Idempotency-Key alebo nemá 8–128 znakov.
Správa služby
Firma spravuje svoju send-only službu bez dashboardu: stav, zmluva, faktúry, platba a odvolanie poverenia.
Dokončený send-only onboarding aspoň do stavu active.
Prístup ku kontaktu, ktorý je uvedený pri overení PFS — kód chodí tam.
Ako sa firma prihlási bez účtu
1
Otvorte zabezpečenú stránku správy
Firma používa zabezpečený odkaz z e-mailu, ktorý je viazaný na kontakt z overenia PFS.
2
Zadajte nový jednorazový kód
Kód platí 10 minút, má päť pokusov a relácia trvá 20 minút. Odhlásenie reláciu na serveri ruší.
Čo firma v správe uvidí
Stav služby a partnera, ktorý má k firme prístup.
Vlastnú zmluvu a faktúry podľa schváleného modelu. Pri managed_service je fakturačným zákazníkom integrátor a jeho faktúry sa firme nezobrazujú.
Možnosť odvolať poverenie partnera.
Čo urobí odvolanie partnera
Zablokuje nové aj ešte neodoslané úlohy tohto partnera pre túto firmu.
Nemení SMP, iné poverenia ani záväzky a nestrháva už doručené faktúry.
Odchod a ukončenie send-only služby
Odvolanie partnera zastaví jeho oprávnenie, ale samo osebe neukončuje službu ani fakturáciu. Pri úplnom odchode použite samostatný postup ukončenia. Keďže príjem zostáva u pôvodného poskytovateľa, ukončenie send-only odosielania nemení prijímajúci Participant ID ani SMP záznamy.
Výpoveď alebo žiadosť o ukončenie podľa podpísanej objednávky
Participant prechádza k inému poštárovi
Technický prechod s migračným kódom
Potrebujete iba kópiu vlastných údajov
Prípravný export výslovne označený ako bez ukončenia
Ukončenie white-label spolupráce
Pri štandardnom white-label programe platí od aktivácie počiatočná 12-mesačná viazanosť. Riadnu výpoveď možno doručiť aj počas nej, ale účinná je najskôr jej posledným dňom. Po viazanosti platí 90-dňová výpovedná lehota. Ak podpísaná individuálna objednávka určuje inú lehotu, má prednosť.
Možno ukončiť iba white-label vrstvu a po samostatnom potvrdení pokračovať cez API. Samotné ukončenie značky nemení Participant ID ani SMP/PFS záznamy.
Oprávnená osoba uvedie participanta, nového poskytovateľa, dotknuté služby a požadovaný dátum. Pri presune príjmu sa vydá migračný kód a koordinuje SMP/PFS smerovanie; rovnaký participant sa nesmie zaregistrovať druhýkrát.
Vlastné dokumenty a prílohy, dostupné UBL/XML a PDF reprezentácie.
Stavy, validácie, chyby, časové údaje a dostupné potvrdenia o doručení.
Firemné, schránkové a integračné konfigurácie vrátane webhookov a mapovaní, ale bez hesiel, API kľúčov a iných tajomstiev.
Exportný manifest a oddeliteľné auditné, prevádzkové, support a billing metadáta.
Odchod pri send-only a delegovanom prístupe
Pri send-only sa príjem u pôvodného poskytovateľa nemení, preto ukončenie odosielania samo osebe nevyžaduje migráciu prijímajúceho participanta. Pri technickej delegácii alebo spravovanom integrátorovi najprv odvolajte prístup konkrétneho partnera; ukončenie služby a fakturácie riešte oddelene.
Napíšte z oprávnenej kontaktnej adresy na info@epostak.sk. Uveďte firmu a DIČ alebo Participant ID, dotknutú službu, požadovaný úkon, nového poskytovateľa, ak sa mení, a požadovaný dátum. Prípravný export výslovne označený ako bez ukončenia nie je výpoveďou.
Očakávaný výsledok a chyby
Viete, ktorý krok ruší prístup, ktorý ukončuje službu, ktorý presúva participanta a aké údaje dostanete na výstupe.
Žiadosť neuvádza firmu alebo rozsah: doplňte DIČ alebo Participant ID, službu a požadovaný úkon.
Individuálna objednávka má inú lehotu: rozhoduje podpísaná objednávka a jej verzia.
Odvolanie prístupu
Presne zistíte, čo odvolanie partnerského prístupu zastaví a čo zostáva nedotknuté.
Prehľad, ktoré integračné kľúče a procesy danú firmu používajú.
Čo po odvolaní prestane fungovať
Nové volania tohto partnera pre túto firmu sú odmietnuté.
Úlohy, ktoré ešte neboli odoslané, sa neodošlú.
Čo odvolanie nemení
Peppol registrácia a SMP záznamy zostávajú; odvolanie nie je migrácia ani odregistrácia.
Iné partnerské poverenia a iné firmy nie sú dotknuté.
Už doručené dokumenty sa nestrhávajú späť; doručená faktúra sa nedá vziať z príjemcu.
Keď nejde iba o odvolanie prístupu
Ak firma alebo partner končí službu, mení digitálneho poštára alebo potrebuje export údajov, samotné odvolanie prístupu nestačí. Použite samostatný postup odchodu; ten rozlišuje zmluvné ukončenie, technickú migráciu a prevzatie údajov.