Idempotencia

Ako riešiť idempotenciu pri odosielaní eFaktúry?

Krátka odpoveď

Pri odosielaní používajte idempotency key viazaný na faktúru, verziu XML a pokus odoslania. Ak rovnaký request príde znova po timeoute alebo retry, systém ho má rozpoznať a nevyrobiť druhé odoslanie. Idempotencia je ochrana pred duplicitami.

Key

Jednoznačný kľúč

Viažte ho na doklad a verziu XML.

Retry

Bez duplicity

Opakovaný request nemá vytvoriť druhé odoslanie.

Zmena

Nové XML

Zmenený obsah potrebuje nový záznam a dôvod.

Audit

Výsledok pokusu

Uložte, či šlo o nový alebo opakovaný request.

Podrobné vysvetlenie

Idempotency key môže byť odvodený z interného invoiceId, čísla faktúry, verzie exportu a hash XML. Dôležité je rozhodnúť, čo znamená rovnaký pokus a čo už je nová verzia dokladu. Ak sa zmení XML, má vzniknúť nový kontext a jasný auditný záznam.

Ako to vyplýva zo zákona

Preukázateľný proces musí vedieť odlíšiť opakovaný technický pokus od nového alebo opraveného dokladu. Bez toho hrozí duplicitné doručenie a nesprávne účtovné spracovanie.

Praktické príklady

  • Timeout spôsobí retry s rovnakým key a API vráti pôvodné submissionId.
  • Používateľ klikne odoslať dvakrát, druhý pokus sa označí ako duplicita requestu.
  • Po oprave sumy vznikne nový hash a systém vyžaduje nový schvaľovací krok.

Najčastejšie chyby

  • „Idempotencia je len technický detail.“ Pri faktúrach chráni pred obchodnou duplicitou.
  • „Kľúč môže byť len číslo faktúry.“ Pri verziách a opravách to nemusí stačiť.
  • „Duplicitný request môžem ignorovať bez logu.“ Aj ignorovanie má byť záznam.

Záver

Idempotencia je povinná praktická ochrana pri API odosielaní eFaktúr.

Právny základ

  • Zákon č. 431/2002 Z. z. o účtovníctve
  • Zákon č. 222/2004 Z. z. o DPH
  • Interné pravidlá integrity dokladov

Súvisiace otázky

Nie je to právne poradenstvo. Zdroje: zákon č. 222/2004 Z. z. o DPH, Finančná správa SR eFaktúra FAQ, OpenPeppol BIS Billing 3.0 a interný validačný model eFaktúra centra. Overené 7. 7. 2026.