Programozott hozzáférés a termékútlevelekhez — webshop/ERP-szinkronhoz, tömeges automatizáláshoz.
Pro csomagtól
Minden kérés API-kulccsal hitelesít, Authorization fejlécben:
Authorization: Bearer vk_<a kulcsod>
Kulcsot a Beállítások → Fejlesztői API alatt hozol létre. A nyílt kulcsot csak egyszer, létrehozáskor mutatjuk meg — tárold biztonságos helyen. A kulcs a teljes fiókod termékeihez ad írási/olvasási hozzáférést, ezért kezeld titkosan.
GET-kérésekhez fejléc nélkül, közvetlenül a böngészőben is kipróbálhatod — a kulcsot ?api_key= paraméterként add meg:
https://veridyn.eu/api/v1/categories?api_key=vk_<a kulcsod>
⚠️ Csak teszteléshez. Az URL-be írt kulcs bekerül a böngésző-előzménybe és a szerver-logokba, ezért éles integrációban mindig a Authorization: Bearer fejlécet használd. POST/PATCH csak fejléccel (curl/Postman) hívható.
https://veridyn.eu/api/v1
A válaszok application/json formátumúak, UTF-8 kódolással.
| Metódus | Útvonal | Leírás |
|---|---|---|
| GET | /categories | Elérhető termékkategóriák. |
| GET | /schema/{category} | A kategória teljes mezőlistája — kötelező + opcionális, típus, enum, nyelvi mezők. |
| GET | /products | Termékek listája (összefoglaló). Paraméterek: q, status, page, limit. |
| POST | /products | Új termékútlevél. Törzs: { category, data }. |
| GET | /products/{id} | Egy termék teljes adata + passport-URL. |
| PATCH | /products/{id} | Frissítés (részleges) — új verziót hoz létre. Törzs: { data }. |
| GET | /products/{id}/qr | QR-kód (SVG) a publikus passporthoz. |
Minden kategóriának van egy kötelező magja — enélkül a séma-validáció elutasít (422). Minden más mező opcionális, de bármikor beküldheted ugyanabban a data objektumban (több adat = jobb passport + jövőbiztosabb megfelelés). A pontos, gépi mezőlistát a /schema/{category} adja — required: true/false, típus, enum és localized jelöléssel.
curl https://veridyn.eu/api/v1/schema/textile \
-H "Authorization: Bearer vk_<kulcs>"
✓ = kötelező · — = opcionális · ↳ beágyazott al-mező · 🌐 nyelvenkénti (localized) · 🔒 csak hatósági szinten látszik. Ez a lista a sémából generálódik — mindig naprakész.
| Mező | Típus | Köt. | Leírás |
|---|---|---|---|
productName | string | ✓ | Terméknév — A termék neve, ahogy a vásárló a passporton látni fogja. |
sku | string | ✓ | SKU — Belső cikkszám / azonosító — a te rendszeredből. |
brandName | string | ✓ | Márkanév |
gtin | string | — | GTIN (opcionális) — A vonalkód száma (GTIN-8/12/13/14). Az ellenőrzőszámot a rendszer validálja. Ha nincs, hagyd üresen. |
economicOperator | object | ✓ | Gazdasági szereplő |
↳ role | string (enum) | ✓ | Szerep — Ki teszi a terméket az EU-piacra és felel érte. A legtöbb gyártónál: Gyártó. (manufacturer · importer · authorized_representative · distributor · dealer · fulfilment_service_provider) |
↳ legalName | string | ✓ | Jogi név |
↳ address | string | ✓ | Cím |
↳ country | string | ✓ | Ország (ISO 3166-1 alpha-2) — Kétbetűs ISO országkód, nagybetűvel — pl. HU, DE, IT |
↳ contactEmail | string | ✓ | Kapcsolati e-mail — Ide fordulhat a vásárló vagy a hatóság. |
↳ operatorId | string | — | Egyedi szereplő-azonosító (GS1 GLN) — 13 jegyű GS1 GLN — EU DPP egyedi gazdasági szereplő-azonosító. Ha nincs, hagyd üresen. |
↳ eori 🔒 | string | — | EORI-szám — A gazdasági szereplő EORI-száma (vám / EU DPP-nyilvántartási azonosító) — a registry ez alapján azonosít. Csak hatósági hozzáférési szinten látszik. Ha nincs, hagyd üresen. |
languages | array[string] | ✓ | Nyelvek (BCP-47) — Mely nyelveken jelenjen meg a passport. A lokalizált mezőket (ápolás, életciklus) minden itt felsorolt nyelven ki kell tölteni. pl. hu, en |
fiberComposition | array[object] | ✓ | Rost-összetétel — Miből készült a termék. A százalékok összege pontosan 100 legyen. pl. pamut 95 + elasztán 5 |
↳ fiber | string | ✓ | Rost |
↳ percentage | number | ✓ | Százalék |
recycledContentPercentage | number | — | Újrahasznosított tartalom (%) — Az újrahasznosított anyag aránya a termékben. Ha nem releváns, hagyd üresen. |
countryOfManufacture | string | ✓ | Gyártás országa (ISO) — Ahol a végtermék készült. Kétbetűs ISO kód, pl. PT, TR, HU |
supplyChainStages | array[object] | — | Ellátási lánc állomásai — Hol készült melyik munkafázis (fonás, szövés, festés, összeszerelés…). Opcionális, de növeli a bizalmat. |
↳ stage | string (enum) | ✓ | Fázis (spinning · weaving · knitting · dyeing · finishing · assembly) |
↳ country | string | ✓ | Ország (ISO) |
↳ facilityName | string | — | Üzem neve |
↳ facilityId | string | — | Egyedi telephely-azonosító (GS1 GLN) |
careInstructions 🌐 | object | ✓ | Ápolási útmutató — Mosás, szárítás, vasalás — nyelvenként egy-egy szöveg. |
repair | object | ✓ | Javíthatóság — Javítható-e, és hogyan. A „javítható” és „alkatrész elérhető” mezők kötelezőek. |
↳ repairable | boolean | ✓ | Javítható |
↳ instructions 🌐 | object | — | Javítási útmutató — Hogyan javítható — nyelvenként (opcionális). |
↳ sparePartsAvailable | boolean | ✓ | Alkatrész elérhető (pl. gomb, cipzár) |
substancesOfConcern | array[object] | — | Aggályos anyagok — Aggályos anyagok (pl. REACH SVHC), ha a termékben jelen vannak. A legtöbb terméknél üresen hagyható. |
↳ name | string | ✓ | Megnevezés |
↳ casNumber | string | — | CAS-szám |
↳ concentrationRange | string | — | Koncentráció-tartomány |
durability | object | — | Tartósság — Tartóssági adatok, ha van mérésed (opcionális). |
↳ testResults | string | — | Teszteredmények |
↳ pefScore | number | — | PEF pontszám — Product Environmental Footprint pontszám, ha van. (opcionális) |
carbonFootprint | number | — | Szénlábnyom (kg CO₂e) — A termék teljes szénlábnyoma kg CO₂-egyenértékben. Az „Impact” témában „≈ km autóval” összevetéssel jelenik meg. |
waterFootprint | number | — | Vízlábnyom (liter) — A gyártáshoz felhasznált víz mennyisége literben. Opcionális. |
weightGrams | number | — | Tömeg (gramm) — A termék tömege grammban. Opcionális. |
endOfLife | object | ✓ | Életciklus vége — Mi legyen a termékkel a használat után — nyelvenként kitöltve. |
↳ recyclingInstructions 🌐 | object | ✓ | Újrahasznosítási útmutató — Hogyan hasznosítható újra — nyelvenként. |
↳ disposalInstructions 🌐 | object | ✓ | Ártalmatlanítási útmutató — Ha nem újrahasznosítható — nyelvenként. |
complianceDocuments | array[object] | — | Megfelelőségi dokumentumok — Tanúsítványok, megfelelőségi dokumentumok linkjei (opcionális). pl. OEKO-TEX, GOTS. |
↳ type | string | ✓ | Típus |
↳ url | string | ✓ | URL |
| Mező | Típus | Köt. | Leírás |
|---|---|---|---|
productName | string | ✓ | Terméknév — Az akkumulátor neve, ahogy a vásárló a passporton látni fogja. |
sku | string | ✓ | SKU — Belső cikkszám / azonosító — a te rendszeredből. |
brandName | string | ✓ | Márkanév |
gtin | string | — | GTIN (opcionális) — A vonalkód száma (GTIN-8/12/13/14). Az ellenőrzőszámot a rendszer validálja. Ha nincs, hagyd üresen. |
economicOperator | object | ✓ | Gazdasági szereplő |
↳ role | string (enum) | ✓ | Szerep — Ki teszi a terméket az EU-piacra és felel érte. A legtöbb gyártónál: Gyártó. (manufacturer · importer · authorized_representative · distributor · dealer · fulfilment_service_provider) |
↳ legalName | string | ✓ | Jogi név |
↳ address | string | ✓ | Cím |
↳ country | string | ✓ | Ország (ISO 3166-1 alpha-2) — Kétbetűs ISO országkód, nagybetűvel — pl. HU, DE, IT |
↳ contactEmail | string | ✓ | Kapcsolati e-mail — Ide fordulhat a vásárló vagy a hatóság. |
↳ operatorId | string | — | Egyedi szereplő-azonosító (GS1 GLN) — 13 jegyű GS1 GLN — EU DPP egyedi gazdasági szereplő-azonosító. Ha nincs, hagyd üresen. |
↳ eori 🔒 | string | — | EORI-szám — A gazdasági szereplő EORI-száma (vám / EU DPP-nyilvántartási azonosító) — a registry ez alapján azonosít. Csak hatósági hozzáférési szinten látszik. Ha nincs, hagyd üresen. |
languages | array[string] | ✓ | Nyelvek (BCP-47) — Mely nyelveken jelenjen meg a passport. A lokalizált mezőket (biztonság, életciklus) minden itt felsorolt nyelven ki kell tölteni. pl. hu, en |
batteryCategory | string (enum) | ✓ | Akkumulátor-kategória — Az (EU) 2023/1542 szerinti kategória. A kötelező útlevél elsőként az EV, az ipari (>2 kWh) és az LMT akkukra vonatkozik (2027. február 18.). (portable · lmt · ev · industrial · sli) |
cellChemistry | string (enum) | ✓ | Cellakémia — Az akkumulátor cellakémiai típusa. (nmc · nca · lfp · lmo · lto · nimh · lead_acid · sodium_ion …) |
weightKg | number | — | Tömeg (kg) — Az akkumulátor tömege kilogrammban. |
countryOfManufacture | string | — | Gyártás országa (ISO) — Ahol az akku készült. Kétbetűs ISO kód, pl. DE, HU, CN |
manufacturingDate | string | — | Gyártás dátuma / éve — A gyártás éve vagy év-hónapja, ISO formátumban: ÉÉÉÉ, ÉÉÉÉ-HH vagy ÉÉÉÉ-HH-NN. |
ratedCapacity | number | ✓ | Névleges kapacitás (Ah) — Névleges kapacitás amperóra (Ah). |
energyWh | number | — | Energia (Wh) — Teljes energiatartalom wattórában (Wh). Opcionális. |
nominalVoltage | number | — | Névleges feszültség (V) — Névleges feszültség voltban. Opcionális. |
expectedLifetimeCycles | number | — | Várható élettartam (töltési ciklus) — A garantált / várható teljes töltési ciklusok száma. Opcionális. |
stateOfHealth 🔒 | number | — | Állapot — State of Health (%) — Az akku egészségi állapota az eredeti kapacitás %-ában (új akkunál 100). DARAB-SPECIFIKUS és dinamikus — ideális helye az egység-szint (nem a modell-template). Opcionális. |
carbonFootprint | number | — | Szénlábnyom (kg CO₂e / kWh) — Az akku teljes életciklusra vetített szénlábnyoma, kg CO₂-egyenérték per kWh teljes energia. |
carbonFootprintClass | string | — | Szénlábnyom-teljesítményosztály (A–G) — A rendelet szerinti CF-teljesítményosztály, ha rendelkezésre áll. Opcionális. |
carbonFootprintStudyUrl | string | — | Szénlábnyom-tanulmány (URL) — A szénlábnyom-számítás alapjául szolgáló tanulmány / dokumentáció linkje (a CF-delegált aktus szerint). Opcionális. |
carbonFootprintBreakdown | array[object] | — | Szénlábnyom életciklus-szakaszonként — A szénlábnyom megbontása életciklus-szakaszokra (kg CO₂e / kWh) — a CF-delegált aktus ezt várja. Opcionális. |
↳ stage | string (enum) | ✓ | Életciklus-szakasz (raw_material · main_production · distribution · recycling) |
↳ value | number | ✓ | Érték (kg CO₂e / kWh) |
recycledContent | array[object] | — | Újrahasznosított nyersanyag-tartalom — Az újrahasznosított kritikus nyersanyagok aránya anyagonként (kobalt, lítium, nikkel, ólom). Opcionális, de a rendelet egyre szigorúbban várja. |
↳ material | string (enum) | ✓ | Anyag (cobalt · lithium · nickel · lead) |
↳ percentage | number | ✓ | Újrahasznosított arány (%) |
hazardousSubstances | array[object] | — | Veszélyes anyagok — Az akkuban jelen lévő veszélyes anyagok (a higany, kadmium, ólom felett). A legtöbb adatlapnál releváns. |
↳ name | string | ✓ | Megnevezés |
↳ casNumber | string | — | CAS-szám |
↳ concentrationRange | string | — | Koncentráció-tartomány |
safetyInformation 🌐 | object | — | Biztonsági információ — Kezelési, tárolási és vészhelyzeti tudnivalók — nyelvenként egy-egy szöveg. |
dueDiligenceUrl 🔒 | string | — | Ellátási lánc átvilágítási jelentés (URL) — A rendelet szerinti due diligence (átvilágítási) szabályzat/jelentés linkje. Jogos érdekű felek hozzáférési szint (Art. 77(4)) — nem publikus. Opcionális. |
endOfLife | object | ✓ | Életciklus vége — Gyűjtés, újrahasznosítás, szétszerelés — nyelvenként kitöltve. |
↳ recyclingInstructions 🌐 | object | ✓ | Gyűjtés / újrahasznosítás — Hová vihető vissza, hogyan hasznosítható újra — nyelvenként. |
↳ disposalInstructions 🌐 | object | ✓ | Ártalmatlanítás / figyelmeztetés — Tilalmak, veszélyek — nyelvenként. |
complianceDocuments | array[object] | — | Megfelelőségi dokumentumok — Tanúsítványok, megfelelőségi és teszt-dokumentumok linkjei (opcionális). pl. CE, UN 38.3. |
↳ type | string | ✓ | Típus |
↳ url | string | ✓ | URL |
A languages (pl. ["hu","en"]) deklarálja, mely nyelveken van szabad-szöveges tartalom. A lokalizált mezőket (ápolás, életciklus… — a /schema-ban "localized": true) csak az első (elsődleges) nyelven kötelező kitölteni; a többi opcionális, hiánynál egy elérhető nyelvre esik vissza. A passport UI-címkéi ettől függetlenül automatikusan 24 nyelvre fordulnak.
curl -X POST https://veridyn.eu/api/v1/products \
-H "Authorization: Bearer vk_<kulcs>" \
-H "Content-Type: application/json" \
-d '{
"category": "textile",
"data": {
"productName": "Bio pamut póló",
"sku": "TEE-001",
"brandName": "Lumora",
"languages": ["hu","en"],
"fiberComposition": [{"fiber":"pamut","percentage":100}],
"countryOfManufacture": "PT",
"careInstructions": {"hu":"Mosás 30 °C","en":"Wash at 30 °C"},
"repair": {"repairable": true, "sparePartsAvailable": false},
"endOfLife": {
"recyclingInstructions": {"hu":"Textilgyűjtő","en":"Textile bin"},
"disposalInstructions": {"hu":"Ne a kukába","en":"Not household waste"}
},
"economicOperator": {
"role":"manufacturer","legalName":"Lumora Kft.","address":"Budapest",
"country":"HU","contactEmail":"hello@lumora.hu"
}
}
}'
Válasz (201):
{
"data": {
"id": "a1993ef7-7562-43bb-92ff-eb63f02dcde9",
"category": "textile",
"status": "active",
"version_no": 1,
"passport_url": "https://veridyn.eu/<fiók>/p/a1993ef7-…",
"qr_url": "https://veridyn.eu/api/v1/products/a1993ef7-…/qr",
"data": { "productName": "Bio pamut póló", … }
}
}
curl https://veridyn.eu/api/v1/products?limit=25 \
-H "Authorization: Bearer vk_<kulcs>"
curl https://veridyn.eu/api/v1/products/{id} \
-H "Authorization: Bearer vk_<kulcs>"
curl -X PATCH https://veridyn.eu/api/v1/products/{id} \
-H "Authorization: Bearer vk_<kulcs>" \
-H "Content-Type: application/json" \
-d '{"data": {"recycledContentPercentage": 30}}'
A megadott mezők ráolvasnak a meglévő adatra (részleges frissítés), majd validálunk, és új, megőrzött verzió jön létre — a teljes változás-történet megmarad.
Siker: a hasznos adat a data kulcs alatt. Hiba esetén:
{ "error": "Érvénytelen adatok.", "code": "validation", "errors": [ … ] }
| HTTP | code | Jelentés |
|---|---|---|
| 401 | unauthorized | Hiányzó/érvénytelen API-kulcs. |
| 403 | plan_required | Az API a Pro csomagtól érhető el. |
| 404 | not_found | Nincs ilyen termék / útvonal. |
| 409 | gtin_taken | A GTIN már foglalt. |
| 422 | validation | Érvénytelen adat (részletek az errors-ban). |
A Beállítások → Webhookok alatt regisztrálsz egy HTTPS URL-t. Amikor egy termékútlevél létrejön / frissül / archiválódik, a Veridyn egy aláírt JSON-t POST-ol arra az URL-re — így a rendszered valós időben értesül, kérdezgetés nélkül.
product.created · product.updated · product.archived · product.restored
POST https://your-system.example/veridyn-webhook
Content-Type: application/json
X-Veridyn-Event: product.updated
X-Veridyn-Signature: sha256=<hmac>
{
"event": "product.updated",
"data": { "id": "a1993ef7-…", "category": "textile", "version_no": 2 },
"sent_at": "2026-07-02T13:19:11+00:00"
}
Az X-Veridyn-Signature a nyers törzs HMAC-SHA256 aláírása a webhook secret-jével (a Beállításokban látod). Így ellenőrzöd — pl. PHP-ban:
$body = file_get_contents('php://input');
$expected = 'sha256=' . hash_hmac('sha256', $body, $secret);
if (!hash_equals($expected, $_SERVER['HTTP_X_VERIDYN_SIGNATURE'] ?? '')) {
http_response_code(401); exit; // érvénytelen aláírás}
Válaszolj 2xx státusszal. A kézbesítés best-effort (rövid timeout); az utolsó kézbesítés státusza a Beállításokban látszik.
/schema/{category} végponton látszanak. Jelenleg elérhető: textile és battery. A séma bővül, ahogy az EU véglegesíti a kategóriákat.