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_codelegyenUPLOAD_SUCCESSés avirusScanResultCodelegyenPASSED. Ha nincsvirusScanResultCodevagy 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_codelegyenCREATE_DOCUMENT_SUCCESSés adocumentStatuslegyenVALIDATED. Ha adocumentStatusértékeUNDER_PREVALIDATIONvagyUNDER_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_SUBMITakkor 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ó-
statusmax 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. -
resultmax 24 karakter - a legutolsó API hívás eredményeMűvelet Kód Jelentés addFileUPLOAD_SUCCESS Sikeres fájl feltöltés. Nem jelenti azt, hogy a fájl nem vírusos. addFileHASH_FAILURE A fájl-ról képzett sha256 hash nem egyezik a paraméterben megadottal. addFileOTHER_ERROR Egyéb hiba következett be a feltöltés során. createDocumentCREATE_DOCUMENT_SUCCESS A bizonylat létrehozása sikeresen megtörtént. A tartalmi validáció elindult. createDocumentUNKNOWN_FILE_ID A megadott azonosítóval nem található fájl a fájltárolóban. createDocumentFILE_ID_ALREADY_USED A megadott fájltárolóbeli fájlazonosítóval már létezik bizonylat. createDocumentUNSUCCESSFUL_VALIDATION A validáció valamilyen hiba miatt nem tudott lefutni. createDocumentINVALID_SENDER Érvénytelen beküldő. createDocumentINVALID_TAXPAYER Érvénytelen adózó. createDocumentSENDER_HAS_NO_RIGHT A beküldőnek nincs jogosultsága a bizonylat beküldésére az adózó nevében. createDocumentINVALID_DOCUMENT_TYPE A bizonylattípus nem küldhető be. createDocumentINVALID_DOCUMENT_VERSION A bizonylatverzió nem küldhető be. createDocumentFILE_CONTAINS_VIRUS A bizonylatfájl, vagy annak csatolmánya vírusos. createDocumentINVALID_SIGNATURE Érvénytelen aláírás. createDocumentOTHER_ERROR Egyéb hiba. updateDocumentUPDATE_DOCUMENT_SUCCESS A bizonylat módosítása sikeresen megtörtént. updateDocumentUNKNOWN_FILE_ID A megadott azonosítóval nem található fájl a fájltárolóban. updateDocumentSTATUS_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. updateDocumentSUBMIT_ERROR A bizonylat beküldése sikertelen. updateDocumentTOO_BIG_KR_FILE A KR fájl mérete meghaladja a beküldési limitet updateDocumentINVALID_SENDER Érvénytelen beküldő. updateDocumentINVALID_TAXPAYER Érvénytelen adózó. updateDocumentSENDER_HAS_NO_RIGHT A beküldőnek nincs jogosultsága a bizonylat beküldésére az adózó nevében. updateDocumentINVALID_DOCUMENT_TYPE A bizonylattípus nem küldhető be. updateDocumentINVALID_DOCUMENT_VERSION A bizonylatverzió nem küldhető be. updateDocumentINVALID_SIGNATURE Érvénytelen aláírás. updateDocumentOTHER_ERROR Egyéb hiba. getDocumentGET_DOCUMENT_SUCCESS A bizonylatadatok lekérdezése sikeresen megtörtént. getDocumentUNKNOWN_FILE_ID A megadott azonosítóval nem található fájl a fájltárolóban. getDocumentOTHER_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. arrivalNumberminimum 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.
Egyszerűsített foglalkoztatási adatok lekérdezése
getEgyszerusitettFoglalkoztatas
Egy adott foglalkoztatott egyszerűsített foglalkoztatási adatainak lekérdezése.
A tajNumber paraméter opcionális. Ha nincs megadva, a lekérdezés TAJ szám nélkül történik.
getEgyszerusitettFoglalkoztatasFoglalkoztatottLista
Egy adott foglalkoztató (munkáltató) egyszerűsített foglalkoztatotti listájának lekérdezése adott évre.
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.