---
title: "Генериране на цифрови продуктови паспорти на ЕС чрез API — qr3.app Blog"
description: "Повечето ръководства за DPP ви казват какво трябва да съдържа един паспорт. Това тук показва как да създавате съвместими с ЕС цифрови продуктови паспорти програмно — с curl, qr3 SDK, групово създаване, валидиране, GS1 QR кодове и webhook-ове."
canonical: "https://qr3.app/bg/blog/dpp-api-generate-passports/"
lang: "bg"
robots: "index,follow,max-image-preview:large,max-snippet:-1"
---

# Генериране на цифрови продуктови паспорти на ЕС чрез API — qr3.app Blog

> Повечето ръководства за DPP ви казват какво трябва да съдържа един паспорт. Това тук показва как да създавате съвместими с ЕС цифрови продуктови паспорти програмно — с curl, qr3 SDK, групово създаване, валидиране, GS1 QR кодове и webhook-ове.

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

[← Блог](/bg/blog/) [Ръководства](/bg/blog/category/tutorials/)

30 май 2026 г. 4 мин четене [Ръководства](/bg/blog/category/tutorials/) [dpp](/bg/blog/tag/dpp/)[api](/bg/blog/tag/api/)[gs1-digital-link](/bg/blog/tag/gs1-digital-link/)[developers](/bg/blog/tag/developers/)[eu-2024-1781](/bg/blog/tag/eu-2024-1781/)

# Генериране на цифрови продуктови паспорти на ЕС чрез API

Повечето ръководства за DPP ви казват какво трябва да съдържа един паспорт. Това тук показва как да създавате съвместими с ЕС цифрови продуктови паспорти програмно — с curl, qr3 SDK, групово създаване, валидиране, GS1 QR кодове и webhook-ове.

от **QR3 Redaktion**

![Генериране на цифрови продуктови паспорти на ЕС чрез API](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/dpp-api-generate-passports/hero.png)

Повечето статии за цифровия продуктов паспорт на ЕС (DPP) обясняват *какво* трябва да съдържа един паспорт. Далеч по-малко показват *как* да създадете такъв — и почти нито една не показва как да го направите за каталог от 500 или 50 000 SKU-та, без да щраквате през формуляр 50 000 пъти.

Това ръководство е версията за разработчици. Всяка стъпка по-долу е реално, работещо извикване към API на qr3.app (`https://qr3.app/v1`). Ако управлявате продуктови данни в ERP, в PIM или в база данни, можете да вградите генерирането на DPP директно в съществуващия си процес.

## Защо API е важен за DPP-тата

