Prirážky a zľavy

AllowanceCharge v UBL faktúrach: rozdiel medzi úrovňou faktúry a riadku, výpočet DPH a XML príklady.

Prakticky každá organizácia pracuje so zľavami alebo prirážkami na faktúrach. Objemová zľava, prepravné náklady, zľava za skoré objednanie, environmentálne poplatky: to všetko sú sumy, ktoré ovplyvňujú konečný celkový súčet faktúry. V UBL faktúre sa zaznamenávajú cez element AllowanceCharge, a to na dvoch úrovniach. Rozdiel medzi týmito úrovňami je podstatný pre správnosť výpočtu faktúry.

Dve úrovne: faktúra a riadok

UBL pozná prirážky a zľavy na dvoch miestach:

Úroveň faktúry: element AllowanceCharge sa nachádza priamo pod koreňovým elementom faktúry, pred sumami DPH. Faktúrové zľavy znižujú celkovú sumu faktúry. Faktúrové prirážky ju zvyšujú. Sú zahrnuté do výpočtu DPH.

Úroveň riadku: element AllowanceCharge sa nachádza v rámci InvoiceLine. Riadkové zľavy a prirážky sú už spracované v LineExtensionAmount daného riadku. Ovplyvňujú cenu riadku, nie celkový súčet faktúry ako taký.

Rozdiel je jemný, ale dôležitý. Zľava na úrovni faktúry je viditeľná samostatne v celkových sumách faktúry (v AllowanceTotalAmount). Zľava na úrovni riadku je spracovaná v sume riadku a preto neviditeľná v celkových sumách.

AllowanceCharge na úrovni faktúry

Každá faktúrová zľava alebo prirážka obsahuje minimálne tieto elementy:

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Volumekorting Q1 2026</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">150.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>21.00</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>

ChargeIndicator určuje, či ide o prirážku (true) alebo zľavu (false). AllowanceChargeReasonCode je kód zo zoznamu UNCL5189 (pre zľavy) alebo UNCL7161 (pre prirážky). Často používané kódy sú:

KódTypVýznam41ZľavaBonus za predčasnú platbu42ZľavaÚvodná zľava60ZľavaVýrobcovská zľava95ZľavaZľava100ZľavaŠpeciálna dohodaABLPrirážkaBaliace nákladyFCPrirážkaPrepravné nákladyAEWPrirážkaEnvironmentálna prirážka

Tip: Ak žiadny zo štandardných kódov presne nezodpovedá, použite kód 95 (zľava) alebo najrelevantnejší kód prirážky a dôvod opíšte v AllowanceChargeReason.

Vplyv na celkové sumy faktúry

Faktúrové zľavy a prirážky sa premietnu do LegalMonetaryTotal:

<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
  <cbc:AllowanceTotalAmount currencyID="EUR">150.00</cbc:AllowanceTotalAmount>
  <cbc:TaxExclusiveAmount currencyID="EUR">850.00</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="EUR">1028.50</cbc:TaxInclusiveAmount>
  <cbc:PayableAmount currencyID="EUR">1028.50</cbc:PayableAmount>
</cac:LegalMonetaryTotal>

Výpočet: 1 000 (súčet riadkov) mínus 150 (zľava) = 850 bez DPH. Plus 178,50 DPH (21% z 850) = 1 028,50 vrátane DPH.

AllowanceCharge na úrovni riadku

Na úrovni riadku to funguje inak. Zľava alebo prirážka je už spracovaná v LineExtensionAmount. Element AllowanceCharge na riadku slúži ako vysvetlenie:

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="EA">100</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">850.00</cbc:LineExtensionAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Staffelkorting</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">150.00</cbc:Amount>
    <cbc:BaseAmount currencyID="EUR">1000.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
  <cac:Item>
    <cbc:Name>Widget standaard</cbc:Name>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>21.00</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">8.50</cbc:PriceAmount>
  </cac:Price>
</cac:InvoiceLine>

LineExtensionAmount je tu 850 eur: 100 kusov x 10 eur = 1 000 eur, mínus 150 eur množstevná zľava. BaseAmount v AllowanceCharge ukazuje pôvodnú sumu pred zľavou. PriceAmount (8,50) je efektívna cena za kus po zľave.

Pozor: LineExtensionAmount musí byť vždy čistá suma po zľave/prirážke. AllowanceCharge na riadku je informatívny. Neodpočítavajte ho znova od sumy riadku, pretože inak nebude faktúra správna.

Výpočet DPH pri viacerých zľavách

