Hogyan működik a kassza?
Egy webshopban tipikusan így születik a számla: a vevő fizet, a rendszered meghívja a kasszát, a kassza elküldi a kérést a Számlázz.hu Számla Agentnek, az elkészült számla PDF-je visszajön, a vevő pedig e-mailben is megkapja.
- 1
invoices.create()a kódod meghívja a kasszát - 2
XML, multipart POSTvalidáció, kerekítés, XSD sorrend - 3
XML válasz + PDFszámlaszám, összegek, fejlécek - 4
CreatedInvoicevagy SzamlazzError kategóriával - 5A Számlázz.hu e-mailben elküldi a PDF-et a vevőnek.
Mi történik egy hívás alatt?#
- Validáció. A kassza még a kérés előtt ellenőrzi a bemenetet: kötelező mezők, ismert áfakulcs, érvényes dátum, a mellékletek száma és mérete. Ha valami hibás,
validationkategóriájúSzamlazzErrorjön, és kérés el sem megy. - Kerekítés. Minden tételnél kiszámolja a nettó, áfa és bruttó értéket a hivatalos kerekítési szabályok szerint, így a Számlázz.hu nem utasítja el a számlát 259–264-es hibával.
- XML összeállítása. A kassza saját, sorrendtartó XML-írót használ, mert az Agent XSD-je kötött elemsorrendet követel. Számlánál az Agent kulcs a
<beallitasok>blokkba kerül. - Küldés.
multipart/form-dataPOST kérés megy ahttps://www.szamlazz.hu/szamla/címre, a művelethez tartozó form mezőben. Ha van tárolt session cookie, a kassza visszaküldi. - Válasz értelmezése. A Számlázz.hu hibát jelezhet fejlécben, XML-ben vagy
[ERR]szövegben. A kassza mindhármat felismeri, és kódot, kategóriát, magyar tippet ad. - Eredmény. Sikernél típusos objektumot kapsz, például
CreatedInvoice-t számlaszámmal, összegekkel és a PDF-fel. - Értesítés. Ha a vevőnek van e-mail címe, a Számlázz.hu elküldi neki a számlát. Ezt a
buyer.sendEmail: falsekapcsolja ki.
Újrapróbálás és dupla számla#
A számla létrehozása nem idempotens: ha egy kérés kétszer ér be, két számla készül. Ezért a kassza a számlakészítést soha nem küldi újra magától, a nyugtát pedig csak akkor, ha callId védi a duplikációtól. A lekérdezéseket (PDF, számlaadatok, nyugta, adószám) hálózati hiba, időtúllépés vagy karbantartás esetén alapból háromszor próbálja meg, egyre hosszabb várakozással. A próbálkozások száma a maxAttempts opcióval legfeljebb 5-re emelhető, mert a Számlázz.hu ennél többet nem enged egy kérésre.
Ha egy számlakészítés bizonytalan hibával ér véget, például megszakadt a kapcsolat, a helyes lépés a rendelésszám alapján lekérdezni, hogy elkészült-e:
A részleteket a Hibakezelés, hibakódok oldal írja le.