---
title: "Automatizácia digitálnych produktových pasov pomocou webhookov — qr3.app Blog"
description: "Digitálny produktový pas nie je statická stránka — každé naskenovanie je udalosť, na ktorej môžete stavať. Reagujte na qr.scanned pri analytike, doobjednávkach a príznakoch stiahnutia z trhu, udržiavajte údaje pasu aktuálne z vášho ERP a overujte každý payload pomocou HMAC-SHA256. Príručka pre vývojárov s kódom."
canonical: "https://qr3.app/sk/blog/dpp-webhooks-automation/"
lang: "sk"
robots: "index,follow,max-image-preview:large,max-snippet:-1"
---

# Automatizácia digitálnych produktových pasov pomocou webhookov — qr3.app Blog

> Digitálny produktový pas nie je statická stránka — každé naskenovanie je udalosť, na ktorej môžete stavať. Reagujte na qr.scanned pri analytike, doobjednávkach a príznakoch stiahnutia z trhu, udržiavajte údaje pasu aktuálne z vášho ERP a overujte každý payload pomocou HMAC-SHA256. Príručka pre vývojárov s kódom.

Canonical: <https://qr3.app/sk/blog/dpp-webhooks-automation/>

[← Blog](/sk/blog/) [Návody](/sk/blog/category/tutorials/)

30. mája 2026 5 min čítania [Návody](/sk/blog/category/tutorials/) [dpp](/sk/blog/tag/dpp/)[webhooks](/sk/blog/tag/webhooks/)[automation](/sk/blog/tag/automation/)[qr-scanned](/sk/blog/tag/qr-scanned/)[sdk](/sk/blog/tag/sdk/)

# Automatizácia digitálnych produktových pasov pomocou webhookov

Digitálny produktový pas nie je statická stránka — každé naskenovanie je udalosť, na ktorej môžete stavať. Reagujte na qr.scanned pri analytike, doobjednávkach a príznakoch stiahnutia z trhu, udržiavajte údaje pasu aktuálne z vášho ERP a overujte každý payload pomocou HMAC-SHA256. Príručka pre vývojárov s kódom.

autor **QR3 Redaktion**

![Automatizácia digitálnych produktových pasov pomocou webhookov](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/dpp-webhooks-automation/hero.png)

Väčšina tímov vníma digitálny produktový pas ako stránku: vytvoríte ho, vytlačíte QR kód a zabudnete naň. Tým necháte ten najužitočnejší signál nevyužitý. Zakaždým, keď niekto naskenuje QR kód na produkte, ide o **udalosť** — skutočný človek, v skutočnej krajine, držiaci skutočný kus, v skutočnom okamihu. Prepojte tieto udalosti so svojím technologickým stackom a pas prestane byť statickou stránkou a stane sa front-endom automatizačnej pipeline. Táto príručka ukazuje, ako sa prihlásiť na odber `qr.scanned`, overiť každý payload a premeniť naskenovania a aktualizácie na reálne pracovné postupy pomocou qr3 SDK.

## Prečo je DPP zdrojom udalostí, nie statickou stránkou

Hodnota pasu nespočíva v stránke, ktorú spotrebiteľ uvidí raz. Spočíva v prúde interakcií okolo neho: naskenovania v teréne, zmeny údajov z vášho ERP, prechody v životnom cykle. Každá z nich je niečo, na čo môžu vaše systémy reagovať v reálnom čase.

Webhooky obracajú obvyklý model dotazovania (polling). Namiesto opakovaného otázky *„stalo sa niečo?“* na časovači vám qr3 zavolá **sám** v okamihu, keď sa tak stane. Typy udalostí, ktoré platforma vysiela, zahŕňajú `qr.scanned`, plus `qr.created`, `qr.updated` a `qr.deleted` pre zmeny v životnom cykle. Tá, ktorú väčšina tímov nevyužíva naplno, je `qr.scanned`: spustí sa, keď spotrebiteľ, technik alebo colný úradník skutočne naskenuje produkt v teréne.

Payload `qr.scanned` nesie kontext, ktorý potrebujete na konanie — vrátane **krajiny** naskenovania a **dpp/code id**, ktoré identifikuje, ktorý kus bol naskenovaný. To stačí na riadenie analytiky, doplňovania zásob a logiky stiahnutia z trhu bez zásahu človeka.

## Prihlásenie na odber qr.scanned

Nasmerujte webhookový endpoint na vašu službu a spracujte udalosť. Pred parsovaním overte podpis voči surovému telu:

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

const app = express();
const secret = process.env.QR3_WEBHOOK_SECRET!;

// Recompute the HMAC over the exact bytes qr3 signed and compare in constant time.
function verify(raw: Buffer, header: string | undefined): boolean {
  const expected = createHmac("sha256", secret).update(raw).digest("hex");
  const expectedBytes = Buffer.from(`sha256=${expected}`);
  const receivedBytes = Buffer.from(header ?? "");
  return (
    expectedBytes.length === receivedBytes.length &&
    timingSafeEqual(expectedBytes, receivedBytes)
  );
}

