Ugrás a tartalomra
kassza

Bizonylattípusok

Az invoices.create() a type mező alapján többféle bizonylatot készít. A sztornó számla kivétel, arra külön művelet van: Számla sztornó.

typeBizonylatXML a fejlec blokkbanKötelező kiegészítés
'invoice'Számla (alapértelmezett)
'proforma'Díjbekérő<dijbekero>true</dijbekero>
'advance'Előlegszámla<elolegszamla>true</elolegszamla>
'final'Végszámla<vegszamla>true</vegszamla>advanceInvoiceNumber vagy az előlegszámla orderNumber-je
'corrective'Helyesbítő számla<helyesbitoszamla>true</helyesbitoszamla>correctedInvoiceNumber
'deliveryNote'Szállítólevél<szallitolevel>true</szallitolevel>

A CreateInvoiceInput a type szerint szétválasztott típus: type: 'corrective' mellett a TypeScript már szerkesztés közben jelzi, ha a correctedInvoiceNumber lemaradt.

Díjbekérő#

A díjbekérő fizetési felszólítás, jogilag nem számla, és nem kerül a NAV-hoz. Ha a vevő kifizette, állíts ki róla számlát, és a proformaNumber mezőben hivatkozz a díjbekérőre. A Számlázz.hu így összekapcsolja a kettőt.

Díjbekérő, majd számla

Díjbekérő kiállítása, és a befizetés után a hozzá kapcsolt végleges számla.

Futtatás a sandboxban
dijbekero-szamla.ts
import { , type InvoiceBuyer, type  } from 'kassza'

const  = ()

const : InvoiceBuyer = {
  : 'Futóklub Egyesület',
  : '1134',
  : 'Budapest',
  : 'Váci út 10.',
  : 'penztar@example.hu',
}

const : [] = [
  { : 'Nevezési díj, félmaraton', : 12_990, : 27 },
]

const  = await ..({
  : 'proforma',
  : 'NEV-2026-042',
  : ,
  : ,
})
.('Díjbekérő:', ., .)

const  = await ..({
  : .,
  : 'NEV-2026-042',
  : 'átutalás',
  : true,
  : ,
  : ,
})
.('Számla:', ., 'hátralék:', .)

A ki nem fizetett díjbekérőt ne sztornózd, hanem töröld a Díjbekérő törlése művelettel. Ha díjbekérőt vagy szállítólevelet próbálsz sztornózni, a kassza validation hibát ad, mert a Számlázz.hu ilyenkor csendben visszaadná az eredeti bizonylatot.

Előlegszámla és végszámla#

Előlegnél előbb type: 'advance' előlegszámlát állítasz ki, a teljesítéskor pedig type: 'final' végszámlát. A végszámlán az előleget negatív mennyiségű tétellel vonod le.

Előleg- és végszámla

Projekt előleggel: előlegszámla, majd végszámla az előleg levonásával.

Futtatás a sandboxban
eloleg-vegszamla.ts
import { , type InvoiceBuyer } from 'kassza'

const  = ({ : { : { : 'PROJ', : 15 } } })

const : InvoiceBuyer = {
  : 'Tiszapart Vendéglátó Kft.',
  : '6000',
  : 'Kecskemét',
  : 'Rákóczi út 3.',
  : '12345676-2-41',
}

const  = await ..({
  : 'advance',
  : 'PROJ-7',
  : ,
  : [{ : 'Előleg a webáruház fejlesztésére', : 300_000, : 27 }],
})

const  = await ..({
  : 'final',
  : .,
  : 'PROJ-7',
  : ,
  : [
    { : 'Webáruház fejlesztése', : 1_000_000, : 27 },
    { : 'Előleg levonása', : -1, : 300_000, : 27 },
  ],
})

.({
  : .,
  : .,
  : .,
  : .,
})

A végszámlánál az advanceInvoiceNumber helyett az előlegszámla rendelésszáma is elég. Ha egyiket sem adod meg, a kassza a kérés előtt hibát dob.

Helyesbítő számla#

Ha egy kiállított számla tartalma változik, például a vevő visszaküld egy terméket, állíts ki helyesbítő számlát a correctedInvoiceNumber hivatkozással. A változást negatív mennyiségű tétellel jelzed.

Helyesbítő számla

Részleges visszáru helyesbítő számlával, negatív mennyiséggel.

Futtatás a sandboxban
helyesbito-szamla.ts
import { , type InvoiceBuyer } from 'kassza'

const  = ()

const : InvoiceBuyer = {
  : 'Kiss Bence',
  : '9021',
  : 'Győr',
  : 'Baross Gábor út 22.',
  : 'bence@example.hu',
}

const  = await ..({
  : 'WEB-1200',
  : 'bankkártya',
  : true,
  : ,
  : [{ : 'Póló, M', : 3, : 5_990, : 27 }],
})

const  = await ..({
  : 'corrective',
  : .,
  : 'WEB-1200',
  : ,
  : [{ : 'Póló, M (visszáru)', : -1, : 5_990, : 27 }],
})

.('Eredeti:', ., .)
.('Helyesbítő:', ., .)

Ha a számlát teljesen érvényteleníteni kell, helyesbítés helyett sztornózd. Egyszerűsített számlaképpel (simpleItems) kiállított számla nem helyesbíthető, csak sztornózható.

Szállítólevél#

A type: 'deliveryNote' szállítólevelet készít. A fuvarlevél adatait a waybill mezőben adhatod meg, fuvarleveles számlaképhez pedig a template: 'SzlaFuvarlevelesAlap' sablont használd. A mezőket a Kérés oldal sorolja fel.

await kassza.invoices.create({
  type: 'deliveryNote',
  template: 'SzlaFuvarlevelesAlap',
  orderNumber: 'REND-1001',
  buyer,
  items,
  waybill: {
    courier: 'MPL',
    mpl: { customerCode: '12345678', barcode: 'JJH30000000000000', weight: '1.25' },
  },
})

E-számla vagy papírszámla#

Az eInvoice mező dönti el, hogy elektronikus számla (true) vagy hagyományos, nyomtatható számla (false, ez az alapértelmezett) készül. E-számlához saját tanúsítvány kell, vagy a Számlázz.hu által biztosított tanúsítvány. Ha a fiókban nincs engedélyezve az e-számla, 54-es, ha az aláírás nem sikerül, 55-ös hibát kapsz.

const kassza = createKassza({ defaults: { invoice: { eInvoice: true } } })
Oldal szerkesztéseUtoljára frissítve: