Az oldal megtekintéséhez kérjük, engedélyezze a JavaScriptet.

sERPa súgó

Általános módosítások

Korábbi két darab XSD (invoiceApi és invoiceData) szétválasztásra került. 2.0-ban a technikai érvénytelenítés (korábbi adatsolgáltatás érvényesítése) adatait az invoiceAnnulment XSD tartalmazza. Az invoiceData XSD-ben a korábbi választás eltűnik.

Bevezetésre kerül egy új XSD, invoiceMetrics XSD, amely a szolgáltatás működési metrikáit tartalmazza. Jelenleg nem aktív, később lesz dokumentálva.

Minden sémában új namespace kerül bevezetésre: http://schemas.nav.gov.hu/OSA/2.0/ (jelenleg a lap nem elérhető)

 

Eltérő verziók közötti általános összefüggések

Új főverzióhoz minden esetben új URL-ek és az új XML namespace tartozik. A kisverziók öröklik annak a főverziónak az URL és namespace adatait, amelynek a részét képezik. Az átállási idő alatt az XML API két eltérő verziója is egymás mellett működik, így azok között összefüggést biztosítottak, amelyek a következők:

Az egyes főverziók tokenjei között nincs átjárás. (pl. létező 1.x-es tokennel nem lehet 2.x-es számla adatot beküldeni és fordítva sem)

Minden beküldött /manageInvoice és /manageAnnulment kérés feldolgozási státuszát minimum a beküldéshez tartozó requestVersion értékű lekérdezéssel lehet csak lekérdezni, alacsonyabbal sosem. (pl. 1.1-es /manageInvoice feldolgozási státusza lekérdezhető 2.0-ás lekérdezéssel, fordítva viszont nem)

