Nordlet

← Blog

Országonkénti áfabevallások és VIES-ellenőrzések automatizálása

Gyakorlati útmutató fejlesztőknek az EU áfamegfelelőség áruházakba és platformokba történő beágyazásához egy felhőalapú számviteli API segítségével.

Nordlet Team · · 12 perc olvasás

A platformkódokban előforduló áfahibák többsége egyetlen téves feltételezésre vezethető vissza: arra, hogy a sikeres VIES-eredmény azt jelenti, hogy az értékesítés 0%-os áfakulccsal (zero-rate) számlázható. Ez nem így van, és erre a rövidítésre építve olyan bevallások születnek, amelyek addig tűnnek rendben lévőnek, amíg egy könyvvizsgáló meg nem kérdezi, hogy miért alkalmaztak közösségen belüli adómentességet szállítási igazolás vagy konzisztens teljesítésihely-rekord nélkül. A szakadék a „az áfaszám rendben van” és „ez a teljesítés adózásilag helyesen van kezelve” között az a pont, ahol a legtöbb integráció észrevétlenül félrecsúszik.

Ez az útmutató bemutatja, hogyan lehet az országonkénti áfabevallásokat és a VIES-ellenőrzést automatizálni egy felhőalapú számviteli API segítségével, a Nordlet számviteli API-ját felhasználva megvalósítási környezetként. A cél egy olyan rendszer kialakítása, amely rögzíti a megfelelő igazolásokat az értékesítés pillanatában, immutable (módosíthatatlan) könyvelési tételeket rögzít, valamint séma és tagállam szerint csoportosított, bevalláskész adatokat állít elő anélkül, hogy az összegeket később egy táblázatban kellene újraösszegezni.

Mit mond ki valójában a VIES, és mit nem?

A VIES az EU Áfa-információs Csererendszere (VAT Information Exchange System). Amikor beküld egy országkódot és egy áfaszámot, a rendszer valós időben lekérdezi a vonatkozó nemzeti adatbázist, és visszaigazolja, hogy az áfa-információ érvényes vagy érvénytelen. Ennyi a hatóköre. Megerősíti, hogy a szám regisztrálva van, és – amennyiben a tagállam ezt támogatja – közösségi kereskedésre aktiválva van.

Ez önmagában nem alapozza meg a közösségen belüli termékértékesítés adómentesítéséhez való jogot. Az Európai Bizottság ebben egyértelmű álláspontot képvisel. A VIES-válasz önmagában csak az egyik bizonyíték a sok közül. Ezen felül igazolnia kell, hogy a vevő a tényleges kedvezményezett, a teljesítés megfelel a közösségen belüli feltételeknek, rendelkezésre áll a fuvarozási vagy feladási bizonylat, és a számla tartalmazza a kötelező fordított adózásra (reverse-charge) utaló szövegezést.

Így az első tervezési döntés strukturális jellegű: kezelje a VIES-státuszt és az áfakezelést külön mezőkben. Soha ne kösse össze a viesStatus: valid értéket közvetlenül a zeroRated: true értékkel. Abban a pillanatban, hogy összemosza ezt a két fogalmat, elveszíti annak a lehetőségét, hogy megvédjen egy adókezelést, amikor a bizonyítékokat megkérdőjelezik.

Előfeltételek az integrációs kód írása előtt

Mielőtt bármilyen végpontot meghívna, határozza meg a jelentéstételi kötelezettség körét. Ez a rész száraz, de a kihagyása költséges.

  • Mely országokban van a vállalkozásnak székhelye vagy telephelye.
  • Mely országokban rendelkezik áfaregisztrációval.
  • Hogy árukat, szolgáltatásokat, digitális szolgáltatásokat vagy ezek keverékét értékesíti-e.
  • Hogy a tranzakciók B2B, B2C vagy vegyes jellegűek-e.
  • Hogy belföldi regisztrációkat, OSS-t, IOSS-t, fordított adózást vagy piactéri adófizetésre kötelezett közvetítői (deemed-supplier) szabályokat alkalmaz-e.
  • Milyen kimeneteket kell biztosítania az API-nak: belföldi bevallási adatok, OSS/IOSS adatok, számlanyilvántartások, például a litván i.SAF, kizárólag könyvelési tételek, vagy adatok egy külön beküldő szolgáltató számára.

