---
title: "EU digitális termékútlevelek generálása API-n keresztül — qr3.app Blog"
description: "A legtöbb DPP-útmutató azt mondja el, mit kell tartalmaznia egy útlevélnek. Ez azt mutatja meg, hogyan hozhatsz létre EU-konform digitális termékútleveleket programozottan — curl, a qr3 SDK, kötegelt létrehozás, validálás, GS1 QR-kódok és webhookok segítségével."
canonical: "https://qr3.app/hu/blog/dpp-api-generate-passports/"
lang: "hu"
robots: "index,follow,max-image-preview:large,max-snippet:-1"
---

# EU digitális termékútlevelek generálása API-n keresztül — qr3.app Blog

> A legtöbb DPP-útmutató azt mondja el, mit kell tartalmaznia egy útlevélnek. Ez azt mutatja meg, hogyan hozhatsz létre EU-konform digitális termékútleveleket programozottan — curl, a qr3 SDK, kötegelt létrehozás, validálás, GS1 QR-kódok és webhookok segítségével.

Canonical: <https://qr3.app/hu/blog/dpp-api-generate-passports/>

[← Blog](/hu/blog/) [Oktatóanyagok](/hu/blog/category/tutorials/)

2026. május 30. 4 perc olvasás [Oktatóanyagok](/hu/blog/category/tutorials/) [dpp](/hu/blog/tag/dpp/)[api](/hu/blog/tag/api/)[gs1-digital-link](/hu/blog/tag/gs1-digital-link/)[developers](/hu/blog/tag/developers/)[eu-2024-1781](/hu/blog/tag/eu-2024-1781/)

# EU digitális termékútlevelek generálása API-n keresztül

A legtöbb DPP-útmutató azt mondja el, mit kell tartalmaznia egy útlevélnek. Ez azt mutatja meg, hogyan hozhatsz létre EU-konform digitális termékútleveleket programozottan — curl, a qr3 SDK, kötegelt létrehozás, validálás, GS1 QR-kódok és webhookok segítségével.

szerző: **QR3 Redaktion**

![EU digitális termékútlevelek generálása API-n keresztül](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/dpp-api-generate-passports/hero.png)

Az EU digitális termékútleveléről (DPP) szóló cikkek többsége azt magyarázza el, *mit* kell tartalmaznia egy útlevélnek. Sokkal kevesebb mutatja meg, *hogyan* hozz létre egyet — és szinte egyik sem mutatja meg, hogyan tedd ezt 500 vagy 50 000 SKU-ból álló katalógus esetében anélkül, hogy 50 000-szer kellene végigkattintanod egy űrlapon.

Ez az útmutató a fejlesztői változat. Az alábbi minden lépés egy valódi, működő hívás a qr3.app API-jával szemben (`https://qr3.app/v1`). Ha egy ERP-ben, egy PIM-ben vagy egy adatbázisban kezeled a termékadatokat, a DPP-generálást közvetlenül beépítheted a meglévő folyamatodba.

## Miért fontos az API a DPP-knél