Minden sikeresen befogadott számla lekérdezhető teljes adattartalmában, ha a lekérdezés requestVersion értéke azonos az aktuálisan támogatott főverzió értékével. Az egyes főverziók között viszont alulról nincs átjárás, az alacsonyabb verziók csak a saját beküldéseiket kereshetik. (pl. 2.x-es lekérdezések rálátnak teljes körően az 1.x és 2.x-es számla adatokra is, míg az 1.x-es lekérdezések csak a saját 1.0-ás és 1.1-es adataikat látják

Minden alapszámlához csak olyan módosító vagy stornó számláról szóló adatszolgáltatás fűzhető, amelynek a requestVersion értéke minimum azonos az alapszámla requestVersion értékével, alacsonyabbal sosem. (pl. 1.1-es alapszámlához beküldhető 2.0-ás stornó adatszolgáltatás, fordítva viszont nem

 

API XSD általános módosítások

1.Minden request és response saját komplex típust kapott

2.Minden requestben kötelező a software adatok megadása a sémában definiált mezőkkel

3.Minden requestben változik a requestSignature számításának módja.

Request signature számítása

Számítás manageInvoice és manageAnnulment operáció esetén

A requestSignature alapját manageInvoice és manageAnnulment operáció esetén a requestSignature egy parciális hitelesítésből, illetve 1-100 közötti index hash értékek összefűzéséből és további SHA3512 hash műveletből számítódik. A parciális hitelesítést következő értékek összefűzéséből lehet megállapítani:

a requestId értéke

a timestamp tag értéke YYYYMMDDhhmmss maszkkal, UTC időben

a technikai felhasználó aláíró kulcsának literál értéke

Az összefűzéskor a timestamp maszkoláshoz ki kell venni a dátum-és időpont szeparátorokat, valamint az időzónát.

Az index hash értékeket az egyes indexek alatt álló operation és base64 tartalom összefűzését követő nagybetűs SHA3-512 hash értékéből lehet megállapítani:

invoiceOperation vagy annulmentOperation literál értéke

az invoiceData vagy invoiceAnnulment tagban található base64 tartalom

A kiszámított index hash-eket a parciális hash mögé kell fűzni az indexek által leírt sorrendben. Az ily módon és sorrendben konkatenált string nagybetűs SHA3-512 hash eredménye lesz a requestSignature értéke.

 

Számítás manageInvoice és manageAnnulment operáción kívül

A manageInvoice és manageAnnulment operáció kivételével minden más operációban – mivel ezekben nem merül fel a adatbeküldés – a requestSignature egyenlő a parciális hitelesítés SHA3-512 hash értékével, amelyet a következő értékek összefűzéséből lehet megállapítani:

a requestId értéke

a timestamp tag értéke yyyyMMddHHmmss maszkkal, UTC időben - a technikai felhasználó aláíró kulcsának literál értéke

Az ily módon és sorrendben konkatenált string nagybetűs SHA3-512 hash eredménye lesz a requestSignature értéke.

API XSD operációk módosításai

1.Bevezetésre került a /manageAnnulment operáció. A kérésben van lehetőség technikai érvénytelenítést beküldeni, tehát a 2.0-ban a technikai érvénytelenítést már nem a /manageOperáció alatt kell beküldeni. 1.9.1 fejezet

2.A /manageInvoice operáció típusából törlésre került a korábbi technicalAnnulment boolean, valamint külön típust kapott az operáció, melynek megadható értékei csak CREATE, MODIFY, STORNO

3.3) A korábbi heterogén /queryInvoiceData lekérdező operáció szétválasztásra került három részre:

a. /queryInvoiceCheck, amely számlaszám alapján csak a számla létezését ellenőrzi, a számla adatainak visszaadása nélkül

b./queryInvoiceDigest, amely paraméteres számla lekédezési lehetőséget biztosít, és lapozható válaszban csak a számlák meghatározott üzleti adatait (kivonatát) adja vissza

c.a szétválasztás után a /queryInvoiceData operációnak egyetlen felelősségi köre marad, hogy számlaszám alapján a számla teljes adattartalmát lekérdezhetővé tegye

d.mind a három lekérdezés használható kiállítói és vevői oldalról is, a részletekről lásd a megfelelő operációk leírásait az 1.9.3, 1.9.4 és 1.9.5 fejezetekben

4.Az interfész szolgáltatásai között megjelent a /queryServiceMetrics operáció, amely a rendszer és a számla fogadó szolgáltatás üzleti metrikáit teszi lekérdezhetővé. A szolgáltatás jelenleg nem aktív, a későbbiekben kerül megnyitásra és dokumentálásra.

5.A számlák feldolgozási státuszát visszaadó /queryInvoiceStatus operáció átnevezésre került /queryTransactionStatus névre. A szolgáltatás tranzakció azonosító alapján képes technikai érvénytelenítéseket tartalmazó tranzakció esetén visszaadni a jóváhagyás státuszát és egyéb üzleti adatait. Ezen felül a válaszban visszaadott pointer tag kiegészítésre került az originaInvoiceNumber taggal, ami MODIFY és STORNO adatszolgáltatás esetén lesz töltve.

6.Az adószám lekérdezésre használt /queryTaxpayer operáció válasza létező adószám lekérdezésekor tartalmazza az adózó rövid nevét és az adózó ÁFA csoport tagságát, ha volt ilyen. A belső címadatok nem saját típusból, hanem a data sémaleíró DetailedAddressType típusából öröklődnek.

7.A rövid név jelenleg még nem kerül töltésre egy hiányzó adatkapcsolati fejlesztés miatt. Amint a fejlesztés megvalósul, külön hírt tesznek közzé a rövid név elérhetőségéről.

 

Törölt szinkron hibaüzenetek

INVALID_OPERATION

BAD_QUERY_PARAM

 

Új szinkron hibaüzenetek, hibák okai, teendők

1.MULTIPLE_QUERY_RESULT_FOUND - 17

1.1.Hiba oka: a keresett számlaszám többször szerepel érvényesként a rendszerben

1.2.Teendő: A hibaüzenet a /queryInvoiceData és /queryInvoiceCheck operációkban adható vissza akkor, ha a lekérdezett számlaszám többször érvényesként szerepel a rendszerben. Ebben az esetben a számlaszámot technikailag érvényteleníteni kell, majd a jóváhagyást követően az adatszolgáltatást meg kell ismételni a helyes adatokkal.

2.BAD_QUERY_PARAM_OVERLAP – 18

2.1.Hiba oka: dátumátfedés a lekérdező paraméterekben

2.2.Teendő: A hibaüzenet a /queryInvoiceDigest operációban adható vissza akkor, ha a kötelező keresőparaméterek (invoiceIssueDate vagy insDate) dátumai átfedik egymást. A paraméterek között legfeljebb egyenlőség engedélyezett. Javítani kell!

3.BAD_QUERY_PARAM_RANGE_EXCEEDED – 19

3.1.Hiba oka: túl nagy lekérdezési intervallum

3.2.Teendő: A hibaüzenet a /queryInvoiceDigest operációban adható vissza akkor, ha a kötelező keresőparaméterek (invoiceIssueDate vagy insDate) dátumai közötti távolság nagyobb, mint 35 nap. Szűkíteni kell a keresett intervallumot.

4.BAD_QUERRY_PARAM_EQ_NOT_DTANDALONE – 20

4.1.Hiba oka: egyenlőségre történő keresés nem önmagában áll

4.2.Teendő: A hibaüzenet a /queryInvoiceDigest operációban adható vissza akkor, ha a relációs kereső paraméterek között valamelyik csomópont kétszer van megképezve, és a kettő közül az egyikben az EQ keresőfeltétel szerepel. Az EQ kereső operator adott csomóponton csak önmagában állhat, javítani kell!

5.BAD_QUERRY_PARAM_OPERATOR_COLLOSION -21

5.1.Hiba oka: hibás intervallum meghatározás a lekérdezésben

5.2.Teendő: A hibaüzenet a /queryInvoiceDigest operációban adható vissza akkor, ha a relációs kereső paraméterek között valamelyik csomópont kétszer van megképezve, és a keresőfeltételek nyitott intervallumot határoznak meg (pl: GT és GT, vagy LT és LTE kereső operátorok állnak párban) Az intervallumos keresésnél a keresőoperátorok közül az egyiknek GT vagy GTE, míg a másiknak LT vagy LTE értéket kell adni.

6.BAD_QUERRY_PARAM_SUPPLIER_NOT_EXPECTED -22

6.1.Hiba oka: kiállítóként kereséskor nem szabad a kiállító adószámára szűrni

6.2.Teendő: A hibaüzenet mindhárom számla lekérdező operációban visszaadható akkor, ha a keresést számlaszám megadásával végezzük, a keresés kiállítóként történik és a kiállítói adószámra szűrés ki van töltve. A kérésből törölni kell a supplierTaxNumber taget!

7.BAD_QUERRY_PARAM_SUPPLIER_EXPECTED -23

7.1.Hiba oka: vevői kereséskor többértelmű eredményhalmaz, szűrni kell a kiállító adószámára

7.2.Teendő: A hibaüzenet mindhárom számla lekérdező operációban visszaadható akkor, ha a keresést számlaszám megadásával végezzük, a keresés vevőként történik és a keresett számlaszámot több kiállító is kiállította ugyan azon vevő részére. A kérésben meg kell adni a supplierTaxNumber taget. A szűrésre használható adószámok listáját a /queryInvoiceDigest operációból lehet megállapítani.

Mindegyik üzenetre igaz, hogy:

http válasz: http 400 BAD_REQUEST

Response body: GeneralErrorResponse XML tag

funcCode: Error

CREATE adattartalom változásai

Az invoiceData séma változásai

a számla legfelső szintjére kiemelésre került a számla sorszáma és a kiállításának dátuma

a lineExpressionIndicator tag kötelezővé vált, default értéke false a többi boolean mezőben összhangban

a PostalCodeType új patternt kapott, a bevitt érték kötelező hossza 4-ről 3-ra csökkent és elfogadott a szóköz és a kötőjel is, amennyiben a stringben nem kezdő vagy záró pozíción áll

a lineDescription tag 512 hosszú lett

ProductCodeCategoryType új enummal bővült (TESZOR), a maximális hossza 6-ra változott

a productCodeOwnValue tag 255 hosszú lett

a számlafejben a számla további üzleti adatait leíró korábbi invoiceData csomópont átnevezésre került invoiceDetail névre

az invoiceDeliveryDate tag kötelezővé vált

új tartalomként bekerült a számla üzleti adatai közé a kisadózó jelzése (smallBusinessIndicator) és az időszakos elszámolás (periodicalSettlement) jelzése

új tartalomként opcionális elemként bekerült a számlasorok adatai közé a termék/szolgáltatás minősítésére használható lineNatureIndicator, a kitöltési útmutatóról szóló segédlethez ld: 2.3.17

új tartalomként a normál és egyszerűsített számlasorok, valamint a normál és egyszerűsített számláknál használt számla összesítők is kiegészítésre kerültek azon monetáris kifejezések párjával, amelyek eddig vagy csak a számla pénznemében, vagy csak forintban voltak kifejezve, a módosítást követően minden monetáris kifejezésnek létezik a számla pénznemében és forintban is kifejezett összege a következők szerint:

oegységár forintban (line/unitPriceHUF)

otétel nettó összege forintban (invoiceLines/line/lineAmountsNormal/lineNetAmountData/lineNetAmountHUF)

otétel bruttó összege forintban (invoiceLines/line/lineAmountsNormal/lineGrossAmountData/lineGrossAmountNor malHUF)

otétel bruttó összege forintban (invoiceLines/line/lineAmountsSimplified/lineGrossAmountSimplifiedHUF)

oszámla bruttó összege forintban (invoiceSummary/summaryGrossData/invoiceGrossAmountHUF)

oszámla nettó összege forintban (invoiceSummary/summaryNormal/invoiceNetAmountHUF)

oszámla adótartalom bruttó összege forintban (invoiceSummary/summarySimplified/vatContentGrossAmountHUF)

oadómérték nettó összege forintban (invoiceSummary/summaryNormal/summaryByVatRate/vatRateNetData/vatRateNet AmountHUF)

oadómérték bruttó összege forintban (invoiceSummary/summaryNormal/summaryByVatRate/vatRateGrossData/vatRateG rossAmountHUF)

oExchangeRateType definiciójában a <xs:minInclusive value="0"/> <xs:minExclusive value="0"/>-ra változott, ezért oda az átháritott áfa/áfaösszesen kerül vagy ha ez nincs akkor 1. (132 verziótól)

MODIFY és STORNÓ adattartalom változásai

Megszűnnek a korábbi modificationIssueDate, modificationTimestamp és lastModificationReference elemek.

A módosító okirat kiállítási dátumát a számla kiállítási dátumát tartalmazó invoiceIssueDate elemben kell közölni ugyan úgy, ahogy számla esetében is.

Plusz elemként megjelenik a modificationIndex, amely a módosítás logikai sorrendjét írja le a számlának. A részletszabályokról ld: 2.2.1 fejezet.

Technikai érvénytelenítés új indoka

A számla kiállítási dátumának kiemelésével logikailag módosíthatatlanná vált az invoiceIssueDate tag értéke. A technikai jellegű helyesbítéshez a technikai érvénytelenítés okát leíró annulmentCode új enummal, az ERRATIC_INVOICE_ISSUE_DATE értékkel bővült

Új ERROR üzenetek, hiba okok, teendők

MODIFICATION_INDEX_NOT_UNIQUE – 16

oOperációk: MODIFY, STORNO

oSzámla típus: Minden típus

oResponse body: businessValidationMessages XML tag

oHiba oka: a módosítás sorszáma nem egyedi

oTeendő: A hivatkozott számla módosításáról megadott modificationIndex értékkel már szolgáltattak adatot. Ellenőrizni kell az adatszolgáltatás tartalmát.

CUSTOMER_INFO_MISSING – 17

oOperációk: CREATE

oSzámla típus: Minden típus

oResponse body: businessValidationMessages XML tag

oHiba oka: hiányoznak a vevő adatai

oTeendő: Számláról szóló adatszolgáltatás esetén a customerInfo csomópont képzése kötelező, javítani kell.

INVOICE_REFERENCE_EXPECTED - 18

oOperációk: MODIFY, STORNO

oSzámla típus: Minden típus

oResponse body: businessValidationMessages XML tag

oHiba oka: a módosító okirat adatai hiányoznak

oTeendő: Módosításról (MODIFY) vagy érvénytelenítésről (STORNO) szóló adatszolgáltatás esetén a módosítás adatait leíró invoiceReference csomópont képzése kötelező, javítani kell.

INVOICE_REFERENCE_NOT_EXPECTED - 19

oOperációk: CREATE

oSzámla típus: Minden típus

oResponse body: businessValidationMessages XML tag

oHiba oka: a módosító okirat adatait nem szabad feltüntetni

oTeendő: Számláról (CREATE) szóló adatszolgáltatás esetén a belső tartalomban az invoiceReference csomópont nem szerepelhet, javítani kell.

MODIFY_WITHOUT_MASTER_MISMATCH – 20

oOperációk: MODIFY, STORNO

oSzámla típus: Minden típus

oResponse body: businessValidationMessages XML tag

oHiba oka: előzmény nélkülinek jelölt módosítás előzményes

oTeendő:  Módosító okiratról szóló adatszolgálatásban a módosítás előzmény nélkülinek volt jelölve (modifyWithoutMaster = true) de a hivatkozott számla ennek ellenére érvényesként szerepel a rendszerben. Ellenőrizni kell az adatszolgáltatás tartalmát. (a fordított esetet az INVALID_INVOICE_REFERENCE elfedi)

LINE_MODIFICATION_EXPECTED – 21

oOperációk: MODIFY, STORNO

oSzámla típus: Minden típus

oResponse body: businessValidationMessages XML tag

oHiba oka: számlasor módosítási adatai hiányoznak

oTeendő: Módosításról (MODIFY) vagy érvénytelenítésről (STORNO) szóló adatszolgáltatás esetén a számlasorokban kötelező a lineModificationReference csomópont szerepeltetése, javítani kell.

LINE_MODIFICATION_NOT_EXPECTED – 22

oOperációk: CREATE

oSzámla típus: Minden típus

oResponse body: businessValidationMessages XML tag

oHiba oka: számlasor módosítási adatait nem szabad feltüntetni

oTeendő: Számláról (CREATE) szóló adatszolgáltatás esetén a belső tartalom számlasoraiban a lineModificationReference csomópont nem szerepelhet, javítani kell.

CUSTOMER_NOT_IDENTICAL – 23

oOperációk:        MODIFY, STORNO

oSzámla típus: batchInvoice

oResponse body: businessValidationMessages XML tag

oHiba oka: kötegelt módosításról szóló adatszolgáltatásban a vevő adatai nem azonosak

oTeendő: Kötegelt módosítás (batchInvoice) esetén ha a vevő adószáma meg van adva, akkor annak minden batchIndex alatt azonos értékűnek kell lennie. Javítani kell

 

Szétválasztott ERROR üzenetek

1.INVALID_INVOICE_REFERENCE

az operáció nem CREATE és nincs a belső tartalomban invoiceReference csomópont: INVOICE_REFERENCE_EXPECTED

az operáció CREATE és a belső tartalomban szerepel invoiceReference csomópont: INVOICE_REFERENCE_NOT_EXPECTED

számla érvényesként szerepel az adózó számlái között): MODIFY_WITHOUT_MASTER_MISMATCH

