Ugrás a fő tartalomhoz

Számlagenerálás

Alapok

Egy normál számla generálásának teljes példáját a következő fájl szemlélteti:

./examples/document/invoice/create_invoice_with_custom_data.php

A számla generálásához a következő lépések szükségesek:

// 1. Papír számla létrehozása (átutalással fizetendő magyar nyelvű (Ft) számla
// kiállítása mai keltezési és teljesítési dátummal, +8 nap fizetési határidővel).
$invoice = new Invoice(Invoice::INVOICE_TYPE_P_INVOICE);

// 2. Egyedi fejléc adatok hozzáadása a számlához (pl. számlakép sablon)
$invoice->getHeader()->setInvoiceTemplate(Invoice::INVOICE_TEMPLATE_8CM);

// 3. Eladói adatok hozzáadása a számlához
$invoice->setSeller(new Seller('OBER', '11111111-22222222-33333333'));

// 4. Vevő adatainak hozzáadása (kötelezően kitöltendő adatokkal)
$buyer = new Buyer('Kovacs Bt.', '2030', 'Érd', 'Tarnoki street 23.');

// a) Vevői adatok hozzáadása a számlához
$invoice->setBuyer($buyer);

// 5. Számla tétel összeállítása alapértelmezett adatokkal
// (1 db tétel 27%-os ÁFA tartalommal)
$item = new InvoiceItem('Eladó tétel 1', 10000.0);

// a) Tétel nettó értékének beállítása
$item->setNetPrice(10000.0);

// b) Tétel ÁFA értékének beállítása
$item->setVatAmount(2700.0);

// c) Tétel bruttó értékének beállítása
$item->setGrossAmount(12700.0);

// d) Tétel adatainak hozzáadása a számlához
$invoice->addItem($item);

// 6. Számla elkészítése (generálás)
$result = $agent->generateInvoice($invoice);

Elvárt és opcionális bemenetek

Számlafejléc adatok

Számlafejléc adatokMezőTípusKötelezőAlapérték
típusinvoiceTypeintigen1
keltezés dátumissueDatedateigenmai nap
teljesítés dátumfulfillmentdateigenmai nap
fizetési határidőpaymentDuedateigenkeltezés +8 nap
fizetési módpaymentMethodstringigenátutalás
pénznemcurrencystringigenFt
nyelvlanguagestringigenhu
megjegyzéscommentstring
bank név (árfolyam)exchangeBankstring
banki árfolyamexchangeRatestring
rendelésszámorderNumberstring
díjbekérőszámproformaNumberstring
helyesbített számlaszámcorrectivedNumberstring
logoextraLogostring
előtagprefixstring
fizetendő korrekciócorrectionToPaydouble
kifizetettségpaidbooleanfalse
ÁFA árrésprofitVatbooleanfalse
EU-s ÁFAeuVatbooleanfalse
számla sabloninvoiceTemplatestringSzlaMost
előnézeti PDFpreviewPdfbooleanfalse
előlegszámla számlaszámprePaymentInvoiceNumberstring
egyszerűsített számlaképsimpleItemsbooleanfalse

Egyszerűsített számlakép utazásszervezőknek (simpleItems)

A 2026. január 1-jén hatályba lépett Áfa tv. 210/A. §-a alapján az utazásszervezők főszabály szerint nem kötelesek feltüntetni a különbözeti áfa adóalapját és adóösszegét a számlaképen. Ezt a PHP API a 2.12.4-es verziótól az opcionális boolean simpleItems fejléc-mezővel támogatja: bekapcsolása esetén a számla egyszerűsített számlaképpel készül el, amely elrejti az ár- és áfaadatokat a vevő elől, miközben a NAV Online Számla adatszolgáltatás teljes marad.

Csak utazásszervezőknek

A funkció kizárólag az Áfa tv. 210/A. §-a szerinti utazásszervezési szolgáltatást nyújtó adóalanyok (utazásszervezők) számára alkalmazható jogszerűen. Más tevékenységre használni nem megengedett.

A funkciót a számlafejlécen a setSimpleItems() metódussal tudod bekapcsolni:

$invoice = new Invoice(Invoice::INVOICE_TYPE_P_INVOICE);
$invoice->getHeader()->setSimpleItems(true);
  • true: a generált XML fejlécébe bekerül a <simpleItems>true</simpleItems> mező, és a bizonylat egyszerűsített (utazásszervezői) számlaképpel készül el.
  • false vagy nincs beállítva (alapértelmezés): a mező egyáltalán nem kerül be az XML-be, a rendszer az alapértelmezett (nem utazásszervezői) módban működik.

Teljes példát a ./examples/document/invoice/create_invoice_with_custom_data.php fájlban találsz.

A funkció szállítólevélnél (DeliveryNote) és helyesbítő számlánál (CorrectiveInvoice) nem használható: ezekben az esetekben az API még a kérés elküldése előtt SzamlaAgentException kivételt dob Egyszerűsített számlaképet szállítólevél és helyesbítő számla esetén nem lehet használni üzenettel. Sztornó számlánál a beállításnak nincs hatása, mert a sztornó XML nem tartalmazza ezt a mezőt; a sztornó a szerveroldalon az eredeti bizonylat állapotát örökli.

A bekapcsolt simpleItems-szel beküldött kérésekre a szerver további validációs szabályokat érvényesít: legfeljebb 2 tétel szerepelhet, kizárólag magyar áfakulcs használható, az OSS adózásnak kikapcsolva kell lennie és az eladó adószámának magyarnak kell lennie, a számlasablont pedig felülírja az egyszerűsített nézet. A hibás kéréseket a rendszer 551 és 556 közötti hibakóddal utasítja el. A teljes leírást, benne azzal, hogy mit lát a vevő a számlán és hogyan működik a funkció bizonylattípusonként, a Számla Agent Egyszerűsített tételadatok utazásszervezőknek (simpleItems) oldalán találod.

Az adatszolgáltatás mindig teljes

A simpleItems beállítástól függetlenül a NAV Online Számla adatszolgáltatás minden esetben a teljes tételadatokat tartalmazza, beleértve az adóalapot és az áthárított adó összegét. A számlakép és a NAV rendszerében látható adattartalom ezért eltérhet egymástól; ez a funkció működésének része.

Számla eladói adatok

Számla eladói adatokMezőTípusKötelezőAlapérték
bankbankstring
bankszámlaszámbankAccountstring
aláíró nevesignatoryNamestring
e-mail válaszcímemailReplyTostring
e-mail tárgyemailSubjectstring
e-mail tartalmaemailContentstring

Számla vevői adatok

Számla vevői adatokMezőTípusKötelezőAlapérték
azonosítóidstring
névnamestringigen
országcountrystring
irányítószámzipCodestringigen
városcitystringigen
címaddressstringigen
e-mail címemailstring
küldünk-e e-mailsendEmailbooleantrue
adószámtaxNumberstring
csoportazonosítógroupIdentifierstring
EU adószámtaxNumberEUstring
postázási névpostalNamestring
postázási országpostalCountrystring
postázási irsz.postalZipstring
postázási várospostalCitystring
postázási címpostalAddressstring
főkönyvi adatokledgerDataLedgerData
aláíró nevesignatoryNamestring
telefonszámphonestring
megjegyzéscommentstring

Számlaértesítő

Ha a számla elkészültével számlaértesítő e-mailt is szeretnél küldeni, a vevőn állítsd be a cím(ek)et setEmail(...)-lel, és kapcsold be a küldést setSendEmail(true)-val.

Egyetlen email mezőbe (string) írd az összes címet. Ha több címzett van, válaszd el a címeket vesszővel, pontosvesszővel vagy szóközzel; egymás után több ilyen elválasztó is lehet. A Számlázz.hu ezek mentén bontja szét a szöveget, a címek elején és végén lévő szóközöket levágja, és minden így kapott résznek külön-külön érvényes e-mail címnek kell lennie.

Az eladó oldalán opcionálisan a emailReplyTo, emailSubject és emailContent mezőkkel szabhatod testre az értesítő levelet; lásd ./examples/document/invoice/create_invoice_with_custom_data.php.

Számla vevői főkönyvi adatok

Számla vevői főkönyvi adatokMezőTípusKötelezőAlapérték
vevő azonosítóbuyerIdstring
könyvelés dátumbookingDatedateigen
főkönyvi számbuyerLedgerNumberstring
folyamatos teljesítéscontinuedFulfillmentbooleanigenfalse
elszámolási időszak kezdetesettlementPeriodStartdate
elszámolási időszak végesettlementPeriodEnddate

Számlatétel adatok

Számlatétel adatokMezőTípusKötelezőAlapérték
azonosítóidstring
megnevezésnamestringigen
mennyiségquantitydoubleigen
mennyiségi egységquantityUnitstringigen
nettó egységárnetUnitPricedoubleigen
ÁFA kulcsvatstringigen
árrés ÁFA alappriceGapVatBasedouble
nettó értéknetPricedoubleigen
ÁFA értékvatAmountdoubleigen
bruttó értékgrossAmountdoubleigen
megjegyzéscommentcomment
adattörlő kód darabszámadataDeletionCodeinteger

Számlatétel főkönyvi adatok

Számlatétel főkönyvi adatokMezőTípusKötelezőAlapérték
Árbevétel főkönyvi számrevenueLedgerNumberstring
Árbevétel főkönyvi számvatLedgerNumberstring
Gazdasági esemény típuseconomicEventTypestring
ÁFA gazdasági esemény típusvatEconomicEventTypestring
Számla tétel elszámolási időszak kezdetesettlementPeriodStartdate
Számla tétel elszámolási időszak végesettlementPeriodEnddate