A digitális termékútlevél nem egyszeri dokumentum. A [fenntartható termékek környezetbarát tervezéséről szóló rendelet (ESPR, EU 2024/1781)](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32024R1781) és az [EU akkumulátor-rendelet 2023/1542](https://eur-lex.europa.eu/eli/reg/2023/1542/oj) értelmében minden szabályozott egységnek olyan útlevélre van szüksége, amely a teljes élettartama alatt naprakész marad. Egy gyártó számára ez a következőket jelenti:

- **Méretezhetőség** — több száztól több tízezer termékig, mindegyik saját GTIN/sorozatszámmal.

- **Naprakészség** — az adatok (szénlábnyom, újrahasznosított tartalom, javítási információk) változnak, és frissíteni kell őket, nem újból létrehozni.

- **Integráció** — az igazság forrása az ERP/PIM, nem egy webes űrlap.

Ez egy API-feladat. Egy manuális webes eszközzel megvan az első tíz útleveled; egy API-val mindegyik megvan.

## 1. Hitelesítés

Minden kérés bearer tokent használ (hozz létre egy API-kulcsot a vezérlőpulton). Az alap-URL `https://qr3.app/v1`.

```
curl https://qr3.app/v1/dpp \
  -H "Authorization: Bearer $QR3_API_KEY"
```

Vagy a hivatalos SDK-val:

```
import { QR3 } from "@qr3/sdk";

const client = new QR3({ apiKey: process.env.QR3_API_KEY! });
```

## 2. Akkumulátor-útlevél létrehozása

Egy DPP-t a `POST /dpp` hívással hozhatsz létre. A felső szintű mezők minden kategóriánál azonosak; a kategória-specifikus adatok a `battery_data`, `textile_data` vagy `general_data` mezőkbe kerülnek.

```
curl -X POST https://qr3.app/v1/dpp \
  -H "Authorization: Bearer $QR3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "gtin": "09506000134376",
    "serial": "SN-00012345",
    "product_name": "PowerCell 5 kWh LFP",
    "manufacturer": "ExampleTech GmbH",
    "origin_country": "DE",
    "category": "battery",
    "market_countries": ["DE", "FR", "AT"],
    "status": "live",
    "battery_data": {
      "capacity_kwh": 5,
      "carbon_footprint_kg": 62,
      "carbon_footprint_class": "B",
      "recycled_content_pct": 12,
      "recyclability_pct": 95,
      "manufacturer_warranty_years": 8,
      "lithium_content_pct": 6.5,
      "certifications": ["CE", "UN38.3"]
    }
  }'
```

Ugyanez a hívás az SDK-val:

```
const passport = await client.dpp.create({
  gtin: "09506000134376",
  serial: "SN-00012345",
  product_name: "PowerCell 5 kWh LFP",
  manufacturer: "ExampleTech GmbH",
  origin_country: "DE",
  category: "battery",
  market_countries: ["DE", "FR", "AT"],
  battery_data: {
    capacity_kwh: 5,
    carbon_footprint_kg: 62,
    recycled_content_pct: 12,
    recyclability_pct: 95,
    manufacturer_warranty_years: 8,
  },
});

console.log(passport.id);      // dpp_xxxxxxxx
console.log(passport.qr.svg);  // print-ready GS1 Digital Link QR
```

A válasz tartalmaz egy fogyasztóknak szóló céloldalt (25 EU-nyelvre lokalizálva) és egy nyomtatásra kész, címkenyomtatáshoz használható **GS1 Digital Link** QR-kódot — külön QR-lépésre nincs szükség.

## 3. Validálj a létrehozás előtt

Szeretnéd a hiányzó vagy érvénytelen mezőket még a tárolás előtt elkapni? A `POST /dpp/validate` pontosan ugyanazokat az EU-validálási szabályokat futtatja le anélkül, hogy bármit is létrehozna. Ideális előzetes ellenőrzésként a CI-ban.

```
const result = await client.dpp.validate({
  gtin: "09506000134376",
  product_name: "PowerCell 5 kWh LFP",
  manufacturer: "ExampleTech GmbH",
  origin_country: "DE",
  category: "battery",
  battery_data: {
    capacity_kwh: 5,
    carbon_footprint_kg: 62,
    recycled_content_pct: 12,
    recyclability_pct: 95,
    manufacturer_warranty_years: 8,
  },
});

if (!result.valid) {
  console.error(result.errors);
  // [{ field: "battery_data.recyclability_pct", message: "..." }]
}
```

## 4. Kötegelt létrehozás egy teljes katalógushoz

Egy termékkatalógushoz kérésenként akár **100 útlevelet** is küldhetsz a `POST /dpp/batch` végpontra. Iterálj végig az ERP-exportodon, és perceken belül megvan a teljes termékkínálatod.

```
const items = products.map((p) => ({
  gtin: p.gtin,
  serial: p.serial,
  product_name: p.name,
  manufacturer: "ExampleTech GmbH",
  origin_country: "DE",
  category: "battery" as const,
  battery_data: {
    capacity_kwh: p.capacityKwh,
    carbon_footprint_kg: p.co2Kg,
    recycled_content_pct: p.recycledPct,
    recyclability_pct: p.recyclablePct,
    manufacturer_warranty_years: p.warrantyYears,
  },
}));

// Chunk into batches of 100
const result = await client.dpp.batch({ items: items.slice(0, 100) });
```

## 5. A QR-kód lekérése címkenyomtatáshoz

Minden útlevél négy nyomtatási formátumban teszi elérhetővé a GS1 Digital Link QR-kódját. Lekérheted őket az útlevélobjektumon keresztül vagy közvetlenül:

```
curl https://qr3.app/v1/dpp/dpp_xxxxxxxx/qr.svg \
  -H "Authorization: Bearer $QR3_API_KEY" -o label.svg
```

A `qr.svg`, `qr.png`, `qr.pdf` és `qr.eps` mind elérhető — SVG/EPS a címkenyomtatódhoz, PNG a webre.

## 6. Tartsd naprakészen az adatokat (a QR-kód feltörése nélkül)

A GTIN/sorozatszám/tétel a létrehozás után **megváltoztathatatlan** — ez örökre stabilan tartja a nyomtatott GS1 URI-t. Minden más frissíthető a `PUT /dpp/{id}` hívással:

```
await client.dpp.update(passport.id, {
  battery_data: {
    capacity_kwh: 5,
    carbon_footprint_kg: 58, // re-measured, lower footprint
    recycled_content_pct: 16, // 2031 target reached early
    recyclability_pct: 95,
    manufacturer_warranty_years: 8,
  },
});
```

A fizikai terméken lévő QR-kód soha nem változik; a mögötte lévő adat viszont igen. Pontosan ez a *dinamikus* útlevél lényege.

## 7. Beküldés az EU-nyilvántartásba

Amikor a központi EU DPP-nyilvántartás a termékedre vonatkozik, egyetlen hívással beküldhetsz egy útlevelet (Business csomagtól felfelé):

```
const reg = await client.dpp.registerForEuRegistry(passport.id);
console.log(reg.data.eu_registry_status);          // "pending"
console.log(reg.data.registry_request_id);
```

> **A jelenlegi állás szerint:** Az EU még nem tette közzé a központi DPP-nyilvántartásának API-ját. Addig ez a hívás egy tesztútvonal — a státusz `pending` marad, és egyetlen hatóság sem kapja meg az útlevelet. Amint az API élesedik, ugyanez a hívás valódi regisztrációvá válik.

## 8. Reagálj a beolvasásokra webhookokkal

A DPP-beolvasások események. Iratkozz fel a `qr.scanned` eseményre, és valós időben streamelheted őket az analitikádba, indíthatsz utánrendeléseket, vagy jelölhetsz meg egy visszahívást. A payloadok aláírtak (HMAC-SHA256); mindig ellenőrizd az aláírást.

```
import { createHmac, timingSafeEqual } from "crypto";

app.post("/webhooks/qr3", express.raw({ type: "application/json" }), (req, res) => {
  const expected = createHmac("sha256", secret).update(req.body).digest("hex");
  const expectedBytes = Buffer.from(`sha256=${expected}`);
  const receivedBytes = Buffer.from(String(req.headers["x-qr3-signature"] ?? ""));
  const ok =
    expectedBytes.length === receivedBytes.length &&
    timingSafeEqual(expectedBytes, receivedBytes);
  if (!ok) return res.sendStatus(401);

  const event = JSON.parse(req.body.toString("utf8"));
  if (event.type === "qr.scanned") {
    console.log(event.data.country, event.data.dpp_id);
  }
  res.sendStatus(200);
});
```

## Mindent összerakva: DPP-generálás a CI-ban

A legtöbb gyártó által kívánt végállapot: a termékadatok az ERP/PIM-ben élnek, és egy ütemezett feladat tartja szinkronban az útleveleket.

1. Exportáld a megváltozott termékeket az ERP-edből.

2. `client.dpp.validate(...)` mindegyikre — buktasd el a buildet validálási hibák esetén.

3. `client.dpp.batch(...)` az új termékekre; `client.dpp.update(...)` a megváltozottakra.

4. Küldd a visszakapott `qr.svg` URL-eket a címkenyomtató rendszeredbe.

Nincs webes űrlap, nincs másol-beilleszt, nincs eltérés a törzsadataid és az útleveleid között.

## GYIK

**Szükségem van külön QR-kód eszközre?**
Nem. Minden DPP egy GS1 Digital Link QR-kódot ad vissza SVG/PNG/PDF/EPS formátumban. A QR-kód *maga* az útlevélhez vezető hozzáférési pont.

**Frissíthetek egy útlevelet a címke kinyomtatása után?**
Igen — ez a lényeg. A GTIN/sorozatszám megváltoztathatatlan, így a nyomtatott URI érvényes marad; minden adatmező frissíthető a `PUT /dpp/{id}` hívással.

**Hány útlevelet hozhatok létre egyszerre?**
Legfeljebb 100 darab `POST /dpp/batch` kérésenként. Darabold fel a nagyobb katalógusokat; a korlát API-kulcsunként 60 kérés per perc, minden csomagban.

**Mely kategóriák támogatottak?**
A `battery` és a `textile` ma már teljes EU-validálással érkezik; a `general` az egyéb terméktípusokat fedi le. Az akkumulátor és a textil tartalmaz egy élő EU-megfelelőségi ellenőrzést (ESPR / AGEC).

## Források

- [ESPR — Rendelet (EU) 2024/1781](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32024R1781)

- [EU akkumulátor-rendelet 2023/1542](https://eur-lex.europa.eu/eli/reg/2023/1542/oj)

- [GS1 Digital Link](https://www.gs1.org/standards/gs1-digital-link)

**Kezdd el ingyen**, és hozd létre az első DPP-det API-n keresztül: [app.qr3.app/sign-up](https://app.qr3.app/sign-up)

## Kapcsolódó cikkek

- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/gs1-resolver-test-suite-dpp-links/hero.png) Oktatóanyagok GS1 Resolver tesztcsomag: DPP-hivatkozások megbízható ellenőrzése az élesítés előtt A stabil GS1-tesztcsomag ellenőrizhetővé teszi a Resolver 1.2-t. Így tesztelhetők az átirányítások, linkkészletek, a CORS, a nyelvek és a hibás esetek az élesítés előtt.](/hu/blog/gs1-resolver-test-suite-dpp-links/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/dpp-battery-passport-2027-20260715/hero.png) Iparági hírek A BatteryPass-Ready elindította a Digitális Akkumulátor-útlevél tesztkörnyezetét A BatteryPass-Ready konzorcium 2026. június 24-én nyilvános tesztkörnyezetet indított a Digitális Akkumulátor-útlevélhez, az EU 2027 februárjától érvényes kötelezettségére tekintettel.](/hu/blog/dpp-battery-passport-2027-20260715/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/sector-20260713/hero.png) Iparági hírek Digitális akkumulátor-útlevél 2027: amit a gyártóknak most tudniuk kell Webináriumok, nyílt forráskódú eszközök és új szabványok: az uniós akkumulátor-útlevél lendületet kapott. Áttekintés a 2026. júliusi helyzetről és a 2027 februárjáig tisztázandó kérdésekről.](/hu/blog/sector-20260713/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/sector-20260711/hero.png) Iparági hírek Digitális akkumulátor-útlevél 2026: tesztkörnyezetek, szabványok és nyitott kérdések Hol tart az iparág a digitális akkumulátor-útlevél bevezetésében? Áttekintés a tesztkörnyezetekről, a CEN/CENELEC szabványairól, a nyílt forráskódú eszközökről és a 2026. júliusi szabályozási döntése.](/hu/blog/sector-20260711/)

[← Minden cikk](/hu/blog/) [Kezdés ingyen](https://app.qr3.app/sign-up)