A szétválasztás után az INVALID_INVOICE_REFERENCE hibakód csak egy logikai esetben adható vissza: ha a hivatkozott számla nincs meg az adózó számlái között érvényesként.

 

2.INVOICE_LINE_ALREADY_EXIST

az operáció nem CREATE és nincs a belső tartalom számlasoraiban lineModificationReference csomópont: LINE_MODIFICATION_EXPECTED

az operáció CREATE és a belső tartalom számlasoraiban szerepel a lineModificationReference csomópont: LINE_MODIFICATION_NOT_EXPECTED

A szétválasztás után az INVOICE_LINE_ALREADY_EXISTS hibakód csak egy logikai esetben adható vissza: ha lineOperation = CREATE és a lineNumberReference értéke létezik a számla egyesített állapotban.

Törölt ERROR üzenetek

1.MANDATORY_CONTENT_MISSING

2.LINE_EXPRESSION_INDICATOR_MISSING

 

WARN működési módosítások

1.az INCORRECT_DATE_AGGREGATE_INVOICE_DELIVERY_DATE nevű WARN nem fut MODIFY és STORNO operácókban

2.a korábbi INCORRECT_DATE_INVOICE_MODIFICATION_ISSUE_DATE_ORIGINAL nevű WARN átnevezésre került INCORRECT_DATE_MODIFICATION_ISSUE_DATE_EARLY névre

WARN leírások módosításai

A WARN üzenetek message tagban szereplő leírásai egyértelműsítésre kerültek annak érdekében, hogy a felhasználóknak megjelenítve közérthetőbben tükrözzék a problémát és a megoldás módját. A módosított leírás a dokumentáció I. mellékletében található.

Törölt WARN üzenetek

INCORRECT_DATE_INVOICE_MODIFICATION_TIMESTAMP

INCORRECT_HEAD_DATA_LAST_MOD_INVOICE_NUMBER

INCORRECT_HEAD_DATA_INVOICE_NUMBER_LAST_MOD_DOC_NUMBER

INCORRECT_HEAD_DATA_ORIGINAL_LAST_MOD_DOC_NUMBER

ISSUE_DATE_TIMESTAMP_MISMATCH