Odosielanie bez presunu príjmu
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ľúč.
Predpoklady
- 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. 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. 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. 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. 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. 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 a webhook.disabled). 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.
| Udalosť | Kedy príde |
|---|---|
| onboarding.pfs_received | 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. |
{
"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.
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.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
curl -X POST "https://epostak.sk/api/v1/onboarding-requests" \
-H "Authorization: Bearer <PARTNERSKY_JWT>" \
-H "Idempotency-Key: demo-send-only-2026-09-20-0001" \
-H "Content-Type: application/json" \
-d '{
"serviceMode": "send_only",
"relationshipMode": "technical_delegation",
"customerRef": "erp-klient-42",
"dic": "2120000000",
"contactEmail": "kontakt@example.test"
}'curl "https://epostak.sk/api/v1/onboarding-requests/<REQUEST_ID>" \
-H "Authorization: Bearer <PARTNERSKY_JWT>"curl -X POST "https://epostak.sk/api/v1/integrator/keys" \
-H "Authorization: Bearer <PARTNERSKY_JWT>" \
-H "Content-Type: application/json" \
-d '{
"scopedFirmId": "<FIRMID_Z_ONBOARDINGU>",
"scopes": ["documents:send", "documents:read"]
}'Keď má firmu oslovených viac partnerov
- Zhoda DIČ neudeľuje súhlas. Klient výslovne vyberá konkrétneho partnera a rozsah.
- Jediná požiadavka môže byť predvybraná a viditeľná, ale predvýber nie je súhlas.
- Partner nikdy nevidí požiadavky ani stav iných partnerov.
Očakávaný výsledok
Firma má aktívne send-only oprávnenie, partner má kľúč viazaný na jej firmId a príjem zostal nezmenený.
Keď to nefunguje
- 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.