// Use the raw body so the signature matches the exact bytes qr3 signed.
app.post("/webhooks/qr3", express.raw({ type: "application/json" }), (req, res) => {
  if (!verify(req.body, req.headers["x-qr3-signature"] as string)) return res.sendStatus(401);
  const event = JSON.parse(req.body.toString("utf8"));

  if (event.type === "qr.scanned") {
    // event payload includes fields like the scan country and the dpp/code id
    handleScan(event);
  }

  res.sendStatus(200);
});
```

Handler je zámerne útly: overte, vetvite podľa `event.type`, rýchlo potvrďte pomocou `200`. Ťažkú prácu (zápisy do analytiky, volania ERP) vykonávajte asynchrónne, aby pomalý downstream nikdy neblokoval potvrdenie.

## Overovanie podpisov (HMAC-SHA256) — robte to vždy

Webhookový endpoint je verejná URL. Ktokoľvek, kto ju nájde, môže na ňu posielať POST. Ak dôverujete telu bez overenia, kto ho poslal, útočník môže sfalšovať „naskenovania“, spustiť falošné doobjednávky alebo vyvolať falošné príznaky stiahnutia z trhu. **Vždy overte podpis skôr, ako budete na payload reagovať.**

qr3 podpisuje každý webhook pomocou **HMAC-SHA256** nad surovým telom požiadavky, s použitím tajného kľúča vášho endpointu. Podpis prichádza v hlavičke požiadavky `X-QR3-Signature` ako `sha256=` nasledované hexadecimálnym odtlačkom. Prepočítajte HMAC nad rovnakými bajtmi a porovnajte ich v konštantnom čase; ak sa nezhodujú, požiadavku odmietnite:

```
app.post("/webhooks/qr3", express.raw({ type: "application/json" }), (req, res) => {
  if (!verify(req.body, req.headers["x-qr3-signature"] as string)) {
    // signature mismatch → not from qr3 (or body was altered in transit)
    return res.sendStatus(401);
  }
  process(JSON.parse(req.body.toString("utf8")));
  res.sendStatus(200);
});
```

Tri pravidlá, ktoré to udržia poctivé:

- **Overujte voči surovým bajtom.** Opätovná serializácia JSON môže zmeniť poradie kľúčov a biele znaky, čo naruší HMAC. Zachyťte surové telo (vyššie, `express.raw`).

- **Tajný kľúč udržujte v tajnosti.** Žije vo vašom prostredí, nikdy nie v klientskom kóde ani v repozitári.

- **Zlyhajte uzavreto (fail closed).** Žiadny platný podpis → `401`, žiadne vedľajšie účinky. Pri nezhode nikdy „spracovať aj tak“.

## Vzory: analytika / doobjednávka / stiahnutie z trhu

Keď udalosti dôverujete, hrstka vzorov pokryje väčšinu toho, čo tímy chcú:

```
function handleScan(event: { type: string; data: { country?: string; dpp_id?: string } }) {
  // 1) Analytics — where and how often are products scanned?
  metrics.increment("dpp.scan", { country: event.data.country });

  // 2) Re-order — a scan can signal consumption or field activity
  if (event.data.country) maybeReplenish(event.data.dpp_id, event.data.country);

  // 3) Recall flag — scans of a flagged unit alert your team
  if (isRecalled(event.data.dpp_id)) alertRecall(event.data.dpp_id, event.data.country);
}
```

- **Analytika:** agregujte naskenovania podľa krajiny a kusu, aby ste videli reálnu angažovanosť — ktoré trhy skutočne skenujú a ktoré SKU zaznamenávajú najviac popredajných interakcií.

- **Doobjednávka / doplnenie zásob:** nával naskenovaní v regióne môže napájať dopytové signály alebo spúšťať pracovné postupy doplnenia zásob vo vašom ERP.

- **Stiahnutie z trhu / bezpečnosť:** ak je kus predmetom stiahnutia z trhu, naskenovanie je príležitosťou osloviť toho, kto ho práve drží — upozornite svoj tím alebo zobrazte oznámenie priamo v pase.

Žiadne z týchto riešení nepotrebuje polling ani nočnú dávku. Dejú sa v okamihu, keď je produkt naskenovaný.

## Udržiavanie údajov aktuálnych cez client.dpp.update

Reagovanie na naskenovania je polovica slučky; druhou polovicou je udržiavanie samotného pasu presným. Predpisy ako **ESPR (EU 2024/1781)** a **nariadenie o batériách (EU 2023/1542)** očakávajú, že údaje pasu budú odrážať realitu počas životnosti produktu — prepočítaná uhlíková stopa, aktualizované pokyny na opravu, dosiahnuté ciele recyklovaného obsahu.

Tieto aktualizácie riaďte zo systému evidencie (system of record). Keď sa hodnota zmení vo vašom ERP, pošlite ju do pasu:

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

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

// GTIN and serial are immutable; data fields are updatable.
await client.dpp.update(dppId, {
  battery_data: { carbon_footprint_kg: 58, recycled_content_pct: 16 },
});
```

