---
title: "Resolver Setup Guide | OpenEPCIS Docs | OpenEPCIS - an open-core, GS1-compliant EPCIS implementation."
canonical_url: "https://openepcis.io/de/docs/digital-product-passport/resolver-setup"
last_updated: "2026-06-28T23:26:16.489Z"
meta:
  author: "benelog GmbH & Co. KG"
  description: "How to expose your DPP behind a GS1 Digital Link resolver"
  keywords: "GS1 Digital Link resolver, DPP resolver, linkset, Verified by GS1"
  "og:description": "How to expose your DPP behind a GS1 Digital Link resolver"
  "og:title": "Resolver Setup Guide"
  "twitter:description": "How to expose your DPP behind a GS1 Digital Link resolver"
  "twitter:title": "Resolver Setup Guide"
---

</h2>Home

``

# **Resolver Setup Guide** How to expose your DPP behind a GS1 Digital Link resolver [~~resolver~~](https://openepcis.io/de/tags/resolver)· [~~gs1-digital-link~~](https://openepcis.io/de/tags/gs1-digital-link)· [~~linkset~~](https://openepcis.io/de/tags/linkset)· 2 min read ## Overview A **GS1 Digital Link resolver** turns a product identifier (GTIN + optional serial) into the right URL for the right audience — the consumer information page, the EPCIS event history, certificates, recall information, and so on. Each of those is a **link relation** taken from the GS1 vocabulary. For a Digital Product Passport you only need two things to be live: 1. A resolver endpoint that responds to `**/{primary key}/{value}**` Digital Link URLs — most often `**/01/{GTIN}/21/{serial}**`. 2. A **linkset** per identifier — a small `**application/linkset+json**` document (IETF RFC 9264) that says which URL to send each link relation to. GS1 relations appear as full-IRI keys, e.g. `**https://ref.gs1.org/voc/pip**`. ## Hosting options | **Option** | **When to choose it** |
| --- | --- | | **Verified by GS1** (managed) | You want GS1 to host the resolver under `**id.gs1.org**`. Lowest operational effort, subscription-based. | | **Self-hosted under your own domain** | You already operate a domain you want consumers to see, e.g. `**id.yourcompany.com**`. You manage TLS, scale and uptime. | | **Hybrid** | GS1 holds the canonical `**id.gs1.org**` entry and redirects to your domain for resolution. Brand control without running global ID infrastructure. | How the resolver itself is built is intentionally out of scope here — any HTTP server that can match the Digital Link path patterns, do content negotiation on `**Accept**`, and route on the `**?linkType=**` query parameter will do. OpenEPCIS ships a reference resolver in the business edition; see [Modules → Resolver](https://openepcis.io/docs/platform-overview/modules/resolver). ## Getting onto Verified by GS1 1. Contact your local GS1 Member Organisation and subscribe to Verified by GS1. 2. Make sure you have a valid GS1 Company Prefix and that the GTINs you'll publish are registered against it. 3. Publish a linkset per identifier — one object per `**anchor**`, GS1 relations as full-IRI keys, link descriptors as values. Refer to RFC 9264 and the GS1 Digital Link standard for the exact field shape. A worked end-to-end example is on the [DPP Resolution Flow](https://openepcis.io/docs/digital-product-passport/dpp-resolution-flow) page. ## A note on the `**linkType**` query parameter When you call a resolver URL like `**https://id.gs1.org/01/{GTIN}/21/{serial}?linkType=…**`, the value is a **bare** GS1 relation name (`**pip**`, `**epcis**`, `**certificationInfo**`, …) — not the compact `**gs1:**` form. The compact / full-IRI form only appears as the _key_ in the linkset JSON itself. ## Next steps - [DPP Resolution Flow](https://openepcis.io/docs/digital-product-passport/dpp-resolution-flow) — end-to-end picture of what happens between scan and rendered passport. - [Battery DPP Implementation](https://openepcis.io/docs/digital-product-passport/battery-dpp/implementation-guide) - [EUDR Implementation](https://openepcis.io/docs/digital-product-passport/eudr/implementation-guide)