===== Vevői rendelés API ===== Az eVIR rendszer lehetőséget biztosít külső rendszer számára számla készítésére. Az általános [[evir:rendszer:api:api_altalanos|API]] leírásban szerepelnek az alapok, ezért itt már csak a specifikus részek szerepelnek. A kommunikáció JSON alapkon zajlik, a követező módon: https://evir.hu/cegnev/cgi-bin/index.cgi?json={"token":"jMuPFcKJdyKYqMZ7iGiLpxF/32k","dok":"api_rendeles_vevoi",...........} ---- a JSON adat egy hash, melynek kulcsai az alábbi jelentésekkel bírnak === API hívás paraméterei === ^ mező ^ + ^ tipus/érték ^ jelentés ^ | token | M | string | a klienst azonosító evir felhasználó tokenje (evir felhasználó jelszavának módosításakor kiíródik) | | dok | M | "api_rendeles_vevoi" | az api hívást azonosítja | | muvelet | *1 | "0", "M1", "P1", "M1P2", "P1M2", "P1M0" | hogyan jöjjön létre a bizonylat: [[bizonylat_muvelet|bizonylat művelet]] | | email_cim | | string(100) | email cím "valami@example.com" formátumban | * ''*1'' Rendelés létrehozásakor hogyan készüljön bizonylat: [[bizonylat_muvelet|bizonylat művelet]] * ''0'' Csak a bizonylatszámot adja oda * ''M1'' A bizonylatot email-ben elküldi, és odaadja a bizonylatszámot * ''P1'' ''P1M0'' A bizonylatból PDF-et készít. * ''M1P2'' ''P1M2'' A bizonylatból PDF-et készít és a bizonylatot email-ben el is küldi === Partner adatai === A vevő partner adatai. [[bizonylat_partner_adatok|partner adatok]] ^ mező ^ + ^ tipus/érték ^ jelentés ^ | partner_id | *1 | szám | partner_id | * ''*1'' Lehet új partner adatokat megadni vagy meglévő partnerrel dolgozni * Ha a partner már rögzítve van az eVIR-ben, akkor elegendő az azonosítóját, a ''partner_id''-t megadni. Semmilyen más partner adatot nem kell megadni. * Ha új partnernek készül a rendelés, akkor a ''partner_id'' mezőt ki kell hagyni, és minden egyéb partner adatot megfelelően ki kell tölteni. ^ mező ^ + ^ tipus/érték ^ jelentés ^ | partner_tipus | M | "cég" vagy "személy" | | | partner_nev | M | string(90) | partner neve | | partner_cim_orszag | M | string(2) | ország kétbetűs kódja, (pontosan 2 karakter) | | partner_cim_orszag_nev | *1 | string | ország megnevezése. Megegyezik az evir törzsadatai szerinti névvel (maximum 50 karakter) | | partner_cim_irszam | M | string(10) | irányítószám | | partner_cim_varos | M | string(40) | település neve (maximum 40 karakter) | partner_cim_cim | M | string(60) | közterület neve. nem bontott cím esetén házszám stb. egyben | | partner_cim_jelleg | *2 | string(40) | közterület jellege | | partner_cim_hazszam | *2 | string(20) | házszám | | partner_cim_epulet | *2 | string(40) | épület | | partner_cim_lepcsohaz | *2 | string(20) | lépcsőház | | partner_cim_ajto | *2 | string(20) | ajtó | | partner_adoszam | C | string(20) | adószám | | partner_csoport_adoszam | C | string(20) | csoportazonosító szám | | partner_kozadoszam | C | string(20) | Közösségi adószám | | partner_third_adoszam | C | string(20) | Közösségen kívüli adószám | * ''M'' kötelezően Meg kell adni (mandatory) * ''*1'' Amennyiben az ország még nem szerepel az eVIR-ben, akkor kötelező megadni * ''*2'' Bontott cím esetén a közterület jellege mezőt ki kell tölteni, és minden egyéb cím adatot a megfelelő mezőben kell szerepeltetni. * ''C'' Csak cég esetén adható meg === Szállítási cím === A szállítási címet NEM kötelező megadni. Ha megadja, akkor a szállítási cím adatait az alábbi módon kell megadni. ^ mező ^ + ^ tipus/érték ^ jelentés ^ | szall_nev | M | string(90) | partner neve | | szall_cim_orszag | M | string(2) | ország kétbetűs kódja, (pontosan 2 karakter) | | szall_cim_orszag_nev | *1 | string | ország megnevezése. Megegyezik az evir törzsadatai szerinti névvel (maximum 50 karakter) | | szall_cim_irszam | M | string(10) | irányítószám | | szall_cim_varos | M | string(40) | település neve (maximum 40 karakter) | szall_cim_cim | M | string(60) | közterület neve. nem bontott cím esetén házszám stb. egyben | | szall_cim_jelleg | *2 | string(40) | közterület jellege | | szall_cim_hazszam | *2 | string(20) | házszám | | szall_cim_epulet | *2 | string(40) | épület | | szall_cim_lepcsohaz | *2 | string(20) | lépcsőház | | szall_cim_ajto | *2 | string(20) | ajtó | * ''M'' kötelezően Meg kell adni (mandatory) * ''*1'' Amennyiben az ország még nem szerepel az eVIR-ben, akkor kötelező megadni * ''*2'' Bontott cím esetén a közterület jellege mezőt ki kell tölteni, és minden egyéb cím adatot a megfelelő mezőben kell szerepeltetni. === Számlázásiási cím === A számlázási címet NEM kötelező megadni. Ha megadja, akkor a számlázási cím adatait az alábbi módon kell megadni. ^ mező ^ + ^ tipus/érték ^ jelentés ^ | szla_nev | M | string(90) | partner neve | | szla_cim_orszag | M | string(2) | ország kétbetűs kódja, (pontosan 2 karakter) | | szla_cim_orszag_nev | *1 | string | ország megnevezése. Megegyezik az evir törzsadatai szerinti névvel (maximum 50 karakter) | | szla_cim_irszam | M | string(10) | irányítószám | | szla_cim_varos | M | string(40) | település neve (maximum 40 karakter) | szla_cim_cim | M | string(60) | közterület neve. nem bontott cím esetén házszám stb. egyben | | szla_cim_jelleg | *2 | string(40) | közterület jellege | | szla_cim_hazszam | *2 | string(20) | házszám | | szla_cim_epulet | *2 | string(40) | épület | | szla_cim_lepcsohaz | *2 | string(20) | lépcsőház | | szla_cim_ajto | *2 | string(20) | ajtó | * ''M'' kötelezően Meg kell adni (mandatory) * ''*1'' Amennyiben az ország még nem szerepel az eVIR-ben, akkor kötelező megadni * ''*2'' Bontott cím esetén a közterület jellege mezőt ki kell tölteni, és minden egyéb cím adatot a megfelelő mezőben kell szerepeltetni. === Rendelés általános paraméterei === [[bizonylat_rendeles_adatok|Rendelés adatai]] ^ mező ^ + ^ tipus/érték ^ jelentés ^ | arkat | *1 | string(20) | árkategória (ha nincs megadva, akkor a partnerhez rendelt, vagy alapértelmezett árkategória lesz) ebből következik a számla pénzneme is | | penznem | *1 | string(3) | pénznem | | fizmod | | string(20) | fizetési mód, (beállítás szerinti hatással a teljdat, fizhat mezőkre) ha nincs megadva, alapértelmezett lesz) | | rend_datum | | dátum | rendelés dátuma | | szallhat| | dátum | szállítási határidő | | hivatkozas | | string (30) | hivatkozás | | megjegyzes | | string | Opcionális megjegyzés | | nyelv | | string | a bizonylat nyelve (ha nincs megadva, HU) | | webshop_type | | string | webshopot azonosító kód | | webshop_id | | string | webshopban használt id | | tetel_mezok | | tomb | tételsorokat tartalmazza. egy tételsor egy hash | * ''*1'' Az árkategória ''arkat'' és pénznem ''penznem'' mezők feldolgozásakor: * Ha az árkategória meg van adva, akkor abból számolja ki a pénznemet is * Ha az árkategória nincs megadva, akkor a pénznem alapján próbál egy árkategóriát meghatározni. ---- === Rendelés tétel mezői === A következő mezők a tetel_mezok tömbön belül többszörösen is megadható hashek adatszerkezete Részletes dokumentáció: [[bizonylat_tetel_adatok|tétel adatok]] ^ mező ^ + ^ tipus/érték ^ jelentés ^ | tetel_tipusa | M *1 | termék raktár szolgáltatás vegosszetgi_engedmeny raktar_cikktorzs | [[bizonylat_tetel_adatok|tétel tipusa]] | | tetel_forrasraktar | *2 | string | annak a raktárnak a kódja, ahonnan a terméket eladja. szolgáltatás (és előlegszámla) esetén nem kell megadni | | tetel_cikkszam | M | string | a termék vagy szolgáltatás cikkszáma | | tetel_menny | M | szám | az eladott mennyiség (pozitív szám) | | tetel_netto | M | szám | nettó eladási egységár | | tetel_megj | O | string | tételhez kapcsolódó megjegyzés szöveg (opcionális) | * ''M'' kötelezően Meg kell adni (mandatory) * ''O'' Opcionális * ''*1'' tétel tipusa, További részletek: [[bizonylat_tetel_adatok|tétel adatok]] oldalon * ''termék'': termék katalógusból (raktárkészlet foglalás nélkül) * ''raktár'': termék raktárkészlet foglalással * ''szolgáltatás'': szolgáltatás * ''vegosszegi_engedmeny'': rendelés végösszegéből adandó engedmény egy összegben * ''raktar_cikktorzs'': termék raktárkészlet foglalással a lehetőségek szerint * ''*2'' tetel_forrasraktar megadása ''termék'' és ''raktar_cikktorzs'' tételtipus esetén kötelező megadni. Egyébként nincs használatban. A következő adatokat akkor kell megadni, ha a szolgáltatás cikkszám még nem szerepel a cikktörzsben. termék esetén nem használható ^ mező ^ + ^ tipus/érték ^ jelentés ^ | tetel_cikk_rogzites | *3 | "" vagy "szolg_fix" vagy "szolg_gen" | Hogyan kell a cikkszámot rögzíteni | | tetel_cikk_megnevezes | R | string | a cikk megnevezése | | tetel_cikk_afa | R | string | az áfakulcsot azonosító szám vagy szöveg | | tetel_cikk_megys | R | string | Mennyiségi egység | | tetel_cikk_unit | R | szám | legkisebb mennyiség | * ''*3'' tetel_cikk_rogzites ha meg van adva, akkor az 'R' jelű rögzítendő mezőket ki kell tölteni * ''R'' tetel_cikk_rogzites esetén megadandó adatok. ==== API hívás visszatérési értéke ==== Az api hívás paraméterétől, és a működés sikerességétől függően a visszatérési érték az alábbiak lehetnek. [[api_valaszok|API válaszok]] * Sikeres PDF dokumentum * JSON válaszüzenet * Egyéb HTTP válaszüzenet ==== Példa JSON adatok ==== === Minimális példa === Partner törzsadatból, bizonylatot nem nyomtatja, nem küldi email-ben { "token":"...", "dok":"rendeles_api_felvesz", "muvelet":"0", "penznem":"HUF", "partner_id":"4", "tetel_mezok":[ { "tetel_tipusa":"termék", "tetel_menny":"1", "tetel_netto":"1000", "tetel_cikkszam":"c1" } ] } Példa válaszüzenet JSON formátumban [ { "status":"OK", "rendelesszam":"RE2021000012", "message":[ { "time":"2021.09.27 19:22:31.51", "message":"Rendelés rögzítve.", "level":"Info" }, { "message":"status=OK", "level":"SysInfo", "time":"2021.09.27 19:22:31.58" }, { "level":"SysInfo", "message":"rendelesszam=RE2021000012", "time":"2021.09.27 19:22:31.58" } ], "choice":{ "back":{ "session":{ "proc":"back", "cid":"cZ9cvPgKHU", "lid":"zTsqM0LBHU", "sid":"QKYYSPhvHU" }, "data":{} } }, "framename":"main", "result":null } ] ----