Ako generovať správne faktúry Peppol BIS 3.0 z Česka a Slovenska

Typy dokladov, VS/KS/ŠS, odpočet zálohy a rozdiel medzi dobropisom a ťarchopisom – ako správne namapovať české a slovenské účtovné pojmy do formátu Peppol BIS Billing 3.0.

Najčastejší dôvod, prečo faktúra z českého alebo slovenského systému neprejde na strane príjemcu správne, nie je chybný formát XML – je to nesúlad medzi tým, ako fakturačný softvér chápe pojmy ako dobropis, ťarchopis alebo zálohová faktúra, a tým, ako ich vie vyjadriť norma EN 16931 a formát Peppol BIS Billing 3.0. Ten pozná len dva typy dokladu, Invoice a CreditNote, a pevný číselník typov dokladu – takže každý lokálny pojem sa musí namapovať správne, inak vyjde suma, ktorú má zákazník zaplatiť, nesprávne.

Zhrnuli sme, ako tieto veci riešime na našom accesspointe, aby si to mohli integrátori a účtovný softvér skontrolovať oproti vlastnej implementácii.

Typy dokladov: nepoužívajte všade kód 380

BT-3 (cbc:InvoiceTypeCode, prípadne cbc:CreditNoteTypeCode) hovorí príjemcovi, o aký doklad ide. Český aj slovenský účtovný softvér rozlišuje viac typov dokladov, než koľko ich bežne vidíme na faktúrach posielaných cez Peppol – a predvolený kód 380 pre všetko túto informáciu stráca.

DokladKoreňový element UBLKód BT-3
Faktúra – daňový dokladInvoice380
Dobropis (opravný daňový doklad, znižuje sumu)CreditNote381
Opravný daňový doklad zvyšujúci sumu (debetná nóta)Invoice384
Zálohová faktúra / nedaňový zálohový list (výzva na platbu, bez DPH)Invoice386
Daňová faktúra k prijatej platbeInvoice388
Zjednodušený daňový dokladInvoice380

Jedna vec integrátorov dosť často prekvapí: BIS 3.0 nemá vlastný typ dokladu pre opravný doklad, ktorý sumu zvyšuje. Musí sa poslať ako Invoice s kódom 384 a odkazom na pôvodný doklad cez cac:BillingReference – nie ako CreditNote so záporným tovarom, ktorú viaceré prijímajúce systémy odmietnu alebo spracujú nesprávne.

Platobné symboly: VS, KS a ŠS

Banky aj účtovný softvér v Česku a na Slovensku párujú platby podľa troch symbolov, pre ktoré UBL nemá vlastné pole:

  • VS (variabilný symbol) – identifikuje, ku ktorému dokladu sa platba vzťahuje, najčastejšie číslo faktúry.
  • KS (konštantný symbol) – štvormiestny kód udávajúci charakter platby.
  • ŠS (špecifický symbol) – desaťmiestny doplnkový údaj; banky ho čoraz menej podporujú (SEPA preň nemá pole), ale viacerí príjemcovia ho stále očakávajú.

BT-83 (cbc:PaymentID) je v EN 16931 definované priamo ako „hodnota spájajúca platbu s faktúrou“ – presne to, čo má samotný VS robiť. Keď máme len VS, patrí preto ako holá hodnota priamo tam, bez prefixu a bez cac:PaymentMeans/cbc:InstructionID:

1
2
3
4
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>42</cbc:PaymentMeansCode>
  <cbc:PaymentID>176692026</cbc:PaymentID>
</cac:PaymentMeans>

Štruktúrovanú kombináciu VS:…;KS:…;SS:… v InstructionID (a ako čitateľnú zálohu aj v PaymentID v tvare VS…/KS…/SS…) používame až vtedy, keď treba zakódovať viac než jeden symbol naraz – teda hneď ako sa objaví KS alebo ŠS:

1
2
3
4
5
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>42</cbc:PaymentMeansCode>
  <cbc:InstructionID>VS:176692026;KS:0008;SS:1234567890</cbc:InstructionID>
  <cbc:PaymentID>VS176692026/KS0008/SS1234567890</cbc:PaymentID>
</cac:PaymentMeans>

Najčastejšia chyba je vynechanie VS – platba sa potom na účte príjemcu objaví, ale nespáruje sa s faktúrou, ktorá ju vyvolala. Druhá najčastejšia je obaľovanie samotného VS do prefixu VS: a InstructionID, aj keď žiadny KS ani ŠS nie je k dispozícii – pre bežného (nie českého/slovenského) príjemcu je to len šum v poli, kde by mala byť čistá referencia.

Zálohy a ich odpočet

Štandardný postup má tri kroky: zálohová faktúra (výzva na platbu, kód 386, nie je daňovým dokladom) → po prijatí platby daňová faktúra k prijatej platbe (kód 388, DPH treba priznať do 15 dní od prijatia úhrady) → po dodaní zúčtovacia faktúra, ktorá musí každú prijatú a zdanenú zálohu odpočítať.

Tento odpočet je v Peppole pole BT-113, cbc:PrepaidAmount v cac:LegalMonetaryTotal, a musí sa premietnuť do cbc:PayableAmount podľa štandardného vzorca (BR-CO-16):

PayableAmount = TaxInclusiveAmount − PrepaidAmount + PayableRoundingAmount

Príklad: tovar za 2 500 € + 21 % DPH (3 025 € spolu). Na zálohu 1 000 € + DPH (1 210 €) už bol vystavený a zaplatený daňový doklad. Zúčtovacia faktúra potom musí obsahovať:

1
2
3
4
5
<cac:LegalMonetaryTotal>
  <cbc:TaxInclusiveAmount currencyID="EUR">3025.00</cbc:TaxInclusiveAmount>
  <cbc:PrepaidAmount currencyID="EUR">1210.00</cbc:PrepaidAmount>
  <cbc:PayableAmount currencyID="EUR">1815.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>

Bez PrepaidAmount faktúra prejde validáciou podľa EN 16931 v poriadku – len bude od zákazníka chcieť zaplatiť celých 3 025 € znova. Ak zdrojový systém zálohy eviduje (ISDOC to robí v elementoch TaxedDeposits/NonTaxedDeposits), je potrebné ich súčet premietnuť do BT-113 pri každom exporte, nielen ich uviesť ako odkaz na doklad.

Dobropis, alebo opravný doklad zvyšujúci sumu?

Oba pojmy označujú opravný doklad, ale v opačnom smere:

  • Dobropis znižuje dlžnú sumu – posiela sa ako CreditNote, kód 381.
  • Opravný doklad zvyšujúci sumu (v Česku známy ako vrubopis, na Slovensku bežnejšie debetná nóta) dlžnú sumu zvyšuje – posiela sa ako Invoice, kód 384, pretože BIS 3.0 nemá vlastný typ dokladu DebitNote.

Oba by mali niesť cac:BillingReference s odkazom na ID pôvodného dokladu, aby ho účtovný systém na strane príjemcu dokázal spárovať s opravovanou faktúrou, a nie ho spracoval ako samostatný doklad.

VAT Category Code a VATEX: prečo nulová DPH nestačí

BT-118 (cbc:ID v cac:TaxCategory) určuje daňový režim dodania – nie to, koľko je na faktúre DPH. Nulová suma DPH sama osebe neznamená kategóriu Z: môže ísť o oslobodené plnenie (E), intrakomunitárne dodanie (K), vývoz (G), prenesenie daňovej povinnosti (AE) alebo plnenie mimo predmetu DPH (O). Kategóriu Z použite len tam, kde zákon skutočne ustanovuje nulovú sadzbu.

Pri kategóriách iných než S a Z je potrebné uviesť dôvod – buď kódom VATEX (BT-121, cbc:TaxExemptionReasonCode), alebo textom (BT-120, cbc:TaxExemptionReason), prípadne oboma. Podľa FAQ Finančnej správy SR (august 2026) sa odporúča uvádzať primárne BT-121 a BT-120 ako doplňujúci text. Základné mapovanie pre slovenské podmienky:

RežimVAT CategoryVATEX
Základná sadzba (23 %, 19 %, 5 %)S–
Oslobodené dodanie (čl. 132 smernice, napr. zdravotná starostlivosť, vzdelávanie, poisťovacie a finančné služby)EVATEX-EU-132-1A až -1Q, VATEX-EU-135-1
Intrakomunitárne dodanieKVATEX-EU-IC
Vývoz mimo EÚGVATEX-EU-G
Prenesenie daňovej povinnosti (tuzemský reverse charge, § 69)AEVATEX-EU-AE
Mimo predmetu DPHOVATEX-EU-O

VATEX je európsky/Peppol číselník, nie slovenský legislatívny – nie ku každému ustanoveniu zákona o DPH preto existuje samostatný kód. Tam, kde si nie ste istí konkrétnym dôvodom v rámci čl. 132, je lepšie použiť všeobecný VATEX-EU-132 než hádať konkrétny podkód.

Náš converter z ISDOC do BIS 3.0 (a späť) toto už rozlišuje: ISDOC nemá vlastný číselník kategórií, ale má štruktúrované polia LocalReverseCharge (riadok v režime prenesenia daňovej povinnosti) a VATApplicable (riadok mimo predmetu DPH) – tie sa teraz správne prekladajú na AE/O a VATEX kód, namiesto toho, aby obe skončili ako bežná sadzba alebo všeobecné “oslobodené”.

SK CIUS a termín 1. januára 2027

Slovenská Finančná správa definuje nad rámec EN 16931 / BIS 3.0 vlastnú sadu povinných polí (SK CIUS): dátum dodania/vzniku daňovej povinnosti (BT-7), dátum splatnosti (BT-9), IČO a IČ DPH dodávateľa (BT-30, BT-31), IČ DPH odberateľa (BT-48), kompletnú adresu oboch strán (BT-35/37/38, BT-50/52/53), sadzbu DPH (BT-119) a pri oslobodených plneniach aj dôvod oslobodenia (BT-120/121).

Elektronická fakturácia cez Peppol je na Slovensku dobrovoľná od druhého štvrťroka 2026 a od 1. januára 2027 povinná pre všetkých platiteľov DPH, doručovaná cez certifikované accesspointy (“digitálnych poštárov”). Viac sme písali v článku Slovensko vyriešilo elektronickú fakturáciu za nás a v odpovediach na časté otázky k povinnej e-fakturácii na Slovensku.

Zhrnutie

Pre faktúry smerujúce do Česka a na Slovensko platí, že samotná validita podľa EN 16931 nestačí – schéma validáciu prejde aj doklad so zlým typom, chýbajúcim odpočtom zálohy, bez VS alebo so zlou kategóriou DPH. Kontrolný zoznam: opravné doklady majú správny typ (dobropis ako CreditNote/381, doklad zvyšujúci sumu ako Invoice/384), zálohy sa odpočítavajú cez PrepaidAmount, platobné symboly sú v PaymentID/InstructionID, kategória DPH zodpovedá skutočnému daňovému režimu (nie len výške DPH) a nesie zodpovedajúci VATEX kód, a slovenské faktúry nesú všetky polia podľa SK CIUS. Presne toto pri generovaní a validácii faktúr na našom accesspointe strážime automaticky.

Zdroje: ISDOC – špecifikácia formátu, Finančná správa SR – e-faktúra, Peppol BIS Billing 3.0

Autor článku:

Petr Ferschmann

Petr Ferschmann

CEO Dativery s.r.o.