# Stavy dokumentu

URL: https://postman.slovakodata.com/developers/stavy/
Aktualizované: 2026-10-01

Životný cyklus odchádzajúcej a prichádzajúcej faktúry a čo robiť pri jednotlivých stavoch.

Každý prechod vieme poslať ako webhook.

### Odchádzajúca faktúra

<div class="lifecycle">
  <span class="lc">PENDING</span><span class="lc-arr">→</span>
  <span class="lc">VALIDATING</span><span class="lc-arr">→</span>
  <span class="lc">READY</span><span class="lc-arr">→</span>
  <span class="lc">SENDING</span><span class="lc-arr">→</span>
  <span class="lc">DELIVERED</span><span class="lc-arr">→</span>
  <span class="lc lc-final">ACCEPTED</span>
</div>

`READY` znamená, že faktúra prešla validáciou a čaká na odoslanie. `SENDING`
nastavíme tesne pred odoslaním cez AS4 — od tej chvíle už faktúru zrušiť nemožno.

Po odoslaní rozlišujeme dve potvrdenia od prístupového bodu odberateľa:

| Stav | Potvrdenie | Čo znamená |
|---|---|---|
| `DELIVERED` | kladné AS4 potvrdenie o prevzatí (receipt) | Prístupový bod odberateľa správu prijal. Faktúra je **odoslaná** do jeho prístupového bodu, ten ju však ešte nespracoval ani nevalidoval. Kredit je stále len rezervovaný. |
| `ACCEPTED` | kladná MLS správa | Prístupový bod odberateľa faktúru spracoval — faktúra je **doručená** v zmysle Peppol BIS. Vtedy sa odpočíta rezervovaný kredit. |

`ACCEPTED` potvrdzuje doručenie do prístupového bodu odberateľa, nie obchodné
prijatie faktúry odberateľom — to Peppol nesleduje. Záporná MLS správa presunie
faktúru z `DELIVERED` do `REJECTED` a rezervácia kreditu sa uvoľní. Ak MLS správa
nedorazí do 25 minút od odoslania, faktúra prejde do `UNCONFIRMED` a kredit sa
odpočíta (viď nižšie).

Daňové hlásenie beží súbežne a stav odchádzajúcej faktúry cez Peppol
neovplyvňuje — ak ho finančná správa odmietne, faktúra zostane `ACCEPTED`
a hlásenie sa pošle znova.

### Domáci tok mimo Peppolu

<div class="lifecycle">
  <span class="lc">PENDING</span><span class="lc-arr">→</span>
  <span class="lc">VALIDATING</span><span class="lc-arr">→</span>
  <span class="lc">READY</span><span class="lc-arr">→</span>
  <span class="lc lc-final">DELIVERED_NON_PEPPOL</span>
</div>

Pre odberateľa `0245:9970300001` (domáca náhrada mimo siete Peppol) sa
dokument cez AS4 vôbec neodosiela — ide iba daňové hlásenie na finančnú
správu. Po jeho prijatí faktúra prejde rovno do `DELIVERED_NON_PEPPOL` a
kredit sa odpočíta okamžite, bez čakania na doručenie cez Peppol.

### Prichádzajúca faktúra

<div class="lifecycle">
  <span class="lc">RECEIVED</span><span class="lc-arr">→</span>
  <span class="lc lc-final">ACKNOWLEDGED</span>
</div>

Prijatie do systému nastaví `RECEIVED` a v tomto stave prijatá faktúra zostáva
až do prevzatia — validácia jej stav nemení. Ak si odosielateľ kladné MLS
potvrdenie vyžiadal, posielame mu ho hneď po uložení dokumentu, nezávisle od
toho, ako validácia dopadne; prijatý dokument neodmietame ani pri fatálnych
nálezoch. Výsledok validácie je informatívny a prečítate si ho cez
`GET /api/v1/invoices/{id}/validation` — viď
[Validácia](/developers/validacia/). `ACKNOWLEDGED` nenastáva automaticky —
nastaví ho až explicitné prevzatie: volanie
`POST /sapi/document/receive/{id}/acknowledge` z vášho systému, alebo tlačidlo
„Potvrdiť prijatie" v portáli. Obe cesty sú idempotentné a zapisujú čas prvého
prevzatia.