Ez azért lényeges, mert az OSS nem öleli fel az összes tranzakciót. Az olyan országban teljesített szolgáltatások, ahol a vállalkozás telephelyel rendelkezik, általában az adott ország belföldi bevallásába tartoznak, nem pedig az OSS-be. A telephelyeket már a kezdetektől modellezze külön, különben az összesítés során rosszul irányítja ezeket a teljesítéseket.

Ne kódoljon be fixen országonként egyetlen áfakulcsot sem. Az EU-ban normál, kedvezményezett, szuperkedvezményezett, parkolási, 0%-os és termékspecifikus adókezelések léteznek, amelyek ráadásul változnak. Egy adott termék megbízható forrása egy adott tagállamban az adott ország adóhatósága, míg a Bizottság TEDB rendszere országokon átívelő áttekintést nyújt. Rögzítse az egyes áfakulcs-döntések mögött a forrást és a verziószámot, hogy egy későbbi kulcsmódosítás ne írja át csendben egy korábbi tranzakció megjelenését.

Az adózási döntés modellezése, nem csupán a kulcsé

Egy stabil integráció alapköve a termékek és a kulcsok között elhelyezkedő adókategória-réteg. Rendelje hozzá a termékeket az kategóriákhoz, az kategóriákat az országspecifikus adókódokhoz, majd az érvényességi idővel rendelkező kulcsokhoz:

product/service
    → tax category
    → country-specific tax code
    → effective-dated rate and treatment

A nem biztonságos megközelítés, amely jelentési eltérésekhez vezet, a termék SKU → 21% áfa modell. Ugyanazon termékre különböző országokban eltérő kulcsok vonatkoznak, ráadásul egy adókulcs az időszak közepén is változhat. A Nordlet saját áfamegfelelőségi útmutatója pontosan ezt a kategória-alapú leképezést javasolja a termékek százalékokhoz való közvetlen kötése helyett.

Az adókategória-taxonómiának stabilnak és belsőnek kell lennie: normál kulcsú áruk, kedvezményes kulcsú áruk, elektronikus úton nyújtott szolgáltatások, általános szolgáltatások, adómentes értékesítés, 0%-os értékesítés, EU-n belüli B2B fordított adózás, EU-n belüli távértékesítés, IOSS-import, adófizetésre kötelezett közvetítői tranzakció. Minden downstream folyamat erre a taxonómiára épül.

A VIES-ellenőrzés mint aszinkron bizonyítékkezelési munkafolyamat

A hivatalos VIES-szolgáltatás egy SOAP/WSDL interfészt biztosít, amely egy kétbetűs országkódot és egy áfaszámot fogad. A dokumentált hibái meghatározóak a hibakezelés szempontjából: érvénytelen bemenet, globális és tagállami párhuzamossági korlátok, szolgáltatáselérhetetlenség, tagállami elérhetetlenség és időtúllépések. Kezelje ezeket különálló kimenetekként, ne pedig egyetlen „sikertelen” kategóriaként.

Egy terhelés- és ellenőrzésálló munkafolyamat a következőképpen néz ki:

  1. Normalizálja az áfaszámot: alakítsa a előtagot nagybetűssé, távolítsa el az engedélyezett szóközöket vagy írásjeleket, és a felhasználó által megadott eredeti értéket külön őrizze meg.
  2. Hálózati hívás előtt helyben ellenőrizze az országkódot és a szám formátumát.
  3. Küldje be a normalizált számot a VIES-nek.
  4. Tárolja a normalizált azonosítót, a kérés és válasz időbélyegét, az érvényes/érvénytelen/nem feldolgozott állapotot, a nyers választ, az esetleges szolgáltatási hibát, a vevő- és számlaazonosítókat, valamint az üzleti döntést.
  5. A sikeres eredményeket cache-elje (gyorsítótárazza) egy meghatározott, dokumentált ideig.
  6. Az átmeneti technikai hibákat ismételje meg (retry) exponenciális hátralékkal (backoff).
  7. A fel nem oldott vagy ellentmondásos eseteket irányítsa át kézi felülvizsgálatra.
  8. Végezze el az újbóli ellenőrzést, ha a gyorsítótárazott eredmény elavult, vagy olyan tranzakció előtt, ahol a bizonyíték kritikus fontosságú.

A Nordlet ellenőrzi az EU-s áfaszámot egy vevő felvételekor, és újraellenőrzi a számlázás előtt, ha a korábbi eredmény elavult – ez az a működés, amelyet érdemes leképezni függetlenül attól, hogy az ellenőrzés a platformon belül vagy a saját kódjában történik.

A kritikus szabály: ne tegye a fizetési folyamatot (checkout) szinkronná a VIES-szel. Egy szolgáltatáskiesés nem jelenti azt, hogy a szám érvénytelen. Ha a VIES időtúllépést jelez az értékesítés során, tartsa függőben a tranzakciót ellenőrzés céljából, vagy rendeljen hozzá ideiglenes státuszt. A fizetés blokkolása a Bizottság szolgáltatásának rendelkezésre állásától függően ügyfélszolgálati jegyeket generál, és egy jó ügyfél érvénytelenként való téves besorolása sokkal rosszabb.

Az ellenőrzési státusz elválasztása az adókezeléstől

Ha rendelkezésre áll a VIES-eredmény, a döntéshozó motornak további feladatai vannak. Tárolja ezeket külön mezőkben:

{
  "viesStatus": "valid",
  "vatTreatment": "intra_eu_b2b_reverse_charge",
  "evidenceStatus": "reviewed",
  "placeOfSupply": "DE"
}

Mielőtt fordított adózást vagy adómentességet alkalmazna, a motornak ellenőriznie kell, hogy a vevő ténylegesen a kedvezményezett-e, a vevő országa és az áfaszám előtagja konzisztens-e, a teljesítés megfelel-e a közösségen belüli feltételeknek, érvényesek-e a speciális teljesítési hely szabályok, létezik-e fuvarozási igazolás, az eladó adófizetésre kötelezett közvetítőként jár-e el, és a számla tartalmazza-e a kötelező szövegezést. A sikeres VIES-státusz, amely ezen tesztek egyikén sem megy át, nem jelenti a zöld utat.

Változtathatatlan (immutable) áfadöntés létrehozása a számlázás pillanatában

A számla kiállításakor mentse el a teljes döntést a számlához kapcsolódóan, ne csak a végső kulcsot:

invoice
  ├─ line tax category
  ├─ place of supply
  ├─ VAT scheme
  ├─ country-specific rate
  ├─ rate-table version
  ├─ VIES evidence reference
  ├─ location-evidence references
  ├─ legal-basis reference
  └─ marketplace-role flags

Az uniós számlázási szabályok megkövetelik az eladó és a vevő adatait, a számlaszámot, a leírást, az adóalapot, az áfakulcsot, az áfa összegét, valamint az esetleges fordított adózásra vagy adómentességre vonatkozó információkat. A helyesbítő számlákhoz és módosításokhoz egyértelmű hivatkozás szükséges az eredeti számlára.

A Nordlet főkönyve immutable (módosíthatatlan), így a helyesbítések új bejegyzéseken keresztül, például helyesbítő számlákkal vagy sztornírozó tételekkel történnek, nem pedig a lezárt rekordok szerkesztésével. Építse fel a rendszert ehhez a modellhez igazodva még akkor is, ha a tárolóeszköze technikailag lehetővé tenné a felülírást. Egy lezárt számla szerkesztése megszakítja a kapcsolatot az eredeti bevallás és a helyesbítés között, ami pontosan az a nyomvonal, amelyet egy könyvvizsgáló követ.

Könyvelés, webhookok és idempotencia

Egy értékesítés kettős könyvvitel szerinti tételeket hoz létre, amelyek megőrzik a kereskedelmi tranzakciót és az ország és séma szerint felosztott áfakötelezettséget is. Egy belföldi értékesítés könyvelése így néz ki:

Dr Accounts receivable / payment clearing
    Cr Revenue
    Cr VAT payable - DE - domestic

Egy EU-n belüli B2B fordított adózásos értékesítés bevétele áfa felszámítása nélkül könyvelődik, hivatkozással a fordított adózás igazolására. A pontos számlatükör az Ön döntése; a lényeg, hogy a jelentéstételi dimenziók minden könyvelési tételnél megmaradjanak: tagállam, séma, adókategória, kulcs, időszak, forrásszámla és korrekciós láncolat.

Az állapotváltozásokat ne lekérdezéssel (polling), hanem webhookok segítségével vezérelje. A Nordlet olyan eseményeket bocsát ki, mint a sale_invoice.paid, aláírja a küldeményeket, és hátralékkal újrapróbálkozik. Minden írási művelethez rendeljen determinisztikus idempotencia-kulcsot:

sale:{platform_order_id}:invoice:{invoice_version}

A fogyasztó (consumer) kódjának is idempotensnek kell lennie. Egy webhook megérkezhet kétszer, késve, vagy elsülhet azután, hogy az eredeti kérés már sikerült. Ellenőrizze az aláírásokat, rögzítse az eseményazonosítókat, helyezze karanténba a hibás formátumú eseményeket, dolgozza fel őket tartós soron keresztül, és ütemezés szerint egyeztesse a webhook állapotát az API-val. Ha még nem dolgozott aláírt webhookokkal és idempotencia-kulcsokkal, itt találhatók a legkifinomultabb duplikált könyvelési hibák.

Csoportosítás az OSS-hez és bevalláskész exportok előállítása

A jogosult OSS-tranzakciókhoz csoportosítsa a főkönyvi adatokat séma, a teljesítés szerinti tagállam, teljesítéstípus, árkategória, adókulcs, adóalap, áfa összege, feladási vagy telephelyi tagállam, pénznem és korrekciós időszak szerint.

Az uniós sémájú bevallás a fogyasztási tagállam szerint különíti el a teljesítéseket, és megkülönbözteti a nyilvántartási tagállamból nyújtott szolgáltatásokat, a többi telephelyről nyújtott szolgáltatásokat, valamint a különböző tagállamokból feladott árukat. Külön jelenti az adóalapot és az áfa összegét a normál és a kedvezményes kulcsokhoz. Az adómentes és 0%-os értékesítések teljesen kimaradnak az OSS-bevallásból.

Néhány operatív részlet, amely gyakran okoz fejtörést:

  • Az uniós és nem uniós OSS-időszakok negyedévesek, az IOSS havi. A bevallások és a fizetések a következő hónap végéig esedékesek.
  • Minden időszakra kötelező nullás bevallást benyújtani akkor is, ha nem történtek releváns értékesítések. Generáljon egy időszakos ellenőrzőlistát, és automatikusan hozzon létre egy nullás értékű bevallást.
  • Az OSS-bevallások euróban történnek, az EKB adóidőszak utolsó napi referenciaárfolyamát használva átváltáshoz, amennyiben szükséges. Tárolja a forráspénznemet, az árfolyamot, az árfolyam dátumát, az átváltott összeget és a módszert.

Az exportoknak a zárolt főkönyvből kell származniuk, soha nem egy különálló táblázatból. A táblázatos összesítések elveszítik a korrekciókat, a feladási országokat, a kulcsokat és a bizonyítékokat. Egy export tartalmazza a bevallási időszakot, sémát, fogyasztási tagállamot, feladási országot, teljesítési kategóriát, adókulcsot, adóalapot és áfaösszeget, pénznemet és alkalmazott árfolyamot, az aktuális és a korábbi időszaki helyesbítések összegét, forrásszámla-azonosítókat, helyesbítő számla hivatkozásokat, valamint az egyeztetési összesítéseket.

Legyen pontos abban, hogy mit biztosít itt az API. A Nordlet kiszámítja az OSS- és IOSS-bevallásokat a számlákból és a főkönyvből (beleértve a korábbi időszaki korrekciókat is), biztosítja a belföldi bevallási csomagokat Litvániához (FR0600), Németországhoz (UStVA) és Lengyelországhoz (JPK_V7M), valamint VMI-kész i.SAF regisztereket generál Litvániához. Ez bevalláskész adatot jelent. Egyetlen API-hívás nem nyújtja be az összes ország áfabevallását az egyes nemzeti átjárókon keresztül, és egyetlen bevallás sem kerül beküldésre az Ön nevében a hatósághoz. Kezelje a könyvelést, a bevallás-előállítást, az exportot, az átjárón történő beküldést és a fizetési visszaigazolást különálló állapotokként a rendszerében. Az EU áfamotor útmutató dokumentálja, hogy mely eseteket oldja meg a motor, és hol lépnek működésbe a figyelmeztetései.

Az időszak lezárása

A felülvizsgálat és jóváhagyás után egyeztesse a számlákat a könyvelési tételekkel, a főkönyvi áfaegyenlegeket a bevallási adatszettel, exportálja a bevallást, rögzítse a bevallási és fizetési hivatkozásokat, majd zárja le az időszakot. A Nordlet blokkolja a lezárt hónapra történő könyvelést, az API-n keresztül is. A lezárás utáni korrekciók egy későbbi időszakba kerülnek, az eredeti dokumentumra és az érintett bevallási időszakra mutató kifejezett hivatkozásokkal.

Gyakoribb hibaforrások és elkerülésük

Hibaforrás Miért történik Megoldás
Érvényes VIES-eredmény kezelése elegendőként a 0%-os kulcshoz A VIES nem alapozza meg az adómentességi jogot Tárolja a vevői, teljesítési, szállítási és számlabizonyítékokat az eredménnyel együtt
Érvénytelen eredmény kezelése regisztráció hiányaként Előfordulhat, hogy a szám nem aktivált közösségi kereskedésre, vagy az adatbázis késik Különítse el az érvénytelen, nem feldolgozott és technikai hibákat; irányítsa át a vitákat felülvizsgálatra
A fizetés szinkronizálása a VIES-szel Párhuzamossági korlátok, időtúllépések, leállások Aszinkron validáció, rövid ideig tartó gyorsítótárazás, backoff, ideiglenes státuszok
Eredmények örökös gyorsítótárazása A regisztrációs és aktiválási státusz változhat Tároljon időbélyegeket és lejárati időt; számlázás előtt ellenőrizze újra, ha elavult
Termékek közvetlen leképezése áfaszázalékokra A kulcsok és mentességek országtól és dátumtól függenek Termék -> kategória -> országkód -> érvényességi idővel rendelkező kulcs
OSS rekonstruálása táblázatokból Az összesítésekből hiányoznak a korrekciók, feladási országok, bizonyítékok Származtassa a változatlan főkönyvből, minden tételen szereplő dimenziókkal
Belföldi telephelyes szolgáltatások belefoglalása az OSS-be Bizonyos szolgáltatások a belföldi bevallásba tartoznak Modellezze külön a telephelyeket, összesítés előtt sémák szerint irányítsa át
Nullás bevallások kihagyása Az OSS minden időszakra bevallást követel meg Generáljon ellenőrzőlistát és automatikusan hozzon létre nullás értékű bevallásokat
Lezárt számlák szerkesztése helyesbítéshez Megszakítja a bevallás-helyesbítés láncolatot Használjon helyesbítő számlákat és sztornírozó tételeket egy későbbi időszakban

Mit tennénk először?

Ha holnap kezdenénk ezt az integrációt, először az adókategória-réteget és az áfadöntési rekordot építenénk fel anélkül, hogy akár egyetlen jelentéstételi végponthoz is hozzáérnénk. Stabilizálnánk a taxonómiát, hozzárendelnénk a termékeket a kategóriákhoz, és biztosítanánk, hogy a döntési rekord rögzítse a nyers országszintű jeleket, valamint a teljesítési hely kiválasztásának indokát. Minden más – VIES, könyvelés, OSS csoportosítás, export – arra épül, hogy ez a modell helyes legyen.

Ezt követően beállítanánk a VIES-t aszinkron bizonyítékkezelési lépésként a négy különálló állapottal, és tesztelnénk egy sandbox (teszt) cégnél a legnehezebb esetekkel (időtúllépések, feldolgozatlan eredmények, eltérő előtagok), mielőtt a rendszert éles környezet közelébe engednénk. A fenti hibaforrások szinte teljes egészében elkerülhetők, ha az adamodell már az első könyvelési tételtől kezdve hordozza a bizonyítékokat és a jelentéstételi dimenziókat.

FAQ

Jelenti-e egy érvényes VIES-válasz azt, hogy 0%-os adókulccsal számlázhatok egy EU-n belüli B2B értékesítést?

Nem. A VIES megerősíti, hogy egy áfaszám regisztrálva van, és – ahol támogatott – közösségi kereskedésre aktiválva van. A közösségen belüli termékértékesítés adómentesítésének joga további bizonyítékoktól függ: attól, hogy a vevő a tényleges kedvezményezett, a szállítási vagy feladási igazolástól, a helyes teljesítési helytől és a kötelező számlaszövegezéstől. A VIES-eredményt egyetlen bemenetként tárolja, ne pedig magaként a döntésként.

Blokkolnia kell-e a VIES-ellenőrzésnek a fizetési folyamatot (checkout)?

Nem szabadna. A VIES időtúllépést generálhat, vagy elérheti a párhuzamossági korlátait, és egy kimaradás nem azonos az érvénytelen számmal. Végezze el az ellenőrzést aszinkron módon, gyorsítótárazza a sikeres eredményeket egy dokumentált ideig, ismételje meg az átmeneti hibákat, és a kétértelmű eseteket tartsa függőben felülvizsgálatra egy ideiglenes státusszal ahelyett, hogy meghiúsítaná az értékesítést.

Benyújthatja-e egy felhőalapú számviteli API automatikusan az áfabevallásaimat?

Képes bevalláskész adatok előállítására séma és tagállam szerint csoportosítva, a korrekciókat is tartalmazó, immutable (módosíthatatlan) főkönyvből kiszámítva. Hogy az adott termék és ország függvényében benyújtja-e az adatokat az egyes nemzeti beküldő átjárókon keresztül is, az termékfüggő. A Nordlet kiszámítja az OSS- és IOSS-bevallásokat, belföldi bevallási csomagokat küld Litvániának, Németországnak és Lengyelországnak, valamint VMI-kész i.SAF regisztereket generál Litvániához, de semmit sem nyújt be az adóhatósághoz az Ön nevében. Kezelje a könyvelést, a bevallás-előállítást, az exportot, az átjárón történő beküldést és a fizetést különálló állapotokként ahelyett, hogy feltételezné, egyetlen hívás mindenhol elvégzi a feladatot.

Hogyan kezeljem a korrekciókat egy időszak lezárása után?

Könyvelje le őket egy későbbi időszakban, az eredeti dokumentumra és az érintett bevallási időszakra mutató kifejezett hivatkozásokkal. A Nordlet blokkolja az új könyveléseket a lezárt hónapra, az API-n keresztül is, így a korrekciók helyesbítő számlákkal vagy sztornírozó tételekkel futnak át, nem pedig szerkesztésekkel. Ez megőrzi a kapcsolatot az eredeti bevallás és a módosítás között.

További olvasnivalók