Kerekítés A Számlázz.hu nem számol a tételadatokból: a nettó, az áfa és a bruttó értéket is a kérésnek kell tartalmaznia, és ha ezek nem stimmelnek, a számla 259–264-es hibával elbukik. A kasszában ezt nem kell kézzel kiszámolnod. Megadod az egységárat és az áfakulcsot, a többit a kassza számolja a hivatalos kerekítési szabályok szerint.
Nettó egységár 4716,67 Ft
Nettó érték 14 150 Ft
Áfa 3820 Ft
Bruttó érték 17 970 Ft calculateInvoiceItem ({ quantity: 3 , grossUnitPrice: 5990 , vat: 27 } )
Nettó vagy bruttó alapon?#
Nettó alapú Bruttó alapú Mező netUnitPricegrossUnitPriceMikor? Vállalkozásnak (B2B), nettó árlistával Magánszemélynek (B2C), webshopban, bruttó árakkal Ami biztosan pontos A nettó érték A bruttó érték, amit a vevő kifizet
Egy tételnél csak az egyiket adhatod meg, a kettő együtt validation hibát ad.
Forintos számla#
Forintos számlán csak a nettó egységár lehet tört szám, a tétel nettó, áfa és bruttó értéke egész.
Nettó alapon a kassza így számol:
nettó érték = nettó egységár × mennyiség, egészre kerekítve,
áfa érték = nettó érték × áfakulcs / 100, egészre kerekítve,
bruttó érték = nettó érték + áfa érték.
Például 3 darab 500 Ft nettó egységárú könyv 27%-os áfával: nettó 1 500 Ft, áfa 405 Ft, bruttó 1 905 Ft.
Bruttó alapon fordítva:
bruttó érték = bruttó egységár × mennyiség, egészre kerekítve,
áfa érték = bruttó érték × áfakulcs / (100 + áfakulcs), egészre kerekítve,
nettó érték = bruttó érték − áfa érték,
a nettó egységárat a kassza visszaszámolja a nettó értékből.
Például 3 darab 500 Ft bruttó egységárú könyv 27%-os áfával: bruttó 1 500 Ft, áfa 318,89 Ft helyett 319 Ft, nettó 1 181 Ft, nettó egységár 393,67 Ft.
Webshop számla bruttó árakkal
Kártyával fizetett rendelés, bruttó egységárak, több áfakulcs, alapbeállítások.
Futtatás a sandboxbanKód Elküldött XML Válasz Konzol
szamla-brutto.ts import { createKassza } from 'kassza'
const kassza = createKassza ({
defaults : {
invoice : {
prefix : 'WEB' ,
seller : { emailReplyTo : 'penzugy@example.hu' , emailSubject : 'Elkészült a számlád' } ,
} ,
} ,
})
const szamla = await kassza . invoices . create ({
orderNumber : 'WEB-58213' ,
paymentMethod : 'bankkártya' ,
paid : true ,
buyer : {
name : 'Szabó Júlia' ,
zip : '6720' ,
city : 'Szeged' ,
address : 'Kárász utca 5.' ,
email : 'julia@example.hu' ,
} ,
items : [
{ name : 'Póló, M' , quantity : 2 , grossUnitPrice : 5_990 , vat : 27 } ,
{ name : 'Szakácskönyv' , grossUnitPrice : 3_500 , vat : 5 } ,
{ name : 'Házhoz szállítás' , grossUnitPrice : 1_490 , vat : 27 } ,
] ,
})
console . log ( szamla . number , 'bruttó:' , szamla . grossTotal , 'hátralék:' , szamla . outstanding )
for ( const tetel of szamla . items ) {
console . log (
` ${ tetel . name } : nettó ${ tetel . netAmount } , áfa ${ tetel . vatAmount } , bruttó ${ tetel . grossAmount } ` ,
)
} Számla létrehozás · action-xmlagentxmlfile <? xml version = "1.0" encoding = "UTF-8" ?>
< xmlszamla xmlns = "http://www.szamlazz.hu/xmlszamla" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://www.szamlazz.hu/xmlszamla https://www.szamlazz.hu/szamla/docs/xsds/agent/xmlszamla.xsd" >
< beallitasok >
< szamlaagentkulcs >••••••••</ szamlaagentkulcs >
< eszamla >false</ eszamla >
< szamlaLetoltes >true</ szamlaLetoltes >
< valaszVerzio >2</ valaszVerzio >
</ beallitasok >
< fejlec >
< keltDatum >2026-09-19</ keltDatum >
< teljesitesDatum >2026-09-19</ teljesitesDatum >
< fizetesiHataridoDatum >2026-09-19</ fizetesiHataridoDatum >
< fizmod >bankkártya</ fizmod >
< penznem >HUF</ penznem >
< szamlaNyelve >hu</ szamlaNyelve >
< rendelesSzam >WEB-58213</ rendelesSzam >
< szamlaszamElotag >WEB</ szamlaszamElotag >
< fizetve >true</ fizetve >
</ fejlec >
< elado >
< emailReplyto >penzugy@example.hu</ emailReplyto >
< emailTargy >Elkészült a számlád</ emailTargy >
</ elado >
< vevo >
< nev >Szabó Júlia</ nev >
< irsz >6720</ irsz >
< telepules >Szeged</ telepules >
< cim >Kárász utca 5.</ cim >
< email >julia@example.hu</ email >
< sendEmail >true</ sendEmail >
</ vevo >
< tetelek >
< tetel >
< megnevezes >Póló, M</ megnevezes >
< mennyiseg >2</ mennyiseg >
< mennyisegiEgyseg >db</ mennyisegiEgyseg >
< nettoEgysegar >4716.5</ nettoEgysegar >
< afakulcs >27</ afakulcs >
< nettoErtek >9433</ nettoErtek >
< afaErtek >2547</ afaErtek >
< bruttoErtek >11980</ bruttoErtek >
</ tetel >
< tetel >
< megnevezes >Szakácskönyv</ megnevezes >
< mennyiseg >1</ mennyiseg >
< mennyisegiEgyseg >db</ mennyisegiEgyseg >
< nettoEgysegar >3333</ nettoEgysegar >
< afakulcs >5</ afakulcs >
< nettoErtek >3333</ nettoErtek >
< afaErtek >167</ afaErtek >
< bruttoErtek >3500</ bruttoErtek >
</ tetel >
< tetel >
< megnevezes >Házhoz szállítás</ megnevezes >
< mennyiseg >1</ mennyiseg >
< mennyisegiEgyseg >db</ mennyisegiEgyseg >
< nettoEgysegar >1173</ nettoEgysegar >
< afakulcs >27</ afakulcs >
< nettoErtek >1173</ nettoErtek >
< afaErtek >317</ afaErtek >
< bruttoErtek >1490</ bruttoErtek >
</ tetel >
</ tetelek >
</ xmlszamla >
Számla létrehozás · válasz, HTTP 200 content-type: application/xml; charset=UTF-8
szlahu_szamlaszam: WEB-2026-1
szlahu_nettovegosszeg: 13939
szlahu_bruttovegosszeg: 16970
szlahu_kintlevoseg: 0
set-cookie: JSESSIONID=ED08664A819044E9151A4774; Path=/szamla; Secure; HttpOnly
<? xml version = "1.0" encoding = "UTF-8" ?>
< xmlszamlavalasz xmlns = "http://www.szamlazz.hu/xmlszamlavalasz" >
< sikeres >true</ sikeres >
< szamlaszam >WEB-2026-1</ szamlaszam >
< szamlanetto >13939</ szamlanetto >
< szamlabrutto >16970</ szamlabrutto >
< kintlevoseg >0</ kintlevoseg >
< pdf >JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5k… (base64 PDF, rövidítve)</ pdf >
</ xmlszamlavalasz >
Konzol WEB-2026-1 bruttó: 16970 hátralék: 0
Póló, M: nettó 9433, áfa 2547, bruttó 11980
Szakácskönyv: nettó 3333, áfa 167, bruttó 3500
Házhoz szállítás: nettó 1173, áfa 317, bruttó 1490
Devizás számla#
Devizás számlán mindhárom érték legfeljebb 2 tizedesjegyre kerekedik, ugyanazzal a sorrenddel, mint forintban.
Nyugta#
Forintos nyugtán a bruttó érték egész, a nettó és az áfa legfeljebb 2 tizedes, és a nettó és az áfa összege pontosan kiadja a bruttót. A részleteket a nyugta szabályai írják le.
Kerekítési mód#
A kassza kereskedelmi kerekítést használ: a fél értékek nulláról elfelé kerekednek (2,5 → 3, −2,5 → −3), és a lebegőpontos pontatlanságot 15 értékes jegyre normalizálja, így például a 1,005 is helyesen 1,01 lesz két tizedesre.
Számolás a kassza nélkül#
A kerekítő függvények külön is elérhetők a kassza/money modulból, például ha a kosárban ugyanazt az összeget akarod mutatni, ami a számlára kerül:
import { calculateInvoiceItem , summarizeItems } from 'kassza/money'
const tetelek = [
calculateInvoiceItem ({ quantity : 2 , grossUnitPrice : 5_990 , vat : 27 }) ,
calculateInvoiceItem ({ grossUnitPrice : 3_500 , vat : 5 }) ,
]
const { grossAmount , byVat } = summarizeItems (tetelek)
A grossAmount a fizetendő végösszeg, a byVat az áfakulcsonkénti bontás.
Lásd még: Pénzszámítás .
Saját összegek#
Ha a tételösszegeket máshonnan kapod, például egy ERP-ből, a netAmount, vatAmount és grossAmount mezőkkel felülírhatod a számolást. Mindhármat meg kell adnod, és a kassza ilyenkor nem ellenőrzi őket, a Számlázz.hu viszont igen.