Keďže QR kód kóduje stabilnú resolver URL (`https://qr3.app/dpp/{gtin}/{serial}`, pridajte `?format=jsonld` pre JSON-LD), nikdy nemusíte znovu tlačiť štítok, aby ste zmenili údaje. Identita zostáva pevná; obsah za ňou zostáva aktuálny. Spárujte to s `qr.updated` a môžete rozosielať notifikáciu zakaždým, keď sa pas zmení — uzatvárate slučku medzi vaším ERP, pasom a kýmkoľvek, kto sleduje downstream.

## Tabuľka udalostí: udalosť → čo automatizovať

| Udalosť | Spustí sa, keď | Čo automatizovať |
| --- | --- | --- |
| `qr.scanned` | QR kód produktu je naskenovaný v teréne | Analytika podľa krajiny, signály doplnenia zásob, upozornenia na stiahnutie z trhu |
| `qr.created` | Vytvorí sa nový pas | Indexujte ho, synchronizujte do PIM/ERP, upozornite tím katalógu |
| `qr.updated` | Údaje pasu sa zmenia | Znovu nacacheujte verejnú stránku, rozošlite notifikácie o zmenách |
| `qr.deleted` | Pas je odstránený | Označte interné záznamy ako neaktívne (tombstone), zrušte downstream odkazy |

Začnite s `qr.scanned` pre angažovanosť a signály z terénu; pridávajte udalosti životného cyklu, keď synchronizujete pasy do svojich širších systémov.

## FAQ

**Musím overovať podpis, ak je URL môjho endpointu tajná?**
Áno. URL nie je tajomstvo — uniká v logoch, proxy serveroch a histórii prehliadača. Overenie HMAC podpisu `X-QR3-Signature` voči nespracovanému telu (raw body) je jediná vec, ktorá dokazuje, že payload skutočne pochádza z qr3.

**Čo sa stane, ak je môj endpoint nedostupný, keď sa spustí udalosť?**
Po overení rýchlo potvrďte pomocou `200` a pomalú prácu vykonávajte asynchrónne, aby dočasné problémy v downstreame nikdy nepozdržali odpoveď. Udržiavajte vlastnú idempotenciu na `dpp/code id`, aby sa opakované doručenie nezapočítalo dvakrát.

**Môžem aktualizovať GTIN alebo sériové číslo cez client.dpp.update?**
Nie — GTIN a sériové číslo sú nemenné; sú stabilnou identitou produktu. Aktualizovať možno iba dátové polia. Práve táto nemennosť umožňuje, aby vytlačený QR kód zostal navždy platný.

## Zdroje

- [EU ESPR — Regulation (EU) 2024/1781](https://eur-lex.europa.eu/eli/reg/2024/1781/oj)

- [EU Battery Regulation 2023/1542](https://eur-lex.europa.eu/eli/reg/2023/1542/oj)

- [HMAC — RFC 2104](https://www.rfc-editor.org/rfc/rfc2104)

**Začnite zadarmo** a prepojte svoj prvý DPP webhook: [app.qr3.app/sign-up](https://app.qr3.app/sign-up)

## Súvisiace články

- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/gs1-resolver-test-suite-dpp-links/hero.png) Návody Testovacia súprava GS1 Resolver: DPP-linky dôkladne overiť pred uvedením do prevádzky Stabilná testovacia súprava GS1 umožňuje overiť Resolver 1.2. Takto pred uvedením do prevádzky otestujete presmerovania, linksety, CORS, jazyky a chybové scenáre.](/sk/blog/gs1-resolver-test-suite-dpp-links/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/dpp-battery-passport-2027-20260715/hero.png) Novinky z odvetvia BatteryPass-Ready spúšťa testovacie prostredie pre digitálny pas batérie Konzorcium BatteryPass-Ready spustilo 24. júna 2026 verejné testovacie prostredie pre digitálny pas batérie s ohľadom na povinnosť EÚ od februára 2027.](/sk/blog/dpp-battery-passport-2027-20260715/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/sector-20260713/hero.png) Novinky z odvetvia Digitálny pas batérie 2027: Čo teraz musia výrobcovia vedieť Webináre, open-source nástroje a nové normy: batériový pas EÚ naberá na obrátkach. Prehľad stavu v júli 2026 a otvorených otázok do februára 2027.](/sk/blog/sector-20260713/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/sector-20260711/hero.png) Novinky z odvetvia Digitálny pas batérie 2026: testovacie prostredia, normy a otvorené otázky Ako je na tom priemysel s digitálnym pasom batérie? Prehľad testovacích prostredí, noriem CEN/CENELEC, open source nástrojov a regulačných rozhodnutí v júli 2026.](/sk/blog/sector-20260711/)

[← Všetky články](/sk/blog/) [Začať zadarmo](https://app.qr3.app/sign-up)
