AyCode.Core/AyCode.Services/Nav/docs/README.md

52 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Nav/docs — NAV referencia-anyagok és kivonatok
A NAV adatszolgáltatás (jelenleg EKÁER) hivatalos forrásai + **LLM-barát kivonatok**. A kivonatok célja: ne kelljen a 2.2 MB-os PDF-et olvasni a gyakori feladatokhoz (token-takarékos, kereshető, a `docs-discovery` skill megtalálja).
## Hiteles források
| Fájl | Mit ad |
|---|---|
| [`eKAERManagementService_2.2.pdf`](eKAERManagementService_2.2.pdf) | A hivatalos EKÁER 2.2 interfész-leírás (NAV). **Ütközésnél ez + az XSD a mérvadó.** |
| [`ekaermanagement.xsd`](ekaermanagement.xsd) | A management-séma — a generált modellek (`Nav/Ekaer/Models/`) forrása. XSD-validációhoz is ez. |
| [`common.xsd`](common.xsd) | Közös EKÁER-séma: `BasicHeaderType`, `UserHeaderType`, `BaseResultType`, és a teljes `ReasonCodeType` (~150 hibakód). |
## Kivonatok (kezdd ezekkel)
| Fájl | Téma | Mikor |
|---|---|---|
| [`EKAER_INTERFACE.md`](EKAER_INTERFACE.md) | Transport, endpoint, **auth-algoritmus** (teszt-vektorral), üzenet-váz | A kommunikáció bekötésekor (megvan a kódban) |
| [`EKAER_TRADECARD.md`](EKAER_TRADECARD.md) | A **payload**: tradeType, fejrész, címadat, vehicle, deliveryPlan, tétel, tradeReason | A `Shipping → TradeCard` mapping (3. réteg) írásakor |
| [`EKAER_OPERATIONS.md`](EKAER_OPERATIONS.md) | Műveletek (create/modify/delete/finalize/correction) + státusz-életciklus | A bejelentés-folyamat implementálásakor |
| [`EKAER_VALIDATION.md`](EKAER_VALIDATION.md) | Validációs szabályok (tradeType-függő) + hibakód-kategóriák | Hibakezelés / mező-kötelezőség eldöntésekor |
**Olvasási sorrend új belépőnek:** `EKAER_INTERFACE``EKAER_TRADECARD``EKAER_OPERATIONS``EKAER_VALIDATION`.
## Jogszabályi alap, kötelezettség, hozzáférés (kontextus, 2026-07 — webről ellenőrizve)
A fenti PDF/XSD a **HOGYAN** (a 2.2 interfész — a tradeCard beküldése). Néhány **általános** dolog, ami tisztázódott (a forrásból ellenőrizve):
**Jogszabály (a MIKOR kötelező):** a hatályos rendelet a **13/2020. (XII. 23.) PM rendelet** (<https://net.jogtar.hu/jogszabaly?docid=A2000013.PM>). A leképezést/kötelezettséget érintő elvek (2026-07 állapot):
- **Csak a bejelentésköteles (kockázatos) termék** EKÁER-köteles (2021-01-01 óta; a nem-kockázatos áru EGYÁLTALÁN nem) — a lista az **51/2014. (XII. 31.) NGM rendelet** 1. melléklete (VTSZ-alapú). Utolsó módosítás: **25/2025. (VIII. 18.) NGM** — 2025-08-18-tól egyes kertészeti termékek KIKERÜLTEK a listából (pl. vöröshagyma-dughagyma 07031011, friss borsó 07081000, friss bab 07082000, csemegekukorica 07099960, egyes vetőmagok).
- **Küszöb (4. § i):** mentes a fuvarozás, ha az **500 kg bruttó tömeget ÉS az 1 millió Ft adó nélküli értéket** sem haladja meg → kötelező, ha **BÁRMELYIK átlépi**. (A 200 kg / 250 eFt-os „kockázatos élelmiszer"-küszöb a 2021 ELŐTTI rezsim [5/2015 NGM] — MÁR NEM hatályos.) **A mentesség IRÁNY-FÜGGETLEN** (a § szövegében nincs irány-megkötés): a küszöb alatti fuvar **importnál/exportnál SEM** kötelező — a „külföldi reláció küszöb nélkül mindig kötelező" vélekedés a régi rezsimből ered, a hatályos jogban NEM áll (szó szerint ellenőrizve, 2026-07-10).
- az EKÁER-egység = **egy feladó → egy címzett, egy gépjárművel**; **§ 12 (4):** EGY EKÁER-szám több *fel-/kirakodási címet* és több *terméktételt* is fedhet — **nem** szállítólevelenként kell darabolni; **§ 12 (2):** gépjármű = jármű + vontatott pótkocsi/félpótkocsi együtt;
- a bejelentés-kötelezettség **küszöbe erre a relációra AGGREGÁLT** (egy fuvarozás keretében ugyanazon feladótól ugyanazon címzett részére ugyanazon gépjárművel);
- **további mentességek:** honvédség/rendvédelem, postai küldemény, jövedéki termék (4. §); **20 km-en belüli** fuvarozás útszakasz-mentesítése (5. §);
- **kockázati biztosíték** (17-18. §): az érték **15%-a**, az előző **45 nap** bejelentései alapján görgetve; formája elkülönített letét vagy garancia; **mentes**: a „megbízható adózó", ill. a 2+ éve működő, köztartozásmentes adózó (18. § (2));
- a NAV **mindkét irányban büntet:** az **aluljelentés ÉS a túljelentés** is bírság — a kötelezettség-döntésnek pontosnak kell lennie.
> A konkrét küszöb-értékek a **jogszabálytól és a beállítástól függően változnak**, és a **fogyasztó** (pl. FruitBank) dönti el a kötelezettséget — itt szándékosan **nincs érték bedrótozva**; a fenti számok **dátumozott jogszabályi referenciák**. A fogyasztó-oldali kapu: a FruitBank plugin `docs/EKAER/`.
**Hozzáférés (kié a `user` + `signingKey`):** az **ADÓZÓé** (a bejelentő cégé), **nem a fejlesztőé** — az adózó Ügyfélkapun, elsődleges felhasználóként állítja be a kulcsot, a szoftver az ő credentialját használja (`INavCredentials`). Részletek + a 202425-ös „NAV M2M" alternatíva: [`EKAER_INTERFACE.md`](EKAER_INTERFACE.md) → *Hozzáférés*.
## A réteg-kód
A base réteg (interfészek, auth, send-flow) doksija: [`../README.md`](../README.md).
Az EKÁER-kód a `Nav/Ekaer/`-ben:
- generált modellek: `Nav/Ekaer/Models/` (+ `EkaerNavAdapters.cs` — az `INav*` interfészek a generált típusokon)
- `EkaerManageService` / `EkaerQueryService` — NAV HTTP (manage / query)
- `EkaerTradeCardValidator` — a [`EKAER_VALIDATION.md`](EKAER_VALIDATION.md) szabályainak ellenőrzése (séma + üzleti), hibalistával
- `EkaerSubmitService` / `EkaerSubmitResult` — beküldés-orchestráció (validate → send)
Ez mind **általános** NAV/EKÁER réteg. A FruitBank-specifikus leképezés (`Shipping → tradeCard`) NEM itt van, hanem a fogyasztó oldalon: `FruitBank.Common/Services/Ekaer/` (mapper) + `FruitBank.Common.Server/Services/Ekaer/` (fogyasztó).