Ez a dokumentum a számlázó programok felhasználói és fejlesztői számára foglalja
össze, hogy a NAV ellenőrzési tapasztalatai milyen tipikus hibákat azonosítottak
a számlázó programok adatexport funkciója kapcsán.
A 23/2014 (VI.30) NGM rendelet, a számla és a nyugta adóigazgatási azonosításáról, valamint az elektronikus formában megőrzött számlák adóhatósági ellenőrzéséről előírja, hogy az adózó által használt számlázó programnak rendelkeznie kell „Adóhatósági Ellenőrzési Adatszolgáltatás” funkcióval, amellyel adatexport végezhető. A rendelet értelmező rendelkezése szerint az adatexport: az adóalany által elektronikus adathordozón tárolt adatoknak az adóhatóság rendelkezésére bocsátása a 2. melléklet szerint és a 3. mellékletben meghatározott adatszerkezetben. A jellemző hibák magyarázatához célszerű megvizsgálni az adatszolgáltatás, és a mellékletben meghatározott adatszerkezet összefüggéseit.
Verziószám: 1.0
Lezárás dátuma: 2017-04-03
Kezdetnek célszerű talán az Ellenőrzési adatszolgáltatás során létrehozott adat-xml
és a séma dokumentum összefüggéseit - a részletes informatikai magyarázat helyett
úgymond - „papír alapra” fordítani.
Ha két partner egymás között adatokat kíván cserélni, el kell dönteniük az adatcsere
módját és annak tartalmát. Azt is meg kell határozniuk, hogy mely adatokra tartanak
mindenképpen igényt, illetve melyek lehetnek opcionálisak. A döntés eredményeként
létrehozhatnak például a kívánt adatokat tartalmazó űrlapot, amelyhez egy részletes
útmutatóban meghatározzák az űrlap kötelezően kitöltendő, valamint üresen hagyható
mezőit. Beleírják az értelmezést segítő információkat is. Például, hogyha az adatszolgáltató
rendelkezik az egyébként nem kötelező adattal, akkor azt is rá kell vezetni az
űrlapra.
A 23/2014 (VI.30) NGM rendeletre, illetve az adózók által használt számlázó programokra
vetítve, az űrlap az az XML állomány, amelyet a számlázó program „Adóhatósági
ellenőrzési adatszolgáltatás” menüpontja előállít. A kitöltési útmutatója pedig
a rendelet 3. sz. mellékletét képező Xml Séma Dokumentum (XSD), amely biztosítja
az átadott adatok azonos értelmezését és feldolgozhatóságát.
A sémadokumentum tartalmazza különösen az adatok nevét, típusát (szöveg, különböző
számértékek, dátum), kötelező, vagy opcionális voltát, továbbá a kitöltést segítő
megjegyzéseket. Például, hogy bizonyos adatokat csak meghatározott számlatípus
esetében kell kitölteni. Az XML és XSD összekapcsolásával, informatikai eszközökkel
azonnal ellenőrizhető, hogy az űrlapot szabályosan töltötték-e ki, vagyis az adatszolgáltatás
megfelel-e a rendeletben közzétett szabályoknak.
Ha az adott tény vagy adat a számla kötelező eleme, akkor a séma dokumentumban van megfelelő elem az adat tárolására. Ilyenkor kötelező az adat rögzítése az XML fájlban (illetve nyilván a számlán is). Ha az adott dolog nem a számla kötelező eleme, akkor az XML állományban csak akkor kell szerepelnie, ha a kiadott számlán szerepel és az XSD-ben van megfelelő elem. Ha valamilyen adat nem szerepel a számlán és egyébként nem is kötelező eleme annak, akkor az XML állományban sem kell feltüntetni. Az alábbi folyamatábra segíthet az egyes, konkrét adatok esetében az XML állományban történő szerepeltetés szükségszerűségének eldöntésében.
A hibák két alapvető csoportba sorolhatók. Az egyik, amikor az adatszolgáltatást
tartalmazó xml érvénytelen (invalid), vagyis nem felel meg az XSD-ben rögzített
szabályoknak. A másik, amikor az érvényes XML tartalmaz helytelen adatokat.
3.1.1. A séma dokumentum figyelmen kívül hagyása
A számlázó program olyan ellenőrzési adatszolgáltatást (XML) állít elő, amelyben az adatok nem a séma dokumentumban meghatározott néven, és/vagy szerkezetben szerepelnek. Az így készült állomány a feldolgozó program számára értelmezhetetlen.
3.1.2. A séma dokumentum szabályainak megsértése
Hiányzó adatok
Az adatszolgáltatásban használt adatnevek, megfelelnek az XSD-nek, azonban hiányoznak
belőle kötelező adatok. Például a címadatok három kötelező adata (irányítószám,
település neve, közterület neve) valamelyikének hiánya.
Hibás adattípusok
A séma dokumentum tartalmazza a beírható számértékek formátumát és a beírható
szöveg hosszát is. Hibás, ha az adat eltér a meghatározott formátumtól, például
a 10 egész és 2 tizedes jegyet tartalmazó decimal típusú adat 4 tizedes karaktert
tartalmaz, vagy ha az irányítószám szöveges adata 10 karakternél többet tartalmaz.
Hibás tizedesjel
Az XML formátum a „.” jelet használja tizedes határolóként. Hibát eredményez,
ha a tizedesjelkén „,” karakter kerül a számformátumokba
A fent hibák kiküszöbölésére az elkészült XML állományokat érvényesíteni (validálni) kell, vagyis össze kell vetni az xsd-vel. Erre léteznek speciális informatikai fejlesztő eszközök, de az Interneten is találhatók olyan oldalak, ahol ezek az ellenőrzések elvégezhetők.
Ahogy azt fenti ábra is tartalmazza, az adatszolgáltatásban szerepelnie kell a számlák kötelező adatainak, illetve azon nem kötelező adatoknak, amelyet a kiállított számlán feltűntettek, és az XSD meghatároz rá adatnevet. A számla egyes rovataihoz kapcsolódó adatnevekhez pedig az abban szereplő adatot kell feltűntetni az adatszolgáltatásban.
Adathiány
Hibás, ha a kibocsátott számlán feltűntetésre került adat hiányzik az adatszolgáltatásból.
Például: A séma dokumentum opcionális elemként határozza meg a fizetési határidőt.
Azonban ha a kibocsátott számlán a fizetési határidő feltűntetésre került, azt
az adatszolgáltatásban is szerepeltetni kell.
Szemantikai hiba, adattévesztés
Hibás, ha az adatszolgáltatásban egy adatnévhez másik adatnév adata kapcsolódik,
például a közterület neve szerepel az irányítószám adatnév alatt. Ez a hiba a
10 karakternél hosszabb közterületnevek esetében már érvényességi hibát is okoz.
Az előírttól eltérő karakterkészlet
Az emberi nyelvek leírásához használt karakterek sokkal változatosabbak, mint
amennyire a számítógépek formális nyelve azt eleinte kezelni tudta. Az informatika
fejlődésével a – kezdetben csak az angol ábécé írásjeleit tartalmazó – karakterkészlet
folyamatosan változott. A különféle speciális írásjeleket kezelni képes készletek
különböző neveket kaptak (ANSI, ASCII, OEM852 stb.). Végül elkészült egy univerzális,
minden írásjelet „ismerő” karakterkészlet UTF-8 néven. Az adatszolgáltatás elkészítésekor
ezt a karakterkészletet kell használni. Más karakterkészlet használata esetén
az adattartalomban furcsa, értelmezhetetlen írásjelek jelenhetnek meg. Azért csak
ott, mert az adatnevekhez az XML szabvány csak az angol ábécé betűit engedélyezi.
Viszont némely esetben – például magyar ékezetes karaktereknél – az eredetileg
egy karakternyi írásjel helyett két karakter jelenik meg. Ez akár érvényességi
hibához is vezethet, ha a szöveg éppen a nem várt plusz karakterrel lépi túl az
engedélyezett hosszúságot.
Az érvényes XML-ben jelentkező hibák kiküszöbölése a bevezetés előtti körültekintő
teszteléssel biztosítható.