Ak faktúra obsahuje riadkové aj faktúrové zľavy, základy DPH sa vypočítajú nasledovne:

  1. Za každý riadok faktúry: LineExtensionAmount (už vrátane riadkových zliav)
  2. Za každú kategóriu DPH: súčet všetkých súm riadkov v danej kategórii
  3. Mínus faktúrové zľavy v tej istej kategórii
  4. Plus faktúrové prirážky v tej istej kategórii
  5. Výsledok je TaxableAmount v TaxSubtotal

DPH sa počíta z tohto čistého základu. Preto je nevyhnutné, aby každá faktúrová zľava a prirážka mala kategóriu DPH: systém musí vedieť, ku ktorej sadzbe zľava patrí.

Pomerné rozdelenie pri viacerých sadzbách DPH

Keď sa AllowanceCharge na úrovni dokumentu vzťahuje na faktúru s riadkami v rôznych sadzbách DPH (napríklad 9% a 21%), suma zľavy alebo prirážky musí byť pomerným rozdelením rozdelená medzi kategórie DPH. To znamená: úmerne k podielu každej kategórie na celkových zdaniteľných sumách.

Predpokladajme, že faktúra obsahuje 2 000 eur riadkov s 21% DPH a 1 000 eur riadkov s 9% DPH. Faktúrová zľava 300 eur musí byť potom zahrnutá ako dva samostatné elementy AllowanceCharge: 200 eur pri 21% (dve tretiny) a 100 eur pri 9% (jedna tretina). Základ DPH za kategóriu sa potom správne vypočíta.

AllowanceCharge na úrovni ceny

Okrem úrovne faktúry a riadku pozná UBL tretie miesto pre zľavy: v rámci elementu Price riadku faktúry. Tento mechanizmus zobrazuje rozdiel medzi hrubou cenou a čistou jednotkovou cenou.

<cac:Price>
  <cbc:PriceAmount currencyID="EUR">8.50</cbc:PriceAmount>
  <cbc:BaseQuantity unitCode="EA">1</cbc:BaseQuantity>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">1.50</cbc:Amount>
    <cbc:BaseAmount currencyID="EUR">10.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>

V tomto príklade je hrubá cena (BaseAmount) 10,00 eur. Po odpočítaní 1,50 eur zľavy zostáva čistá jednotková cena (PriceAmount) 8,50 eur.

Na úrovni ceny je povolený výhradne ChargeIndicator=false (zľava). Prirážky (ChargeIndicator=true) tu nie sú možné. Okrem toho platí validačné pravidlo BR-28: hrubá cena (BaseAmount) nesmie byť záporná. Ak chcete uplatniť prirážku na jednotkovú cenu, spracujte ju ako AllowanceCharge na úrovni riadku alebo zvýšenú cenu zadajte priamo ako PriceAmount.

Zľava vyššia ako cena položky

Špeciálny prípad nastáva, keď riadková zľava (AllowanceCharge na úrovni riadku) presahuje cenu položky. Peppol validačné pravidlo R120 kontroluje, či LineExtensionAmount = (Quantity × PriceAmount ÷ BaseQuantity) + prirážky − zľavy. R120 výslovne nezakazuje záporné sumy; validácia zlyhá, keď tento výpočet nesedí. Pri zľave vyššej ako cena je veľká pravdepodobnosť, že výpočet nebude správny.

Tento scenár sa v praxi vyskytuje pri dobropisoch s vysokými zľavami. Riešenie: použite čistú kreditnú sumu (rozdiel medzi cenou a zľavou) priamo ako PriceAmount a element AllowanceCharge na riadku vynechajte. Pôvodnú cenu a uplatnenú zľavu môžete pre referenciu uviesť v poli Item/Name alebo v elemente Note na riadku faktúry.

Pozor: Toto riešenie je určené pre situácie, keď zľava presahuje cenu. Pri bežných zľavách, ktoré zostávajú pod cenou, normálne použijete element AllowanceCharge na riadku.

Kombinácia s platobnou zľavou

Platobná zľava (skonto) je niečo úplne iné ako faktúrová zľava. Faktúrová zľava cez AllowanceCharge je nepodmienená a priamo znižuje sumu faktúry. Platobná zľava je podmienená (závislá od platobnej lehoty) a nezapracováva sa do sumy faktúry. Pozrite článok o platobnej zľave pre podrobnosti.

Tip: Ak si nie ste istí, či je Váš AllowanceCharge správne zahrnutý, pošlite faktúru cez bezplatný eConnect Validátor. Ten skontroluje, či sú základy DPH správne vypočítané po odpočítaní zliav a prirážok.


Validujte Vašu faktúru

Súvisiace