Stripe Tax + magyar ÁFA · implementációs útmutató
A Stripe Tax kiszámolja az adót. A 'magyar ÁFA-megfelelő számla' rész a tied. Itt a teljes lánc, amit szállítunk.
A Stripe Tax kiszámolja az adót. A 'magyar ÁFA-megfelelő számla' rész a tied. Itt a teljes lánc, amit szállítunk.
Negyedévente ugyanazt látjuk SaaS-auditokon. A csapat bekapcsolta a Stripe Tax-et, kipipálta Magyarországot, és feltételezte, hogy most már 'megfelelő'. Nem az. A Stripe Tax kiszámolja az adót. A magyar-jog-megfelelő számla és a NAV-jelentés még a te problémád. Ez a poszt a lánc, amit Magyarországra értékesítő (és Magyarországról indulván EU-szerte értékesítő) SaaS-knak szállítunk.
Disclaimer: a jog jog, és az utolsó specifikációt a könyvelő hagyja jóvá. Minden alábbi mérnöki forma. A számok (27%-os normál kulcs, B2B fordított adózás, OSS-küszöbök) a 2026-04-26-on hatályos magyar és EU-s szabályból · go-live előtt mindenképp ellenőrizd.
A Stripe Tax eldönti, adóköteles-e a tranzakció, milyen kulccsal és hol, és ezt rányomja a számlára. A küszöböket is kezeli (EU OSS, US economic nexus). NEM állít ki magyar e-számlát, nem küld NAV-jelentést, és nem generálja a magyar jog (Áfa-tv. 169. §) szerinti kötelező mezőket a megfelelő formában. Kell hozzá egy billing-réteg, ami tudja.
Minden Subscription-re és Invoice-ra `automatic_tax: { enabled: true }`. A Customer-re a megfelelő cím-mezők · a számlázási cím az ÁFA-helyszín forrása. EU-s B2B-re vedd fel a vevő `tax_ids`-ét · a Stripe Tax automatikusan fordított adózást alkalmaz, és rányomja a vevő ÁFA-számát a számlára.
import Stripe from "stripe";
const stripe = new Stripe(process.env.STRIPE_SECRET!);
await stripe.customers.update(customerId, {
address: { country: "HU", postal_code: "1051", city: "Budapest", line1: "..." },
tax_id_data: vatNumber
? [{ type: "eu_vat", value: vatNumber }]
: undefined,
});
await stripe.subscriptions.create({
customer: customerId,
items: [{ price: priceId }],
automatic_tax: { enabled: true },
collection_method: "charge_automatically",
});Egy magyar ÁFA-szám a customer-rekorder semmit sem ér, ha nem validáltuk. A NAV publikál SOAP / REST végpontot, az EU adja a VIES-t, és a Stripe is hitelesíti a customerre felvett EU-s ÁFA-számokat. Mindhármat a megfelelő pillanatban: validálj signupkor, ismételten periodikusan, és újra B2B fordított-adós számla előtt. Cache-eld rövid TTL-lel · a VIES erősen rate-limitel.
A magyar Áfa-tv. (CXXVII / 2007) olyan mezőket ír elő, amelyeket a Stripe alapértelmezett számlája nem szállít a megfelelő formában · sorszámozott számla regisztrált tartományból, eladó és vevő adószáma, kibocsátási és teljesítési dátum HU-formátumban, sor-szintű ÁFA-kulcs, az ÁFA összege HUF-ban, ha más devizában számlázol, és még pár dolog. A számlát saját billing-rétegben generáljuk, és a Stripe-számlára mint mögöttes tranzakcióra hivatkozunk.
Magyarországon minden magyar adóalany által kibocsátott B2B és B2C számla a NAV Online Számla rendszerbe perceken belül jelentendő. 2026-ra a v3 kötelező. Az integráció XML over REST aláírt tokennel; a hibák explicit kódokkal jönnek. Tranziens hibára retry, perzisztens hibára ops-dashboard, és a customer-flow-t SOSEM blokkoljuk azzal, hogy a NAV lassú.
// pszeudo-kód a NAV-küldő flow-ra
async function reportToNav(invoiceId: string) {
const xml = await renderInvoiceXml(invoiceId);
const token = await navTokenExchange();
const r = await navClient.manageInvoice({
operation: "CREATE",
invoice: xml,
token,
});
if (r.result.funcCode === "OK") {
await markReported(invoiceId, r.transactionId);
} else {
await enqueueRetry(invoiceId, r.result);
}
}A legtöbb csapat a hazai flow-t jól szállítja, és aztán eltörik egy lengyel vagy német B2B-eladáson. A fordított adózás azt jelenti: a vevő fizeti az ÁFA-t a saját országában, te nullával számlázol, a számlán ott a szöveg és a vevő ÁFA-száma. A Stripe Tax kalkulál, ha a `tax_ids` be van állítva. A billing-rétegednek a megfelelő szöveget kell renderelni, a könyvelőkódnak fordított-adós-ként klasszifikálni a tranzakciót az összesítő nyilatkozathoz (A60).
Negyedévente a magyar ÁFA-alany szállító A60-on listázza az összes EU-n belüli B2B-eladást ÁFA-számokkal és összegekkel. A Stripe Tax exportja jó forrás. A könyvelő olyan formában kéri, amit a rendszere olvas · csináld meg egyszer, automatizáld, ne kézzel, negyedév végén.
Ha a könyvelő azt mondja, 'csak küldj egy CSV-t negyedév végén', az rendszer-tervezési lehetőség. Ugyanaz az adat plusz egy `nav_status` oszlop plusz letölthető A60 napokat takarít meg minden negyedévben.
Ami túléli az auditot: Stripe Tax a számolásra, in-house billing-szolgáltatás a jog-megfelelő számlára, async NAV-küldő egy queue mögött, hitelesített ÁFA-szám flow signupkor és újításkor, és negyedéves export, amit a könyvelő be tud olvasni. Ezt egyszer építsd meg, kezeld rendszerként, ne retrofit-old egy adóellenőrzés előtti éjszakán.

Alapító, DField Solutions
Pénzügyi cégeknél és kreátor-eszközöknél is építettem már olyan rendszereket, amik nap mint nap élesben futnak. Budapesttől San Franciscóig · startupoknak és nagyobb vállalatoknak egyaránt.
Beszéljünk a projektedről. 30 perc, nincs kötelezettség.