Ugrás a tartalomra
kassza

Tételösszegek és kerekítés

Forintos nyugtán szigorúbbak a tételösszegek szabályai, mint a számlán. Forintosnak számít a nyugta, ha a currency üres (ez az alapérték), 'HUF' vagy 'Ft'. Ilyenkor:

  • a bruttó érték egész szám, mert a nyugtát egész forintban fizetik ki,
  • a nettó és az áfa értéke legfeljebb 2 tizedesjegy lehet,
  • a nettó és az áfa összegének tűrés nélkül ki kell adnia a bruttót, a Számlázz.hu kerekítés nélkül hasonlít,
  • a nettó egységár × mennyiség legfeljebb 2 Ft-tal térhet el a nettó értéktől, a nettó × áfakulcs / 100 pedig az áfa értéktől.

Ezt nem kell kézzel kiszámolnod. Megadod a grossUnitPrice vagy a netUnitPrice mezőt és az áfakulcsot, a kassza pedig a nyugtára érvényes szabályokkal számolja ki a nettó, az áfa és a bruttó értéket.

Bizonylat
Az ár alapja
Pénznem
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 })

A kalkulátorban a Bizonylat kapcsolót állítsd Nyugtára, így ugyanazt látod, ami a nyugtára kerül.

Bruttó alapon#

Nyugtánál ez a gyakoribb eset, mert a vevő bruttó árat fizet.

  1. bruttó érték = bruttó egységár × mennyiség, egészre kerekítve,
  2. áfa érték = bruttó érték × áfakulcs / (100 + áfakulcs), 2 tizedesre kerekítve,
  3. nettó érték = bruttó érték − áfa érték,
  4. a nettó egységárat a kassza visszaszámolja: a legkevesebb tizedesjegyű (legfeljebb 6) értéket választja, amely a mennyiséggel szorozva kiadja a nettó értéket.

Például 3 darab 890 Ft-os kávé 27%-os áfával: bruttó 2 670 Ft, áfa 567,64 Ft, nettó 2 102,36 Ft, nettó egységár 700,787 Ft. Ugyanez számlán 568 Ft áfa és 2 102 Ft nettó lenne, mert ott a nettó és az áfa is egész.

Tört bruttó egységárnál a bruttó érték egészre kerekedik: 199,50 Ft-ból 200 Ft lesz, 42,52 Ft áfával és 157,48 Ft nettóval.

Nyugta kiállítása

Pénztári nyugta hívásazonosítóval, két áfakulccsal, alapbeállításokkal.

Futtatás a sandboxban
nyugta.ts
import {  } from 'kassza'

const  = ({
  : { : { : 'NYGT', : 'készpénz' } },
})

const  = await ..({
  : 'PENZTAR-2026-0001',
  : 'PENZTAR-2026-0001',
  : [
    { : 'Kávé', : 2, : 890, : 27 },
    { : 'Kifli', : 250, : 5 },
  ],
})

.(., ., .)
.(.)
.(
  ..(
    () => `${.}: ${.} + ${.} = ${.}`,
  ),
)

Nettó alapon#

Mivel a bruttónak nettó alapon is egésznek kell lennie, a sorrend más, mint a számlán:

  1. nettó érték = nettó egységár × mennyiség, 2 tizedesre kerekítve,
  2. bruttó érték = nettó érték × (1 + áfakulcs / 100), egészre kerekítve,
  3. áfa érték = bruttó érték − nettó érték.

Például 3 darab 99,99 Ft nettó egységárú tétel 27%-os áfával: nettó 299,97 Ft, bruttó 380,9619 helyett 381 Ft, áfa 81,03 Ft. Az áfa így nem pontosan a nettó 27%-a (80,99 Ft), de a 2 Ft-os tűrésen belül marad, és a nettó és az áfa összege pontosan 381.

Devizás nyugta#

A fenti forintos szabályok devizás nyugtára nem vonatkoznak. Devizában a kassza a nettó, az áfa és a bruttó értéket is legfeljebb 2 tizedesre kerekíti, ugyanúgy, mint a devizás számlán.

Ellenőrzés küldés előtt#

Forintos nyugtánál a kassza a kérés elküldése előtt ellenőrzi a tételösszegeket. Ha valami nem stimmel, validation kategóriájú SzamlazzError-t dob, a kérés el sem jut a Számlázz.hu-hoz. A hibaüzenet megnevezi a tételt, és zárójelben a megfelelő hibakódot:

Kód az üzenetbenMi a hiba
261A nettó és az áfa összege nem pontosan a bruttó
363A bruttó nem egész szám
364A nettó 2-nél több tizedesjegyet tartalmaz
365Az áfa 2-nél több tizedesjegyet tartalmaz
259A nettó egységár × mennyiség 2 Ft-nál többel eltér a nettótól
260Az áfa 2 Ft-nál többel eltér a nettó × áfakulcs / 100 értéktől

A Számlázz.hu a 261-es és a 363–365-ös kódot adja vissza, ha ilyen tétel mégis eljut hozzá. Lásd még: Hibakezelés.

Saját összegek#

Ha a tételösszegeket máshonnan kapod, a netAmount, vatAmount és grossAmount mezővel felülírhatod a számolást. Mindhármat meg kell adnod. A számlával ellentétben forintos nyugtán a kassza ezeket is ellenőrzi, ezért már kerekített értékeket adj át:

items: [
  { name: 'Ajándékkártya', vat: 27, netAmount: 787.4, vatAmount: 212.6, grossAmount: 1_000 },
]

Egy másik rendszerből változtatás nélkül átvett, kerekítetlen érték, például a netAmount: 787.40157480315, 364-es hivatkozású validation hibát ad, mert a nettó 2-nél több tizedesjegyet tartalmaz.

Áfakulcsok nyugtán#

Nyugtán a számlánál használható összes áfakulcs megadható, lásd Áfakulcsok. Ezeken felül a kassza négy olyan kódot is elfogad, amely csak nyugtán használható:

vatSzámolás
'ÁKK'0%-os kulcsként
'MAA'0%-os kulcsként
'EU'0%-os kulcsként
'EUK'0%-os kulcsként

A kód változatlanul kerül a kérés afakulcs mezőjébe. TypeScriptben a nyugtatételek vat mezőjének típusa a ReceiptVatRate, amely ezt a négy kódot is tartalmazza.

Számolás a kassza nélkül#

A nyugta kerekítése külön is elérhető a kassza/money modulból, például ha a pénztárfelületen ugyanazt az összeget akarod mutatni, ami a nyugtára kerül:

import { calculateReceiptItem, summarizeItems } from 'kassza/money'

const tetelek = [
  calculateReceiptItem({ quantity: 2, grossUnitPrice: 890, vat: 27 }),
  calculateReceiptItem({ grossUnitPrice: 250, vat: 5 }),
]

const { grossAmount, byVat } = summarizeItems(tetelek)

Itt a grossAmount 2 030, a byVat pedig áfakulcsonként bontja a nettó, az áfa és a bruttó értéket. Devizás nyugtához a pénznemet második paraméterként add át: calculateReceiptItem(tetel, 'EUR').

Lásd még: Kerekítés számlán és Pénzszámítás.

Oldal szerkesztéseUtoljára frissítve: