Ugrás a tartalomra
kassza

Kliens beállítása

A kasszát a createKassza() függvénnyel hozod létre. Egy folyamatban (process) elég egyszer létrehozni és újrahasznosítani, így a session cookie is megmarad a hívások között.

lib/kassza.ts
import { createKassza } from 'kassza'

export const kassza = createKassza({
  defaults: {
    invoice: {
      prefix: 'WEB',
      paymentDueInDays: 8,
      seller: { emailReplyTo: 'penzugy@example.hu', emailSubject: 'Elkészült a számlád' },
    },
    receipt: { prefix: 'NYGT', paymentMethod: 'bankkártya' },
  },
})

Opciók#

OpcióTípusAlapértékLeírás
agentKeystringSZAMLAZZ_AGENT_KEYAz Agent kulcs. Csak kisbetűs lehet.
username, passwordstringRégi hitelesítés Agent kulcs helyett.
defaults.invoiceInvoiceDefaults{}Minden számlára érvényes alapértékek.
defaults.receiptReceiptDefaults{}Minden nyugtára érvényes alapértékek.
cookieStoreCookieStore | falsememóriábanA session cookie tárolója. false kikapcsolja.
timeoutMsnumber60000Egy kérés időkorlátja milliszekundumban.
maxAttemptsnumber3Próbálkozások száma biztonságos műveleteknél, legfeljebb 5.
retryDelayMsnumber1000Az első újrapróbálás előtti várakozás, utána duplázódik.
fetchtypeof fetchglobalThis.fetchEgyedi fetch, például proxyhoz vagy teszthez.
endpointstringhttps://www.szamlazz.hu/szamla/Az Agent címe.
hooksSzamlazzHooksNaplózási események, lásd lent.

Alapértelmezések számlára#

A defaults.invoice mezői akkor érvényesülnek, ha a hívásban nem adod meg őket. A hívásban megadott érték mindig felülírja az alapértéket.

MezőLeírás
prefixSzámlaszám előtag, például WEB
paymentDueInDaysFizetési határidő napokban a kelttől
paymentMethodFizetési mód, például átutalás
currency, exchangeBankPénznem és árfolyamot jegyző bank
languageA számla nyelve
templateSzámlasablon
eInvoice, downloadPdfE-számla és PDF letöltés
sendEmailKüldjön-e értesítőt, ha a vevőnek van e-mail címe
sellerBank, bankszámla, válaszcím, e-mail tárgy és szöveg, aláíró
simpleItems, euVat, logoExtra, aggregator, guardian, articleIdentifierInvoiceSpeciális beállítások

Alapértelmezések nyugtára#

MezőLeírás
prefixNyugta előtag, csak nagybetű és szám
paymentMethodFizetési mód, nyugtánál nincs beépített alapértéke
currency, exchangeRate, exchangeBankPénznem és árfolyam
downloadPdf, templatePDF letöltés és PDF sablon
unitAlapértelmezett mennyiségi egység
customerLedgerIdVevő főkönyvi azonosító

Időkorlát és megszakítás#

Minden metódus utolsó, opcionális paramétere egy { signal } objektum. A saját AbortSignal-od és a kliens timeoutMs beállítása közül az hat, amelyik előbb lejár.

const { pdf } = await kassza.invoices.getPdf('WEB-2026-12', {
  signal: AbortSignal.timeout(5_000),
})

Időtúllépésnél timeout kategóriájú hibát kapsz. Ha te szakítod meg a kérést, a signal eredeti oka dobódik tovább.

Hookok#

A hookokkal naplózhatod és mérheted a Számla Agent hívásokat. A hookok soha nem kapják meg az Agent kulcsot és az XML tartalmát. Futtatható példát a Hálózat és biztonság oldalon találsz.

const kassza = createKassza({
  hooks: {
    onRequest: ({ action, attempt }) => logger.debug({ action, attempt }),
    onResponse: ({ action, status, durationMs }) => logger.info({ action, status, durationMs }),
    onError: ({ action, error, willRetry }) =>
      logger.warn({ action, code: error.code, category: error.category, willRetry }),
  },
})

Serverless és edge#

Serverless függvényekben minden hideg indítás új memóriát kap, ezért a memóriában tárolt session cookie elveszhet. Ilyenkor adj meg közös tárolót a cookieStore opcióval, lásd a Munkamenet oldalt.

Oldal szerkesztéseUtoljára frissítve: