Ugrás a tartalomra
kassza

Válasz

Sikeres nyugtakészítés után a create() egy Receipt objektummal tér vissza. Ugyanezt a típust adja a sztornó és a lekérdezés is.

const nyugta = await kassza.receipts.create(adatok)

await db.rendeles.update({
  where: { id: rendelesId },
  data: { nyugtaszam: nyugta.number, brutto: nyugta.totals.grossAmount },
})

Receipt#

A fejléc mezői a válasz <nyugta> blokkjának <alap> eleméből jönnek.

MezőTípusForrás a válaszbanLeírás
idnumberidA nyugta belső azonosítója a Számlázz.hu-ban.
numberstringnyugtaszamA nyugtaszám, például 'NYGT-2026-1'. Ha hiányzik, unexpected_response hibát kapsz.
callIdstring | undefinedhivasAzonositoA kérésben megadott hívásazonosító.
type'receipt' | 'reversal'tipusNY esetén 'receipt', SN (sztornó nyugta) esetén 'reversal'.
isReversedbooleanstornozotttrue, ha a nyugtát sztornózták.
reversedReceiptNumberstring | undefinedstornozottNyugtaszamSztornó nyugtánál az eredeti nyugta száma.
issueDatestringkeltA nyugta kelte 'YYYY-MM-DD' alakban.
paymentMethodstringfizmodFizetési mód.
currencystringpenznemPénznem. Ha a válaszból hiányzik, 'HUF'.
exchangeRatenumber | undefineddevizaarfÁrfolyam devizás nyugtán.
exchangeBankstring | undefineddevizabankAz árfolyamot jegyző bank.
commentstring | undefinedmegjegyzesA nyugta megjegyzése.
customerLedgerIdstring | undefinedfokonyvVevoA vevő főkönyvi azonosítója.
isTestbooleanteszttrue, ha a nyugta tesztfiókban készült.
orderNumberstring | undefinedrendelesSzamRendelésszám.
itemsReceiptItem[]tetelekA tételek a Számlázz.hu által rögzített összegekkel, lásd lent.
paymentsReceiptPayment[]kifizetesekA kifizetések. Ha nem adtál meg, üres tömb.
totalsReceiptTotalsosszegekVégösszeg és áfakulcsonkénti bontás.
pdfUint8Array | undefinednyugtaPdfA nyugta PDF-je, Base64-ből dekódolva. downloadPdf: false esetén nincs.

ReceiptItem#

MezőForrás a válaszbanLeírás
namemegnevezesA tétel megnevezése.
identifierazonositoCikkszám vagy termékazonosító.
quantitymennyisegMennyiség.
unitmennyisegiEgysegMennyiségi egység.
netUnitPricenettoEgysegarNettó egységár.
vatafatipus, ha van, különben afakulcsKódos áfakulcsnál a kód, például 'ÁKK', egyébként a szám, például 27.
vatPercentageafakulcsAz áfa mértéke számként.
netAmountnetto vagy nettoErtekNettó érték.
vatAmountafa vagy afaErtekÁfa érték.
grossAmountbrutto vagy bruttoErtekBruttó érték.
ledgerfokonyv{ revenue, vat }, ha a tételnek van főkönyvi adata.

A Számlázz.hu a tételösszegeket hol netto, hol nettoErtek néven adja vissza, a kassza mindkettőt olvassa. A tétel megjegyzése és adattörlő kódja nem szerepel a válaszban.

ReceiptPayment és ReceiptTotals#

MezőForrás a válaszbanLeírás
payments[].methodfizetoeszkozA fizetési eszköz.
payments[].amountosszegAz ezzel az eszközzel fizetett összeg.
payments[].descriptionleirasA fizetési eszköz leírása.
totals.netAmount, vatAmount, grossAmounttotalosszNettó, áfa és bruttó végösszeg. Ha a válaszban nincs totalossz, a kassza a tételekből összegzi.
totals.byVatafakulcsosszÁfakulcsonkénti bontás, elemenként vat, vatPercentage, netAmount, vatAmount és grossAmount.

A mintában szereplő kéttételes nyugtánál a totals értéke 1639.67 nettó, 390.33 áfa és 2030 bruttó, a byVat pedig egy 27%-os és egy 5%-os sort tartalmaz.

A PDF mentése#

A pdf egy Uint8Array, amit közvetlenül fájlba írhatsz, feltölthetsz tárhelyre, vagy visszaadhatsz HTTP válaszként:

import { writeFile } from 'node:fs/promises'

if (nyugta.pdf) await writeFile(`nyugtak/${nyugta.number}.pdf`, nyugta.pdf)

A receiptPdfKey() nyugtak/ÉÉÉÉ/HH/nyugtaszám.pdf alakú kulcsot képez. A PDF később is lekérhető a kassza.receipts.get() hívással, lásd Nyugta lekérdezés, e-mailben pedig a Nyugta kiküldés művelettel küldheted el.

Hibák#

Ha a nyugta nem készült el, a create() SzamlazzError-t dob. A nyugtakészítésnél leggyakoribb hibák:

KódKategóriaMikor fordul elő?
validationA kassza a küldés előtt hibát talált a bemenetben, lásd Kérés.
3authHibás Agent kulcs.
57validationAz XML nem felel meg az XSD-nek. Ha adattörlő kódot küldtél, próbáld nélküle: a letölthető XSD-ben a torloKod még nem szerepel.
71, 152duplicateA rendelésszám már szerepel nyugtán, és a fiókban a nyugtákra be van kapcsolva a rendelésszám ismétlődés tiltása.
136accountLejárt előfizetés vagy rendezetlen díj.
259–261validationHibás tételösszeg. A 261-est forintos nyugtán akkor kapod, ha a nettó és az áfa összege nem pontosan a bruttó.
336validationAz előtagot a fiókban már számlákhoz használod, nyugtához másik kell.
337validationAz előtag nem csak nagybetűből és számból áll. A kassza küldés előtt kiszűri.
338duplicateEzzel a callId-val már készült nyugta. Ne állítsd ki újra.
340validationA kifizetések összege eltér a bruttó végösszegtől. A kassza küldés előtt kiszűri.
363–365validationForintos nyugtán a bruttó nem egész, vagy a nettó, illetve az áfa 2-nél több tizedesjegyet tartalmaz.
537–539validation, accountAdattörlő kód hiba: 400-nál több kód egy tételen, tesztfiók, vagy kikapcsolt beállítás.
network, timeoutNem tudni, elkészült-e a nyugta. callId mellett a kassza már újrapróbálta.

Az összes kódot a Hibakezelés, hibakódok oldal sorolja fel.

A 338-as hibánál a kassza a hint mezőben leírja a következő lépést: ha adtál meg rendelésszámot, a lekérdezést javasolja, különben a Számlázz.hu felületére irányít, mert a Számla Agent hívásazonosító alapján nem kérdez le.

Oldal szerkesztéseUtoljára frissítve: