Download the PHP package rrd108/nav-m2m without Composer
On this page you can find all versions of the php package rrd108/nav-m2m. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package nav-m2m
NAV-M2M PHP SDK
Ez a PHP SDK (Software Development Kit) a Nemzeti Adó- és Vámhivatal (NAV) által biztosított M2M (Machine-to-Machine) interfészhez való kapcsolódást segíti. Az SDK lehetővé teszi a gépi kommunikációt a NAV rendszereivel, például bizonylatok beküldéséhez.
Ha a csomag hasznos volt a számodra, akkor nyomj rá a star-ra!
Telepítés
-
Composer használata: A legkényelmesebb mód az SDK telepítésére a Composer használata:
- Követelmények:
- PHP 8.0 vagy újabb
- Composer
Használat
A minta.php
fájlban található példák segítségével megismerheted az SDK használatát.
Inicializálás
Először létre kell hozni egy NavM2m
objektumot a megfelelő beállításokkal:
Ahol:
mode
:"sandbox"
a tesztkörnyezethez,"production"
az éles környezethez.client
: Egy tömb aid
(kliens azonosító) és asecret
(kliens titkos kulcs) adatokkal. Ezeket az Ügyfélkapun kell regisztrálnod a kliensprogramodhoz.
Felhasználó aktiválása
Minden felhasználót aktiválni kell először annak érdekében, hogy a kliensprogramunk hozzáférhessen a NAV rendszeréhez. Az aktiválást csak egyszer kell végrehajtani egy felhasználó esetén. Az aktiválás során megkapjuk a felhasználóhoz tartozó aláírókulcsot, amelyet el kell tárolni.
A felhasználó aktiválásához a következő lépéseket kell végrehajtani:
-
Inaktív felhasználó adatai: A felhasználói regisztráció során a felhasznló számára az UPO-ról kiküldött, a felhasználó saját tárhelyére érkezet API kulcsból nyerjük ki az adatokat:
-
Token igénylése: Az aktiváláshoz először egy tokent kell igényelni az inaktív felhasználóval:
- Felhasználó aktiválása: Aktiválja a felhasználót, és megkapja a felhasználóhoz tartozó titkos aláírókulcsot:
Bizonylat beadás folyamata
- Token igénylése a
createToken()
függvény segítségével. Egy token 10 percig érvényes. - Fájl feltöltése az
addFile()
függvény segítségével. A következő lépés feltétele, hogy aresult_code
legyenUPLOAD_SUCCESS
és avirusScanResultCode
legyenPASSED
. Ha nincsvirusScanResultCode
vagy az értékeWAITING
, akkor pár másodperc várakozás után a fájl státuszát le kell kérdezni agetFileStatus()
függvény segítségével. - Bizonylat létrehozása a
createDocument()
függvény segítségével. A következő lépés feltétele, hogy aresult_code
legyenCREATE_DOCUMENT_SUCCESS
és adocumentStatus
legyenVALIDATED
. Ha adocumentStatus
értékeUNDER_PREVALIDATION
vagyUNDER_VALIDATION
, akkor pár másodperc várakozás után agetDocument()
függvény segítségével le kell kérdezni a bizonylat státuszát. - Bizonylat érkeztetése az
updateDocument()
függvény segítségével amely visszatérési értékében tartalmaz egyarrivalNumber
értéket, amely a beküldés eredményét jelzi. Ha adocumentStatus
értékeUNDER_SUBMIT
akkor pár másodperc várakozás után agetDocument()
függvény segítségével le kell kérdezni a bizonylat státuszát.
A bizonylatokkal kapcsolatos kommunikáció DB-ban való tárolásához a következő mezőkre van szükség
fileId
: 36 karakter - a bizonylat feltöltésekor megkapott egyedi azonosítócorrelationId
: 36 karakter - a bizonylat feltöltésekor generált egyedi azonosító-
status
max 19 karakter - a bizonylat aktuális státuszaKód Jelentés UNDER_PREVALIDATION A bizonylat előellenőrzése folyamatban van. Az előellenőrzés az adózók, a jogosultság és a bizonylat alapvető megfelelőségét vizsgálja. PREVALIDATION_ERROR A bizonylat előellenőrzése során hibát talált a rendszer. Ilyen esetben az errors mező nincs kitöltve, mivel az csak a tartalmi hibákat tartalmazza. UNDER_VALIDATION A bizonylat tartalmi ellenőrzése folyamatban van. A tartalmi ellenőrzés során a bizonylat megfelelő kitöltését és csatolmányokat vizsgálja a rendszer. VALIDATION_ERROR A bizonylat tartalmi ellenőrzése során hibát talált a rendszer. A hibalista.xsd-nek megfelelő formátumú errors mezőben találhatók a hibák. VALIDATED A bizonylat megfelelően lett kitöltve, és a csatolmányai is rendben vannak. UNDER_SUBMIT A bizonylat beküldése folyamatban van. SUBMIT_ERROR A bizonylat beküldése sikertelen. Abban az esetben érdemes ebben az állapotban ismételt beküldést kérni, ha a hivatali kapu nem volt elérhető. SUBMITTED A bizonylat sikeresen be lett küldve. -
result
max 24 karakter - a legutolsó API hívás eredményeMűvelet Kód Jelentés addFile
UPLOAD_SUCCESS Sikeres fájl feltöltés. Nem jelenti azt, hogy a fájl nem vírusos. addFile
HASH_FAILURE A fájl-ról képzett sha256 hash nem egyezik a paraméterben megadottal. addFile
OTHER_ERROR Egyéb hiba következett be a feltöltés során. createDocument
CREATE_DOCUMENT_SUCCESS A bizonylat létrehozása sikeresen megtörtént. A tartalmi validáció elindult. createDocument
UNKNOWN_FILE_ID A megadott azonosítóval nem található fájl a fájltárolóban. createDocument
FILE_ID_ALREADY_USED A megadott fájltárolóbeli fájlazonosítóval már létezik bizonylat. createDocument
UNSUCCESSFUL_VALIDATION A validáció valamilyen hiba miatt nem tudott lefutni. createDocument
INVALID_SENDER Érvénytelen beküldő. createDocument
INVALID_TAXPAYER Érvénytelen adózó. createDocument
SENDER_HAS_NO_RIGHT A beküldőnek nincs jogosultsága a bizonylat beküldésére az adózó nevében. createDocument
INVALID_DOCUMENT_TYPE A bizonylattípus nem küldhető be. createDocument
INVALID_DOCUMENT_VERSION A bizonylatverzió nem küldhető be. createDocument
FILE_CONTAINS_VIRUS A bizonylatfájl, vagy annak csatolmánya vírusos. createDocument
INVALID_SIGNATURE Érvénytelen aláírás. createDocument
OTHER_ERROR Egyéb hiba. updateDocument
UPDATE_DOCUMENT_SUCCESS A bizonylat módosítása sikeresen megtörtént. updateDocument
UNKNOWN_FILE_ID A megadott azonosítóval nem található fájl a fájltárolóban. updateDocument
STATUS_CHANGE_NOT_ENABLED A bizonylat aktuális státuszából, a bizonylat módosítás kérésben megadott státuszba nem engedélyezett az átmenet. updateDocument
SUBMIT_ERROR A bizonylat beküldése sikertelen. updateDocument
TOO_BIG_KR_FILE A KR fájl mérete meghaladja a beküldési limitet updateDocument
INVALID_SENDER Érvénytelen beküldő. updateDocument
INVALID_TAXPAYER Érvénytelen adózó. updateDocument
SENDER_HAS_NO_RIGHT A beküldőnek nincs jogosultsága a bizonylat beküldésére az adózó nevében. updateDocument
INVALID_DOCUMENT_TYPE A bizonylattípus nem küldhető be. updateDocument
INVALID_DOCUMENT_VERSION A bizonylatverzió nem küldhető be. updateDocument
INVALID_SIGNATURE Érvénytelen aláírás. updateDocument
OTHER_ERROR Egyéb hiba. getDocument
GET_DOCUMENT_SUCCESS A bizonylatadatok lekérdezése sikeresen megtörtént. getDocument
UNKNOWN_FILE_ID A megadott azonosítóval nem található fájl a fájltárolóban. getDocument
OTHER_ERROR Egyéb hiba -
virusScanResultCode
: max 11 karakter - a bizonylat feltöltésekor végrehajtott víruskeresés eredményeKód Jelentés PASSED Sikeres fájl feltöltés. FAILED A fájl-ról képzett sha256 hash nem egyezik a paraméterben megadottal. WAITING A vírusellenőrzés még folyamatban van. OTHER_ERROR Egyéb hiba következett be a feltöltés során. arrivalNumber
minimum 27 karakter - a bizonylat érkeztetésekor megkapott egyedi azonosítóerrors
- a hibákat tartalmazó xml fájl bzip2-vel tömörítve. Az xml a hibalista.xsd-vel dolgozható fel.
Fájl feltöltése
Bizonylatfájl feltöltése:
A $result
hibák kezelésére a minta.php
fájlban találsz példát.
Bizonylat létrehozása/validálása
A bizonylat létrehozása és validálása:
A $result
hibák kezelésére a minta.php
fájlban találsz példát.
Bizonylat érkeztetése
A createDocument
függvény után a bizonylat érkeztetése:
A $result
hibák kezelésére a minta.php
fájlban találsz példát.
Loggolás
A log kiírja a standard outputra a kéréseket és a válaszokat, ami hasznos lehet a hibakeresés során. A loggolást az objektum létrehozásakor be kapcsolhatod, alapértelmezetten ki van kapcsolva.
Lehetőség van saját logger függvény használatára is. Ebben az esetben a log üzenetek nem a standard outputra íródnak ki, hanem a megadott függvény kapja meg őket:
Támogatás
Ha bármilyen kérdésed vagy problémád van, nyiss egy issue-t.