Ugrás a tartalomra
kassza

Válasz

A lekérdezés válasza ugyanolyan, mint a nyugta létrehozásáé: a get() egy Receipt objektumot ad vissza, a find() pedig Receipt-et vagy null-t. A mezők a Számlázz.hu xmlnyugtavalasz válaszának nyugta blokkjából jönnek, a PDF a nyugtaPdf elemből.

const nyugta = await kassza.receipts.find({ orderNumber: 'PENZTAR-2026-0212' })

if (nyugta && !nyugta.isReversed) {
  console.log(nyugta.number, nyugta.totals.grossAmount)
}

Receipt#

MezőTípusForrás a válaszbanLeírás
idnumberalap/idA nyugta Számlázz.hu azonosítója.
numberstringalap/nyugtaszamA nyugta száma, például 'NYGT-2026-1'.
callIdstring | undefinedalap/hivasAzonositoA létrehozáskor megadott hívásazonosító.
type'receipt' | 'reversal'alap/tipusNY esetén 'receipt', SN (sztornó nyugta) esetén 'reversal'.
isReversedbooleanalap/stornozotttrue, ha a nyugtát sztornózták.
reversedReceiptNumberstring | undefinedalap/stornozottNyugtaszamSztornó nyugtánál az eredeti nyugta száma.
issueDatestringalap/keltA nyugta kelte, ahogy a Számlázz.hu küldi.
paymentMethodstringalap/fizmodFizetési mód, például 'készpénz'.
currencystringalap/penznemPénznem, ahogy a Számlázz.hu küldi. Ha hiányzik, 'HUF'.
exchangeBankstring | undefinedalap/devizabankAz árfolyamot jegyző bank.
exchangeRatenumber | undefinedalap/devizaarfAz árfolyam.
commentstring | undefinedalap/megjegyzesMegjegyzés a nyugtán.
customerLedgerIdstring | undefinedalap/fokonyvVevoA vevő főkönyvi azonosítója.
isTestbooleanalap/teszttrue, ha a nyugta tesztfiókban készült.
orderNumberstring | undefinedalap/rendelesSzamA nyugta rendelésszáma.
itemsReceiptItem[]tetelek/tetelA nyugta tételei.
paymentsReceiptPayment[]kifizetesek/kifizetesA kifizetések. Ha nincsenek, üres tömb.
totalsReceiptTotalsosszegekA végösszeg és az áfakulcsonkénti összesítés.
pdfUint8Array | undefinednyugtaPdfA nyugta PDF-je. downloadPdf: false esetén nincs.

Ha egy nem opcionális mező hiányzik a válaszból, a kassza alapértéket ad neki: szövegnél üres szöveget, számnál 0-t, logikai mezőnél false-t. Ha a válaszból a nyugta blokk vagy a nyugtaszám hiányzik, a kassza unexpected_response hibát dob.

ReceiptItem#

MezőTípusForrás a válaszbanLeírás
namestringmegnevezesA tétel neve.
identifierstring | undefinedazonositoA tétel azonosítója.
quantitynumbermennyisegMennyiség.
unitstringmennyisegiEgysegMennyiségi egység.
netUnitPricenumbernettoEgysegarNettó egységár.
vatReceiptVatRateafatipus, afakulcsAz áfatípus, ha van (például 'ÁKK'), különben a számos kulcs (például 27).
vatPercentagenumberafakulcsAz áfakulcs számként.
netAmountnumbernetto vagy nettoErtekNettó érték.
vatAmountnumberafa vagy afaErtekÁfa érték.
grossAmountnumberbrutto vagy bruttoErtekBruttó érték.
ledger{ revenue?, vat? } | undefinedfokonyv/arbevetel, fokonyv/afaFőkönyvi azonosítók, ha vannak.

ReceiptPayment#

MezőTípusForrás a válaszbanLeírás
methodstringfizetoeszkozFizetőeszköz, például 'utalvány'.
amountnumberosszegA kifizetett összeg.
descriptionstring | undefinedleirasLeírás.

ReceiptTotals#

MezőTípusForrás a válaszbanLeírás
netAmountnumberosszegek/totalossz/nettoNettó végösszeg.
vatAmountnumberosszegek/totalossz/afaÁfa végösszeg.
grossAmountnumberosszegek/totalossz/bruttoBruttó végösszeg.
byVatarrayosszegek/afakulcsosszÁfakulcsonként vat, vatPercentage, netAmount, vatAmount és grossAmount.

Ha a válaszban nincs totalossz, a kassza a végösszegeket a tételekből adja össze, két tizedesre kerekítve.

A PDF mentése#

A pdf egy Uint8Array, amit közvetlenül fájlba írhatsz:

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

const nyugta = await kassza.receipts.get('NYGT-2026-1')

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

Ha csak az adatokra van szükséged, add meg a downloadPdf: false opciót, így a válasz is kisebb.

Hibák#

KódKategóriaMikor fordul elő?
validationNincs megadva azonosító, mindkettő meg van adva, vagy ismeretlen a sablon. A kérés el sem indul.
1maintenanceKarbantartás. A kassza magától újrapróbálja.
3authHibás Agent kulcs.
339not_foundNincs ilyen nyugta. A find() erre null-t ad.
network, timeoutA kassza magától újrapróbálja, és csak az utolsó sikertelen próbálkozás után dobja a hibát.
unexpected_responseA válaszból hiányzik a nyugta blokk vagy a nyugtaszám.

A find() minden not_found kategóriájú hibánál null-t ad, minden más hibát továbbdob. Az összes kódot a Hibakezelés, hibakódok oldal sorolja fel.

Elkészült már a nyugta?#

Ha a receipts.create() duplicate (338), network vagy timeout hibával áll le, a nyugta már létezhet. Mielőtt újra kiállítanád, keresd meg a rendelésszám alapján:

import { type CreateReceiptInput, isSzamlazzError } from 'kassza'

const BIZONYTALAN = ['duplicate', 'network', 'timeout']

async function nyugtaRendeleshez(adatok: CreateReceiptInput & { orderNumber: string }) {
  try {
    return await kassza.receipts.create(adatok)
  } catch (error) {
    if (isSzamlazzError(error) && BIZONYTALAN.includes(error.category)) {
      const meglevo = await kassza.receipts.find({ orderNumber: adatok.orderNumber })
      if (meglevo) return meglevo
    }
    throw error
  }
}
Oldal szerkesztéseUtoljára frissítve: