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és (kivezetés alatt)profitVatbooleanfalse
EU-s ÁFAeuVatbooleanfalse
számla sabloninvoiceTemplatestringSzlaMost
előnézeti PDFpreviewPdfbooleanfalse
előlegszámla számlaszámprePaymentInvoiceNumberstring
egyszerűsített számlaképsimpleItemsbooleanfalse
Kivezetés alatt: profitVat és priceGapVatBase

Az egysoros árrés áfaalap megadás 2027. február 15-én kivezetésre kerül: a fejléc szintű profitVat és a tétel szintű priceGapVatBase mezőt új integrációban már ne használd, a meglévő integrációt a kivezetésig állítsd át. Különbözeti (árrés szerinti) áfás számlát két tételre bontva állíts ki: az első tétel az alap szolgáltatás/termék beszerzési ára K.AFA áfakulccsal, a második tétel az árrés összege 27%-os áfakulccsal. Részletek a Számla Agent Áfa értékek - K.AFA oldalán; utazásszervezőként lásd még az Egyszerűsített tételadatok utazásszervezőknek oldalt.

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
Új kata védelem

Ha a számlakibocsátó fiók adóneme az új kata, és a fiókszintű védelem be van kapcsolva, a vállalkozásnak (kifizetőnek) kiállított bizonylatot a rendszer 491-es hibakóddal utasítja el (jellemzően akkor, ha a vevőn be van állítva a taxNumber vagy a taxNumberEU). A beállítás: Adózási és pénzügyi adatok. Teljes leírás: Számla Agent Új kata védelem.

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 alap (kivezetés alatt)priceGapVatBasedouble
nettó értéknetPricedoubleigen
ÁFA értékvatAmountdoubleigen
bruttó értékgrossAmountdoubleigen
megjegyzéscommentcomment
adattörlő kód darabszámadataDeletionCodeinteger

A priceGapVatBase (árrés ÁFA alap) mező 2027. február 15-én kivezetésre kerül, új integrációban már ne használd. Különbözeti áfás számlához két tételt adj meg (K.AFA + 27%), lásd a fenti, profitVat mezőnél lévő figyelmeztetést és a Számla Agent Áfa értékek - K.AFA oldalát.

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