Цифровият продуктов паспорт не е еднократен документ. Съгласно [Регламента за екодизайн на устойчиви продукти (ESPR, ЕС 2024/1781)](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32024R1781) и [Регламента на ЕС за батериите 2023/1542](https://eur-lex.europa.eu/eli/reg/2023/1542/oj) всяка регулирана единица се нуждае от паспорт, който остава актуален през целия си жизнен цикъл. За един производител това означава:

- **Мащаб** — стотици до десетки хиляди продукти, всеки със собствен GTIN/сериен номер.

- **Актуалност** — данните (въглеродeн отпечатък, рециклирано съдържание, информация за ремонт) се променят и трябва да бъдат актуализирани, а не пресъздадени.

- **Интеграция** — източникът на истина е вашият ERP/PIM, а не уеб формуляр.

Това е проблем за API. Един ръчен уеб инструмент ви осигурява първите десет паспорта; един API ви осигурява всичките.

## 1. Удостоверяване

Всяка заявка използва bearer токен (създайте API ключ в таблото за управление). Базовият URL е `https://qr3.app/v1`.

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

Или с официалния SDK:

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

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

## 2. Създаване на паспорт за батерия

DPP се създава с `POST /dpp`. Полетата от най-високо ниво са едни и същи за всяка категория; специфичните за категорията данни отиват в `battery_data`, `textile_data` или `general_data`.

```
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"]
    }
  }'
```

Същото извикване със SDK:

```
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
```

Отговорът включва насочена към потребителите landing страница (локализирана на 25 езика на ЕС) и QR код **GS1 Digital Link**, готов за печат на етикети — не е необходима отделна стъпка за QR.

## 3. Валидирайте, преди да създавате

Искате да уловите липсващи или невалидни полета, преди да запишете данните? `POST /dpp/validate` изпълнява точно същите правила за валидиране на ЕС, без да създава нищо. Идеален като предварителна проверка преди commit в CI.

```
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. Групово създаване на цял каталог

За продуктов каталог изпратете до **100 паспорта на заявка** към `POST /dpp/batch`. Преминете в цикъл през експорта от вашия ERP и целият ви асортимент е готов за минути.

```
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. Вземане на QR кода за печат на етикети

Всеки паспорт предоставя своя GS1 Digital Link QR в четири формата за печат. Изтеглете ги чрез обекта на паспорта или директно:

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

`qr.svg`, `qr.png`, `qr.pdf` и `qr.eps` са налични — SVG/EPS за вашия принтер за етикети, PNG за уеб.

## 6. Поддържане на данните актуални (без да нарушавате QR кода)

GTIN/серийният номер/партидата са **непроменими** след създаването — това поддържа отпечатания GS1 URI стабилен завинаги. Всичко останало може да бъде актуализирано с `PUT /dpp/{id}`:

```
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,
  },
});
```

QR кодът върху физическия продукт никога не се променя; данните зад него — да. Това е целият смисъл на един *динамичен* паспорт.

## 7. Подаване в регистъра на ЕС

Когато централният регистър за DPP на ЕС е приложим за вашия продукт, подайте паспорт с едно извикване (план Business и нагоре):

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

> **Към днешна дата:** ЕС все още не е публикувал API на своя централен DPP регистър. Дотогава това извикване е тестов път — статусът остава `pending` и никой орган не получава паспорта. Щом API стане активен, същото извикване ще служи за реална регистрация.

## 8. Реагиране на сканирания с webhook-ове

Сканиранията на DPP са събития. Абонирайте се за `qr.scanned` и можете да ги предавате към вашата аналитика, да задействате повторни поръчки или да маркирате изтегляне от пазара — в реално време. Полезните товари са подписани (HMAC-SHA256); винаги проверявайте подписа.

```
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);
});
```

## Сглобяване на всичко: генериране на DPP в CI

Крайното състояние, което повечето производители искат: продуктовите данни се намират в ERP/PIM, а планирана задача поддържа паспортите синхронизирани.

1. Експортирайте променените продукти от вашия ERP.

2. `client.dpp.validate(...)` за всеки от тях — провалете билда при грешки във валидирането.

3. `client.dpp.batch(...)` за новите продукти; `client.dpp.update(...)` за променените.

4. Изпратете върнатите URL адреси на `qr.svg` към вашата система за печат на етикети.

Без уеб формуляр, без копиране и поставяне, без разминаване между вашите основни данни и вашите паспорти.

## Често задавани въпроси

**Нуждая ли се от отделен инструмент за QR кодове?**
Не. Всеки DPP връща GS1 Digital Link QR в SVG/PNG/PDF/EPS. QR кодът *е* точката за достъп до паспорта.

**Мога ли да актуализирам паспорт, след като етикетът е отпечатан?**
Да — това е основната идея. GTIN/серийният номер са непроменими, така че отпечатаният URI остава валиден; всички полета с данни могат да се актуализират чрез `PUT /dpp/{id}`.

**Колко паспорта мога да създам наведнъж?**
До 100 на заявка `POST /dpp/batch`. Разделяйте по-големите каталози; лимитът е 60 заявки в минута за всеки API ключ, при всеки план.

**Кои категории се поддържат?**
`battery` и `textile` се предлагат с пълно валидиране за ЕС днес; `general` покрива други видове продукти. Battery и textile включват жива проверка за съответствие с ЕС (ESPR / AGEC).

## Източници

- [ESPR — Регламент (ЕС) 2024/1781](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32024R1781)

- [Регламент на ЕС за батериите 2023/1542](https://eur-lex.europa.eu/eli/reg/2023/1542/oj)

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

**Започнете безплатно** и създайте първия си DPP чрез API: [app.qr3.app/sign-up](https://app.qr3.app/sign-up)

## Свързани статии

- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/gs1-resolver-test-suite-dpp-links/hero.png) Ръководства Тестов пакет за резолвери: DPP-връзките да бъдат надеждно проверени преди пускане в продукция Стабилният тестов пакет на GS1 позволява проверка на Resolver 1.2. Така можете да тествате пренасочвания, набори от връзки, CORS, езици и грешки преди пускане в продукция.](/bg/blog/gs1-resolver-test-suite-dpp-links/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/dpp-battery-passport-2027-20260715/hero.png) Новини от бранша BatteryPass-Ready стартира тестова среда за цифровия паспорт на батерията На 24 юни 2026 г. консорциумът BatteryPass-Ready стартира публична тестова среда за цифровия паспорт на батерията с оглед на задължението на ЕС от февруари 2027 г.](/bg/blog/dpp-battery-passport-2027-20260715/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/sector-20260713/hero.png) Новини от бранша Дигитален паспорт на батерията 2027: Какво трябва да знаят производителите сега Уебинари, инструменти с отворен код и нови стандарти: паспортът на батерията на ЕС набира скорост. Преглед на състоянието през юли 2026 г. и откритите въпроси до февруари 2027 г.](/bg/blog/sector-20260713/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/sector-20260711/hero.png) Новини от бранша Цифров паспорт на батерията 2026: тестови среди, стандарти и нерешени въпроси Какъв е напредъкът на индустрията по отношение на цифровия паспорт на батерията? Преглед на тестови среди, стандарти CEN/CENELEC, инструменти с отворен код и регулаторни решения през юли 2026 г.](/bg/blog/sector-20260711/)

[← Всички статии](/bg/blog/) [Започни безплатно](https://app.qr3.app/sign-up)
