Stavy
Stavové udalosti a stavy vo fronte.
- V sandboxeštruktúra udalostí
- Zatiaľ nie v sandboxestavy sietí
Jednoducho povedané
Každá faktúra má stav, napríklad vo fronte alebo odmietnutá, a históriu udalostí, ktorá hovorí, čo sa s ňou stalo. Takto klient alebo partner zistí, či faktúra prešla. Hostovaný sandbox zatiaľ neobsahuje žiadne prístupové údaje k sieti, takže udalosti, ktoré pochádzajú z napojenia na krajinu, sa objavia až po pripojení kanála.
Faktúra má dva druhy stavu. Stavové udalosti hovoria, čo sa s ňou stalo. Stav vo fronte hovorí, kde je teraz.
Stav vo fronte
GET /invoices/{id} vráti stav.
| Stav | Význam |
|---|---|
received | Faktúra bola prijatá na vstupe. |
validated | Faktúra prešla všetkými kontrolami. |
validation_failed | Oficiálne pravidlá dokument odmietli. Ide do zoznamu na riešenie. |
source_error | Údaje z ERP sa nedali prečítať. |
queued | Prijatá a čaká. |
submitting | Odoslanie sa pokúsilo a jeho odpoveď sa stratila, takže faktúru môže mať kanál. Worker ju vyrieši ako submitted alebo dead_letter. |
submitted | Kanál faktúru má. |
ready | Konečný stav pre Nemecko. XRechnung alebo ZUGFeRD je skontrolovaný a uložený, aby ho doručil partner. Nič sa neodoslalo. |
accepted | Kanál ju akceptoval. |
delivered | Faktúra sa dostala na stranu kupujúceho. |
rejected | Kanál ju definitívne odmietol. Ide do zoznamu na riešenie. |
dead_letter | Dočasné zlyhania vyčerpali opakované pokusy. Ide do zoznamu na riešenie. |
cancelled | Zastavená pred podaním (pozri zrušenie). |
queued a submitting sú interné kroky medzi validated a submitted a žiadna stavová udalosť ich nehlási.
Stavové udalosti
Všetky kanály používajú rovnakú štruktúru udalostí. GET /invoices/{id}/events ich vracia a webhook doručuje rovnaké telo (pozri webhooky).
| Stav | Význam |
|---|---|
received | Faktúra bola prijatá na vstupe. |
validated | Faktúra prešla všetkými kontrolami. |
source_error | Údaje z ERP sa nedali prečítať. Obsahuje errors. |
validation_failed | Kontrola zlyhala. Obsahuje errors. |
submitted | Kanál faktúru má. |
accepted | Kanál ju akceptoval. Obsahuje legal_id, vlastnú referenciu kanála. |
rejected | Kanál ju odmietol. Obsahuje errors. |
delivered | Faktúra sa dostala na stranu kupujúceho. |
buyer_status | Kupujúci odpovedal. buyer_status je jeden z týchto: acknowledged, in_process, under_query, conditionally_accepted, rejected, approved, disputed alebo paid. |
Polia v každej udalosti: event_id, sequence, occurred_at, invoice_ref, invoice_number, country_route, environment, status a document_sha256. Niektoré udalosti pridávajú legal_id, buyer_status, errors (rovnaké položky ako zistenie zo skúšobného behu) a route, ktoré obsahuje submission_id kanála a jeho natívny stav v raw.
Tip
Udalosti zoraďujte podľa sequence, nie podľa času.
Schéma vynucuje tri pravidlá: accepted obsahuje legal_id, tri stavy zlyhania obsahujú errors a buyer_status obsahuje buyer_status.
Ktoré udalosti sa vyskytujú
V sandboxesandboxVstup zapíše received, so sequence 1. Služba potom spustí validátory kanála a zapíše validated, alebo validation_failed, keď kontrola zlyhá. Potom každý posun faktúry zapíše jednu udalosť: submitted, accepted, delivered alebo rejected. Pri Nemecku nenasleduje po validated nič, pretože faktúra končí v stave ready. Príklad nájdete v zaznamenaných udalostiach.
V hostovanom sandboxe zatiaľ nie sú uložené žiadne prístupové údaje k sieti. Kanál, ktorý ich potrebuje, sa dostane do stavu submitted, bez toho, aby sa čokoľvek odoslalo, a Nemecko končí v stave ready. V produkcii kanál bez prístupových údajov zopakuje pokusy a potom faktúru presunie do dead-letter.
Udalosti, ktoré pochádzajú zo siete (accepted, delivered a buyer_status), potrebujú pripojený kanál. Mapovanie vlastných stavov každej siete je vytvorené a otestované a prebehlo voči testovacím systémom KSeF, prístupového bodu Peppol a francúzskej platformy. V hostovanom sandboxe zatiaľ nie je pripojené.
Konečný stav podľa kanála
Zatiaľ nie v sandboxesiete| Kanál | Konečný stav | Čo obsahuje | Zlyhanie |
|---|---|---|---|
PL-KSEF | accepted | Číslo KSeF ako legal_id. | rejected s kódom KSeF, napríklad KSEF-440 pri duplikáte. |
RO-EFACTURA | accepted, keď je stav v ANAF ok | Index nahrávania ANAF. | rejected, keď je stav nok, s chybovým kódom ANAF. Nahrávanie sleduje dokumentáciu ANAF a nebolo vyskúšané; bežali iba jeho validátory. |
PEPPOL | delivered | ID dokumentu u prístupového bodu. | rejected, keď ju prístupový bod odmietne alebo nahlási zlyhanie. |
FR-PA | delivered, potom udalosti buyer_status | ID faktúry na platforme. Francúzsky kód, jeho označenie a prípadná poznámka sa prenášajú v route.raw. | rejected, keď ju platforma odmietne, napríklad fr:213. |
DE-XRECHNUNG | Žiadny úrad neodpovedá. Výsledkom je vytvorený a skontrolovaný súbor. | Doručenie závisí od zvoleného spôsobu: Peppol alebo e-mail. | 422 na vstupe. Žiadna odpoveď siete nenasleduje. |
- Dočasné chyby siete sa nikdy nestanú udalosťami. Opakujú sa (pozri limity).
- Francúzsky stavový kód, ktorý služba nemapuje, nevytvorí udalosť a vyvolá upozornenie, takže sa nestratí.
- Kupujúci, ku ktorému sa sieť nedostane. Pri Peppol služba kontroluje kód schémy v identifikátore kupujúceho, nie to, či je kupujúci registrovaný. Prístupový bod môže kupujúceho, ktorý nie je v sieti Peppol, nahlásiť ako nedosiahnuteľného a mapovanie to zmení na
rejectedsEI-PEPPOL-NO-ROUTE. Vychádza to z dokumentácie prístupového bodu a na ostrom prístupovom bode sa to nepotvrdilo. Francúzsky kupujúci bez adresy na platforme by mal skončiť zlyhaním, nie doručením; ani to sa nepotvrdilo.