### Neúspešné konce

<div class="lifecycle">
  <span class="lc lc-fail">VALIDATION_FAILED</span>
  <span class="lc lc-fail">UNDELIVERABLE</span>
  <span class="lc lc-fail">FAILED</span>
  <span class="lc lc-warn">UNCONFIRMED</span>
  <span class="lc lc-fail">REJECTED</span>
  <span class="lc">CANCELLED</span>
</div>

| Stav | Čo sa stalo a čo s tým |
|---|---|
| `VALIDATION_FAILED` | Stav, ktorý dnešný tok faktúre nenastavuje; zostáva v zozname možných hodnôt. Prijatý dokument, ktorý neprejde validáciou, sa neodmieta — zostáva v `RECEIVED`, odosielateľ dostane kladnú MLS správu (ak si ju vyžiadal) a nálezy nájdete vo výsledku validácie; daňové hlásenie sa preň negeneruje. Vaša vlastná odchádzajúca faktúra, ktorá neprejde validáciou, skončí ako `REJECTED` nižšie. |
| `UNDELIVERABLE` | Príjemcu sa nepodarilo nájsť v smerovacom registri (SMP). Odoslanie sme trikrát zopakovali (5 s, 30 s, 15 min) a potom sme ho vzdali; rezervovaný kredit sa vrátil. Overte si odberateľovo Peppol ID — najčastejšou príčinou je preklep alebo firma, ktorá do siete Peppol ešte nevstúpila. |
| `FAILED` | Odberateľa sme našli, ale samotný prenos zlyhal — jeho prístupový bod bol nedostupný alebo odmietol spojenie. Rovnaké tri pokusy, rovnaké vrátenie kreditu. Na rozdiel od `UNDELIVERABLE` nie je chyba na vašej strane: skúste faktúru poslať znova s novým idempotenčným kľúčom neskôr, a ak sa to opakuje, ozvite sa podpore. |
| `UNCONFIRMED` | Prístupový bod odberateľa správu prijal (AS4 receipt), ale MLS správa nedorazila do 25 minút od odoslania. Nie je to zlyhanie odoslania — faktúra je s najväčšou pravdepodobnosťou doručená, len to nevieme potvrdiť. Kredit je odpočítaný. Stav nie je konečný: ak MLS správa dorazí neskôr, faktúra ešte prejde do `ACCEPTED` alebo `REJECTED`, kredit sa už však nemení. Ak protistrana tvrdí, že faktúru nemá, ozvite sa podpore. |
| `REJECTED` | Vaša odchádzajúca faktúra vôbec neprešla validáciou a do siete sa nedostala, alebo ju prístupový bod odberateľa po prevzatí (`DELIVERED`) odmietol zápornou MLS správou. Pri príjemcovi mimo siete Peppol nastáva aj vtedy, keď daňové hlásenie odmietne finančná správa. Ak je faktúra prevzatá cez Peppol a zamietne sa len daňové hlásenie, stav zostáva `ACCEPTED` a hlásenie sa posiela znova. Rezervovaný kredit sa uvoľní. Pri validácii opravte XML a pošlite ho znova s novým idempotenčným kľúčom; pri obchodnom odmietnutí je technicky všetko v poriadku, riešte to s protistranou. |
| `CANCELLED` | Zrušili ste ju sami. API zrušenie prijme v stave `PENDING`, `VALIDATING` alebo `READY`; od `SENDING` odpovie `409` a faktúra pokračuje ďalej. Zrušená faktúra už cez AS4 neodíde. Pri zrušení v `READY` však mohlo byť daňové hlásenie už vygenerované a nahlásené finančnej správe — zrušenie ho nestiahne. Pri príjemcovi mimo siete Peppol môže prijatie takého hlásenia stav `CANCELLED` ešte prepísať na `DELIVERED_NON_PEPPOL`. Portál preto zrušenie ponúka len v stave `PENDING` a `VALIDATING`. |
