One global script enables both the harmonised legal guarantee notice and automatic GARAN badges. Free, cookie-free, no tracking, no external dependencies, and fail-safe: if our API is unreachable, your shop is never affected.
Add a link anywhere (header, footer, product page, checkout). On click, the official harmonised notice opens in an accessible modal, in the language of the page (<html lang>) or of the data-lang attribute.
Also supported: class="garan-notice-link" on any element, and automatic insertion into the CSS selectors you configure in your free account (colours, font, background, border and icon are customisable per site).
Place an empty element with the product data. If a verified commercial guarantee of durability exists in the GARAN database, the nested label is displayed; the full label opens on the first click, roll-over or tap. If there is no eligible guarantee, nothing is rendered.
data-identifier: the product code exactly as on the label: the producer’s model code (e.g. WGG244Z0BY) or the EAN barcode.
data-country: ISO code (RO, DE, …). Leave empty for EU-wide guarantees.
data-mode: latest (default: latest verified version) or pinned + data-version="3" for a fixed label version.
If you do not want a database lookup, pass the duration directly with data-years. The nested label for that duration is shown immediately from a static SVG. data-brand and data-identifier are required: they are printed on the full label that opens on interaction, which must identify the product.
The nested SVG lives at a stable URL (/labels/nested-5.svg, /labels/nested-2_5.svg …) and is generated once, then served statically — perfect for CDNs.
Responses are cacheable (Cache-Control) and label SVGs are immutable static files served without touching PHP — CDN friendly.
✔ Free, no account required for the notice and the generator
✔ No cookies, no ads, no aggressive tracking — only anonymous, aggregated lookup counters
✔ Labels generated exclusively from the official EU templates; only the permitted fields are edited
✔ The full label is always reachable from the nested label at the first relevant interaction