2026. május 2. · #stripe #nav #szamlazas #magyar #compliance
Stripe + NAV Online Számla — automatikus magyar számlázás SaaS-en
A magyar SaaS-eknél eddig megoldatlan probléma: Stripe-fizetés után automatikus NAV-online-számla. Hogy oldottuk meg saját kezűleg, miért NEM Billingo, és milyen webhook-flow áll mögötte.
A magyar SaaS-piacon az egyik legbosszantóbb integrációs feladat: Stripe-fizetés után automatikusan kiállítani egy NAV-online-számlát. A nemzetközi SaaS-szolgáltatók (Stripe, Paddle, LemonSqueezy) fizetésre alkalmasak, de magyar NAV-számla-kiállításra nem. A magyar számlázó-szoftverek (Számlázz.hu, Billingo, Szamla.hu) viszont NEM jól integrálódnak modern SaaS-flow-kba.
A PromNET-en saját kezűleg fejlesztettük ki a Stripe-NAV-bridge-et — NEM Billingo-előfizetésre alapozva, hanem a NAV Online Számla API-t közvetlenül használva. Ebben a posztban arról, miért így, milyen webhook-flow áll mögötte, és mit tanultunk a megvalósításból.
A probléma
Egy magyar SaaS-vállalkozónak a Stripe-előfizetés után minden hónapban kötelező kiállítani egy NAV-online-számlát a felhasználónak. A NAV szabályozása szerint:
- A számla azonnal vagy 8 napon belül ki kell állítani
- A számla NAV Online Számla XML-formátumban kell beküldődjön
- A számlán adószám, ÁFA-bontás, soros-szám stb. kell
A klasszikus magyar megoldás:
- Stripe webhook → email-megy a vállalkozónak
- A vállalkozó kézzel beíratja a Számlázz.hu-ba
- Számlázz.hu kiállítja a számlát + NAV-ra beküldi
- PDF emailben → felhasználó
Ez manuális, lassú, hibázható. Egy SaaS-en havi 100+ ügyfél után napi 4-5 számla-kiállítást jelent, ami napi 1-2 órás sec-cleanup-munka.
A nemzetközi megoldás miért nem jó
A Stripe-nak van saját számla-funkciója (“Stripe Invoicing”). Magyar piacon NEM használható:
- NEM küld be a NAV Online Számla rendszerbe
- A magyar adóhatóság a Stripe-számlát NEM fogadja el mint hivatalos számla
- Az ÁFA-bontás nem magyar szabvány
Tehát: a Stripe-számla a magyar NAV-felé semmit nem ér. Külön kell megoldani.
A Billingo / Számlázz.hu integráció miért nem jó
Felmerülhet: “kösd be a Billingo API-ját, és kész”. A probléma:
- Havidíj (3-12 ezer Ft/hó), ráadásul felhasználó-szám-arányos
- API-rate-limit (kis számlán nem probléma, növekedéskor lehet)
- Külső szolgáltató lock-in — ha a Billingo elszáll, a számláid is
- Külön branding a számlán — a Billingo-logó megjelenik (saját brandedet ki kell konfigurálni)
A NAV Online Számla maga ingyenes — a NAV-rendszerhez közvetlenül beküldhető. Nem kell köztes szolgáltató.
A saját megvalósítás
A flow:
- Stripe webhook beérkezik (
checkout.session.completedvagyinvoice.paid) - A webhook-handler D1-be ír egy
invoicesrekordot (Stripe-id, summer, vásárlás-szám) - Háttérben (Cloudflare Worker queue) NAV Online Számla XML generálódik
- A NAV API-ra POST-oljuk a számla-XML-t (Bearer-token auth)
- NAV visszaigazolja → számla-azonosítót kap a felhasználó
- PDF-renderelés (saját PDF-generátor —
pdf-libJavaScript-en) - Email-küldés a felhasználónak (Resend)
A teljes flow átlag 15-30 másodperc Stripe-fizetéstől email- megérkezésig. A NAV API-call 2-3 sec, a többi a saját infrastruktúránk.
A kihívások
1. NAV Online Számla XML-formátum
A NAV-szabvány XML 3.0 — nem JSON, régi-iskola. A séma 500+ sornyi XSD, bonyolult constraint-ekkel. Saját kezűleg megírni a builder-t 3 hét munka volt.
2. Hibakezelés
Mi van ha a NAV API leáll? Mi van ha a számla-XML hibás? Mi van ha a felhasználó adószáma rossz?
A megoldás:
- Retry-queue — a számla-job 10x megpróbálja különböző exponential-backoff-fal
- Hiba-log → admin-felület-ben látható, manuálisan beavatkozható
- Felhasználó-notify: ha a számla 24 órán belül NEM állítódott ki, mind a felhasználó, mind az admin email-figyelmeztetést kap
3. Jogi formátum
Egy magyar számlán kötelező rekordok:
- Eladó adószáma, neve, címe
- Vevő neve, címe, adószáma ha B2B
- Soros-szám (folyamatos, nem-vissza-számláló)
- ÁFA-bontás (27% / 18% / 5% / 0%)
- Fizetési mód, fizetési határidő
- Számla-összesen (nettó, ÁFA, bruttó)
Ezeket mind ellenőrzi a NAV beküldéskor. Ha hibázunk, rejected — és a felhasználó számla-nélkül marad.
4. PDF-rendering
A NAV-számla-XML nem ember-olvasható. Kell egy PDF, amit
emailbe tudunk csatolni. Saját PDF-generátor (pdf-lib)
ki-renderel egy A4-magyar-számla-formátumot, logóval,
aláírás-helyivel. NEM Billingo-stílus, a saját
designunk.
5. Stripe webhook-megbízhatóság
A Stripe webhook általában megérkezik 1 másodpercen belül, de hálózati hiba vagy CF-Worker-leállás esetén eltörhet. A Stripe maga retry-zi 3 napig, de nálunk is van második védvonal: óránkénti polling-cron a Stripe API-n hogy nem maradt-e bent egy paid invoice ami nem ment át a webhook-on.
A működés
A Stripe-NAV-bridge élesben fut. Az átlag-folyamat-idő alig 20 másodperc, és a hibakezelés több retry-réteggel védett: a NAV-rejection esetén az admin-felület manuálisan közbeavatkozhat. A leggyakoribb hibaforrás a rossz adószám — itt a felhasználó adatát kell javítani, nem a kódot.
Mire NEM jó
- NEM általános számlázó-szoftver — csak PromNET-vásárlásokra állítja ki a számlát. Ha más bevételt is van (pl. konzultáció, könyvtár-eladás), arra Billingo vagy Számlázz.hu kell.
- NEM sztornózás-funkció (a UI-ban) — sztornó-számla kiállítás manuális admin-beavatkozást kíván. Q2 2026 roadmapen.
- NEM előleg-számla — csak végszámla. Aki előleget kér, az a sztender NAV-szabályok alapján külön kezelendő.
- NEM devizás számla — csak HUF. Eurós tranzakcióhoz külön flow szükséges (még nincs).
A nyílt-forráskódosítás kérdése
Néha kérdezik: “nyílt-forrás-kódosíthatnád a NAV-bridge-et, hasznos lenne más magyar SaaS-eknek”. A válasz: valószínűleg igen, de még nem most.
Az ok: a kód jelenleg PromNET-specifikus (D1 séma, Stripe-webhook- handler, saját adat-struktúra). Egy nyílt-forráskódú-csomaghoz absztrakciós-réteg kellene. Q4 2026 vagy 2027 lehet realisztikus terv.
Addig: ha érdekel a megvalósítás, megnézheted a /sugo/nav-szamla- integracio sugó-cikkben a publikus dokumentációt és a
diagram-átnézetét.
Pozícionálás
A Stripe-NAV-bridge megoldja a magyar SaaS-számlázás-problémát a PromNET-felhasználók számára. NEM általános-célú számlázó-eszköz, NEM Billingo-versenytárs.
Annyit tesz: automatizálja azt, ami eddig manuális volt. Egy kevesebb fájdalmat ad a magyar SaaS-vállalkozónak (nekem), és a felhasználóid azonnal megkapják a hivatalos számlát emailben.
A funkció élesben fut minden Stripe-fizetés után automatikusan. A felhasználónak nem kell semmit beállítani — a NAV-számla magától megérkezik 1-2 perc múlva.
© 2026 PromNET — Polyák Csaba. ← Vissza a blog-ra
Betöltés…