Stripe fizetések → számla automatikusan
Vevőid a Stripe-on fizetnek, a BillingHUNter a magyar jogszabályoknak és NAV-követelményeknek megfelelő számlát készít belőlük. Ez a cikk a beállítást, az ÁFA-szabályokat és a hibakezelést járja végig.
Vissza a tudásbázisraHa törölsz egy konfigurációt, a Stripe-oldali webhook végpont megmarad — a titkos kulcsot a beállításkor egyszer használtuk, így azt a Stripe felületén tudod törölni. A Stripe a folyamatos hibák után automatikusan letiltja a végpontot.
Hogyan működik?
A Stripe a fizetési eseményeket egy úgynevezett webhookon küldi el a BillingHUNternek. Mi ellenőrizzük, hogy az üzenet valóban a Stripe-tól érkezett (aláírás-ellenőrzés), majd a megszokott számlázási folyamatunkkal számlát készítünk belőle. A számla ugyanúgy NAV-hoz kerül, ugyanúgy kap PDF-et és SHA3-512 lenyomatot, mintha te hoztad volna létre.
-
Feldolgozott események: sikeres fizetés (
payment_intent.succeeded), sikeres terhelés (charge.succeeded), befizetett Stripe-számla (invoice.paid) és teljesített Checkout-folyamat (checkout.session.completed). - Duplikáció-ellenőrzés: a Stripe néha újraküldi ugyanazt az eseményt. Fizetésenként csak egy számla készül, az ismétléseket eldobjuk.
- Storno / refund: a visszatérítést a BillingHUNterben kézzel kezeled, ahogy béküldéssel szoktad. Nincs automatikus sztornó.
Beállítás lépésről lépésre
-
Stripe API-kulcs beszerzése. A Stripe Dashboardon (Developers → API keys) másold ki a titkos kulcsot (
sk_live_...vagy teszteléshezsk_test_...). - Konfiguráció létrehozása. a BillingHUNter Stripe oldalán válaszd a szervezetet, nevezd el az oldalt, és illeszd be a kulcsot. A kulccsal egyszer hozzuk létre a webhookot a Stripe-nál, a kulcsot utána nem tároljuk.
- Webhook automatikusan elkészül. Mi regisztráljuk a Stripe-nál a webhookot és elmentjük az aláírási titkot (titkosítva). Szerkesztéskor hagyd üresen a kulcsmezőt, ha nem akarod újra kiadni a webhookot.
- Számla-beállítások. Válassz témát, számlaformát, előtagot és fizetési módot. Ezek lesznek a Stripe-fizetésekből készülő számlákon.
ÁFA-szabályok: ki a felelős?
A helyes beállítás a te felelősséged. A BillingHUNter nem találgat. Ha az ÁFA-kód vagy a vevő adatai hiányoznak, a fizetés a „Sikertelen események" közé kerül egyértelmű okkal, nem pedig rossz számlát állítunk ki.
- Belföldi vevő (HU): a belföldi ÁFA-kódod (általában 27%).
- EU-s cég: jellemzően közösségen belüli, fordított adózás (EUFAD37). A vevő EU-s adószámából döntjük el, hogy cég.
- EU-s magánszemély: itt dönt az OSS-regisztrációd. Ha NEM vagy OSS-ben regisztrálva, 10 000 EUR/év EU-s B2C forgalom alatt a belföldi (27%) kulcs a helyes, ezért a mező zárolt. Ha OSS-ben vagy, válaszd a „Stripe adóadataiból" opciót. Ehhez a Stripe oldaladon Stripe Tax szükséges, mert csak így érkezik adókulcs a fizetésben.
- Külföldi (EU-n kívüli) vevő: jellemzően határon kívüli teljesítés (HO).
Stripe Tax nélkül az „Stripe adóadataiból" opció nem működik, mert az esemény nem tartalmaz adókulcsot, így a fizetés a sikertelen események közé kerül. Vagy kapcsold be a Stripe Taxot, vagy válassz konkrét ÁFA-kódot.
Devizanemek és MNB-árfolyam
Támogatott devizák: HUF, EUR, USD, GBP, CHF, CZK, PLN, RON. Más devizában érkező fizetésből nem készül számla, a sikertelen események között látod. Nem váltunk át és nem becsülünk árfolyamot.
Devizás számlánál a NAV-nak kötelezően szüksége van a forintosított összegekre, ezért a jegybanki (MNB) árfolyamot használjuk a teljesítés napjára. A beállításban ezt külön jelölőnégyzettel kell elfogadnod; elfogadás nélkül devizás fizetésből nem állíthatunk ki törvényes számlát.
Milyen vevőadat kell a számlához?
A számlához kötelező a vevő neve és címe (ország, város, irányítószám, utca). Ezeket a Stripe fizetés billing details mezőiből vesszük. Ha a Stripe oldaladon nincs kötelező adatbekérés beállítva, a fizetés sikertelen esemény lesz. Checkout/Payment Links esetén kapcsold be a „Billing address collection" és a vevő neve bekérését.
-
Céges vevő: EU-s adószám (pl.
DE123456789) a Stripe customer tax_ids mezőjéből jön. Ez jelzi, hogy fordított adózás kell. -
E-mail küldés: a számlát csak akkor küldjük el, ha a fizetéshez tartozik e-mail cím (
receipt_emailvagy customer e-mail). -
Tételnév: a fizetés leírásából, a
metadata.productmezőből vagy az általad megadott alapértelmezett tételnévből. Ha egyik sem található, sikertelen esemény lesz.
Sikertelen események
Minden ellenőrzött, de számlává nem alakítható eseményt tárolunk: Stripe-esemény azonosító, típus, fizetés azonosító, hibaok, időbélyeg. A Stripe oldalon a konfiguráció melletti „Sikertelen események" nézetben listázzuk őket. Így látod, ha vevői adat hiányzik, ismeretlen a devizanem, vagy egy eseményt nem dolgozunk fel.
Biztonság
- Minden webhook-üzenetet a Stripe aláírási titkával (whsec) hitelesítünk HMAC-SHA256-gyel és időkorláttal, így hamis üzenet nem állíthat ki számlát.
- A titkos API-kulcsod sosem tároljuk; az aláírási titkot titkosítva tartjuk, és a felületen sosem jelenik meg teljesen.
- A Stripe-konfigurációkat csak a szervezet tulajdonosa kezelheti.