---
title: "Resolver Setup Guide"
description: "How to expose your DPP behind a GS1 Digital Link resolver"
canonical_url: "https://openepcis.io/docs/digital-product-passport/resolver-setup"
last_updated: "2026-07-02T20:31:24.261Z"
---

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

<table>
<thead>
  <tr>
    <th>
      Option
    </th>
    
    <th>
      When to choose it
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Verified by GS1
      </strong>
      
       (managed)
    </td>
    
    <td>
      You want GS1 to host the resolver under <code>
        id.gs1.org
      </code>
      
      . Lowest operational effort, subscription-based.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Self-hosted under your own domain
      </strong>
    </td>
    
    <td>
      You already operate a domain you want consumers to see, e.g. <code>
        id.yourcompany.com
      </code>
      
      . You manage TLS, scale and uptime.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Hybrid
      </strong>
    </td>
    
    <td>
      GS1 holds the canonical <code>
        id.gs1.org
      </code>
      
       entry and redirects to your domain for resolution. Brand control without running global ID infrastructure.
    </td>
  </tr>
</tbody>
</table>

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](/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](/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](/docs/digital-product-passport/dpp-resolution-flow) — end-to-end picture of what happens between scan and rendered passport.
- [Battery DPP Implementation](/docs/digital-product-passport/battery-dpp/implementation-guide)
- [EUDR Implementation](/docs/digital-product-passport/eudr/implementation-guide)
