Un résolveur GS1 Digital Link (resolver, en anglais) est le service web hébergé sur le domaine imprimé dans votre code QR, et c'est lui qui décide où mène chaque scan. Ce guide présente ses règles selon le GS1-Conformant Resolver Standard 1.2.1, puis la façon d'en mettre un en place et de le tester.
Il s'adresse aux marques et aux distributeurs qui impriment des codes GS1 Digital Link, ou les font imprimer par leurs fabricants. L'URI elle-même est expliquée sur notre page GS1 Digital Link. Une règle a changé en 2024 : une application qui demande un type de lien que vous n'avez jamais enregistré reçoit une erreur 404, pas votre page par défaut.
Vérifiez votre URI encodée avec notre générateur gratuit de QR GS1 Digital Link.
Qu'est-ce qu'un résolveur GS1 Digital Link ?
Un résolveur GS1 Digital Link est un service web hébergé sur le domaine que porte un code GS1 Digital Link. Il lit les clés GS1 de l'URI demandée et répond avec l'un des liens enregistrés pour cet article : le lien par défaut, un lien typé ou la liste complète. Ce n'est ni le passeport, ni le registre, ni le code.
On confond facilement les trois. Le passeport numérique des produits (DPP) est l'enregistrement vers lequel pointe le résolveur. Le registre de l'UE prévu par l'ESPR (règlement sur l'écoconception), règlement (UE) 2024/1781, article 13, stocke des identifiants et n'est pas un résolveur. Le code QR ne fait que porter l'adresse.
Cet article part du serveur. Ses règles sont fixées par le GS1-Conformant Resolver Standard 1.2.1 et l'URI Syntax 1.7.0, tous deux ratifiés en août 2026. Les guides écrits avant 2024 décrivent à la place l'ancienne norme tout-en-un.
Que répond un résolveur GS1 Digital Link à chaque type de requête ?
Un résolveur GS1 Digital Link reçoit du trafic web ordinaire. Il doit répondre aux requêtes web normales en HTTPS, y compris à celles d'applications qui tournent dans un navigateur. Dans les termes de la norme : HTTP/1.1 ou supérieur pour GET, HEAD et OPTIONS, plus CORS.
Les bases (un code, plusieurs destinations) figurent dans notre comparatif GS1 Digital Link vs code QR. Voici ce que la norme attend en retour pour chaque requête.
| Requête | Ce que fait un résolveur conforme | Statut |
|---|---|---|
| Scan simple par l'appareil photo, sans type de lien | Redirige vers le lien par défaut, ou vers une variante linguistique de celui-ci | 307 dans l'organigramme de la norme |
?linkType=gs1:instructions, lien enregistré | Redirige vers ce lien | 307 dans l'organigramme |
?linkType=gs1:recallStatus, rien d'enregistré | Not Found. Pas de repli sur le lien par défaut | 404 |
| URI mal formée, par exemple une clé de contrôle erronée | Bad Request | 400 |
| URI valide, article inconnu de ce résolveur | Not Found | 404 |
| Plusieurs liens du type demandé, aucun ne correspondant clairement | Renvoie la liste des options | 300 Multiple Choices |
En-tête Accept: application/linkset+json | Pas de redirection. Renvoie le linkset : la liste complète des liens, en JSON au format RFC 9264 | 200 |
?linkType=linkset depuis un navigateur ordinaire | Pas de redirection. Devrait renvoyer une page HTML de liens | 200 |
?linkType=all | Ancien nom de linkset, désormais obsolète ; les résolveurs sont encouragés à continuer de le prendre en charge | 200 |
Le texte de la norme ne nomme aucun code de redirection. Seul son organigramme étiquette les redirections en 307, et id.gs1.org a répondu 307 lors de notre test du 6 octobre 2026. Rien n'impose 301 ou 302. Les règles 400 et 404 figurent dans le texte, et une erreur ne doit jamais renvoyer 200 OK.
Le 404 pour un type de lien absent est la règle la plus récente. Sous l'ancienne norme tout-en-un GS1 Digital Link 1.1, le résolveur se rabattait sur le lien par défaut. Le Resolver Standard autonome a remplacé cette règle dès sa première version, en février 2024.
Langues. Un scan simple ne porte aucun type de lien : le résolveur redirige donc vers le lien par défaut, sauf si la requête en dit plus. Selon l'approche recommandée par la norme, il ne choisit alors que parmi les liens typés gs1:defaultLink et gs1:defaultLinkMulti.
Les versions linguistiques ne se distinguent que par les en-têtes de la requête, comme la langue du téléphone, envoyée dans Accept-Language. Selon l'approche recommandée, une page produit en allemand n'atteint donc un téléphone réglé en allemand que si elle est aussi typée gs1:defaultLinkMulti. La prise en charge de ce type est facultative ; interrogez votre prestataire.
Pays. GS1 indique qu'id.gs1.org ne sait pas d'où vient un scan, même si l'application appelante peut le transmettre. Le seul canal normalisé est le paramètre facultatif context : ses valeurs ne sont pas normalisées, les résolveurs ne sont pas tenus de le prendre en charge, et id.gs1.org n'en déclare aucune. La norme ne définit aucune géolocalisation.
Quels types de liens enregistrer dans un résolveur GS1 Digital Link ?
Chaque lien stocké dans un résolveur GS1 Digital Link a besoin d'une URL cible, d'un type de lien et d'un titre lisible par un humain. La langue, le type de média et le contexte sont facultatifs. Les types de liens viennent du GS1 Web Vocabulary, aujourd'hui en version 1.18, où gs1: signifie https://ref.gs1.org/voc/.
| Type de lien | À utiliser pour | Remarque |
|---|---|---|
gs1:defaultLink | L'unique lien par défaut de chaque article | Un seul ; un titre et aucun autre attribut |
gs1:defaultLinkMulti | Les variantes linguistiques du lien par défaut | Prise en charge facultative pour les résolveurs |
gs1:pip | Page d'information produit | Peut aussi servir de lien par défaut |
gs1:dpp | Passeport numérique des produits | Stable depuis le Web Vocabulary 1.14.0 |
gs1:sustainabilityInfo | Durabilité et recyclage | Remplace gs1:productSustainabilityInfo, obsolète |
gs1:certificationInfo | Certificats | |
gs1:instructions | Notices de montage, conseils d'utilisation | |
gs1:serviceInfo | Service et maintenance | |
gs1:safetyInfo | Informations de sécurité | |
gs1:recallStatus | Si l'article fait l'objet d'un rappel | Généralement une API |
Supprimez deux noms de toute configuration copiée d'un ancien guide : gs1:productSustainabilityInfo (désormais gs1:sustainabilityInfo) et gs1:epcis (désormais gs1:epcisRepository). N'inventez pas de types là où GS1 en a un : la norme avertit que les types personnalisés réduisent fortement l'interopérabilité. Faites pointer chaque lien vers une page consacrée à cet article, pas vers votre page d'accueil.
Comment un résolveur GS1 Digital Link traite-t-il les numéros de lot et de série ?
Votre code imprimé peut porter plus qu'un GTIN : un lot (AI 10), un numéro de série (AI 21) ou une variante de produit de consommation (AI 22). Cinq règles déterminent ce qu'en fait un résolveur GS1 Digital Link.
- Les liens se transmettent par héritage. Les niveaux lot, série et variante héritent des liens du GTIN. Toute requête, aussi granulaire soit-elle, doit trouver un lien par défaut à son niveau ou au-dessus. Le plus simple : un lien par défaut par GTIN.
- Les qualificatifs peuvent être ignorés. Un résolveur qui prend en charge le GTIN doit accepter lot, série et variante, mais il peut les retirer et résoudre sur le seul GTIN. Il ne devrait pas rediriger vers une URI moins granulaire.
- La réponse est une union. Une requête renvoie les liens de son propre niveau plus ceux de toutes les combinaisons moins granulaires des mêmes clés. Un rappel enregistré au niveau GTIN plus lot est donc aussi trouvé par un code portant GTIN, variante et lot.
- Un lien au niveau de la série est autonome. Un lien enregistré pour GTIN plus numéro de série ne peut pas porter aussi un lot ou une variante.
- Le résolveur ne répond qu'à la requête qu'il reçoit. Un lien enregistré au niveau GTIN plus variante plus lot n'est pas trouvé par un code qui porte GTIN plus lot.
La règle 5 est le piège du rappel, illustré dans le pas-à-pas ci-dessous. La règle 2 signifie que vous devez tester une URI de lot sur votre résolveur GS1 Digital Link avant d'en imprimer une.
Les attributs de données sont différents. Une date de péremption (AI 17) va dans la chaîne de requête, par exemple ?17=271231, et ne fait pas partie de l'identifiant. Lors d'une redirection, le résolveur doit transmettre toute la chaîne de requête à la cible.
Lors de notre test d'id.gs1.org, ?17=271231 est réapparu tel quel dans l'en-tête Location de la redirection, c'est-à-dire l'adresse vers laquelle pointe la redirection.
Comment vérifier qu'un résolveur GS1 Digital Link est conforme ?
Commencez par un fichier. Un résolveur GS1 Digital Link conforme doit publier un fichier de description du résolveur (Resolver Description File) à /.well-known/gs1resolver. La norme URI Syntax de GS1 le cite comme l'un des moyens de savoir si un résolveur est présent. Deux propriétés sont obligatoires : resolverRoot et supportedPrimaryKeys.
Lancez ces vérifications sur votre propre domaine, avec l'un de vos GTIN. Si vous ne gérez pas vos propres serveurs, envoyez les quatre commandes à l'hébergeur de votre site ou de votre résolveur GS1 Digital Link, et demandez-lui le résultat.
# 0. Is there a resolver here at all?
curl -s https://id.example.com/.well-known/gs1resolver
# 1. Plain scan: expect a 3xx redirect (id.gs1.org uses 307) and a Location header
curl -sI "https://id.example.com/01/09520123456788?17=271231"
# 2. Unregistered link type: expect 404, not a redirect
curl -sI "https://id.example.com/01/09520123456788?linkType=gs1:recallStatus"
# 3. Full link list: expect 200 and JSON
curl -s -H "Accept: application/linkset+json" https://id.example.com/01/09520123456788
Tout code de redirection valide la vérification 1, puisque le texte de la norme n'en nomme aucun. Ce qui compte, c'est l'endroit où pointe l'en-tête Location, et que ?17=271231 y réapparaisse.
Si la vérification 2 redirige vers votre page par défaut, le service suit encore la règle d'avant 2024, ou n'est qu'une simple redirection et non un résolveur conforme. id.gs1.org, le résolveur de GS1, passe les quatre vérifications pour le produit de démonstration de GS1, https://id.gs1.org/01/09506000134352 : vous pouvez comparer les réponses.
Depuis la version 1.2.0, le fichier de description doit être valide au regard de https://ref.gs1.org/standards/resolver/description-file-schema, et la liste de liens au regard de https://ref.gs1.org/standards/resolver/linkset-schema.
Quand vous choisissez un service, posez une dernière question. La norme indique qu'il devrait être impossible d'enregistrer un lien sur un identifiant GS1 invalide. Un service qui accepte une clé de contrôle erronée ne fait pas ce contrôle à votre place.
Où l'héberger : votre domaine, votre organisation membre GS1 ou id.gs1.org ?
Le domaine de votre résolveur GS1 Digital Link survit à tous vos autres choix, parce qu'il est imprimé sur le produit. GS1 indique que chacun peut exploiter un résolveur, et part du principe que les marques utiliseront leur propre nom de domaine.
Votre domaine (id.votremarque.com) | Service d'une organisation membre GS1 | id.gs1.org | |
|---|---|---|---|
| Domaine sur l'emballage | Le vôtre | Celui de l'organisation membre | Le domaine de référence de GS1 |
| Qui définit les liens | Vous, ou un prestataire de votre choix | Vous, dans le portail de l'organisation | Le titulaire de la licence de l'identifiant, normalement via son organisation membre et le Links Registry |
| Conditions de disponibilité | Celles que vous négociez | Les conditions de l'organisation | Aucune garantie de disponibilité continue ; usage réglementaire à vos risques |
Délégation par motif (gs1:handledBy) | Facultative | Peut recevoir des préfixes délégués par id.gs1.org | Délègue certains préfixes GS1 aux résolveurs des organisations membres |
| Changer de prestataire plus tard | Repointer le domaine ; pas de réimpression | Le domaine imprimé reste le leur | Le domaine imprimé reste celui de GS1 |
Le service Link management de GS1 Sweden, par exemple, crée les liens sur le propre résolveur de GS1 Sweden, et ses membres peuvent exploiter le leur à la place. Notre lecture : avec une organisation membre ou id.gs1.org, vous maîtrisez les cibles, pas le domaine. Le domaine imprimé ne change qu'avec de nouveaux tirages.
La norme permet bien une délégation au niveau du préfixe d'entreprise : demandez donc à votre organisation membre si elle transmettrait votre préfixe à votre propre résolveur GS1 Digital Link. La délégation se voit en pratique : un GTIN à préfixe allemand demandé sur id.gs1.org a reçu un 307 vers le résolveur de GS1 Germany, avec rel="gs1:handledBy".
Mettez maintenant cela en regard de la loi. L'article 11(e) de l'ESPR dispose que le passeport doit rester disponible pendant la durée fixée par les actes délégués, y compris après une insolvabilité, une liquidation ou une cessation d'activité dans l'Union. L'article 10(4) exige une copie de sauvegarde par un prestataire de services de passeport.
L'ESPR ne dit rien des résolveurs. Notre lecture : un code imprimé sur un domaine que plus personne n'entretient coupe le chemin du scan vers le passeport, même si la copie de sauvegarde existe toujours.
La bonne pratique de GS1 elle-même va dans le même sens : construire les URI sur un domaine qui vous appartient, de préférence un sous-domaine id. Un domaine est un actif de marque transférable si la marque est vendue : les codes n'ont alors pas besoin d'être réimprimés.
Pas à pas : un fabricant de meubles hypothétique à Poznań
Prenons un fabricant de meubles hypothétique à Poznań, avec 420 GTIN, qui vend en Pologne, en Allemagne et au-delà. Ses codes figurent sur l'étiquette du carton.
Étape 1 : le domaine. Il crée le sous-domaine id. sur son propre domaine de marque et le fait pointer vers un résolveur GS1 Digital Link. Le fichier de description est en ligne avant qu'un seul code ne soit imprimé.
Étape 2 : un lien par défaut par GTIN, plus des variantes linguistiques. La page produit polonaise est le lien par défaut des 420 GTIN, typée gs1:defaultLink avec un simple titre. Les pages polonaise, allemande et anglaise sont ensuite chacune typées gs1:pip et gs1:defaultLinkMulti, avec les étiquettes pl, de et en.
La page polonaise apparaît deux fois, comme dans l'exemple linguistique de la norme elle-même : un téléphone polonais qui accepte aussi l'anglais reçoit donc bien le polonais. Cela fait quatre liens par GTIN : 1 680 au total.
Sur un résolveur qui prend en charge gs1:defaultLinkMulti, un téléphone allemand arrive désormais sur la page allemande. Un téléphone français arrive sur la page polonaise par défaut, faute de variante française.
Étape 3 : des liens typés au niveau du GTIN. Un lien gs1:instructions par GTIN pointe vers la notice de montage en PDF : 420 liens de plus. Un lien gs1:dpp est ajouté par GTIN à mesure que chaque page de passeport est mise en ligne. Aucune réimpression n'est nécessaire, puisque le code porte déjà le GTIN.
Étape 4 : le code imprimé. Le carton porte GTIN plus lot, par exemple https://id.example.com/01/09520123456788/10/2611A.
Étape 5 : un rappel. Un défaut de charnière touche le lot 2611A sur 12 GTIN de tables. Le fabricant enregistre 12 liens gs1:recallStatus au niveau GTIN plus lot. Toute application qui demande le statut de rappel d'un carton de ce lot le trouve.
Contre-scénario 1 : le rappel au mauvais niveau. Supposons que l'ERP gère le rappel par variante de couleur, et que les liens soient enregistrés au niveau GTIN plus variante plus lot. Les cartons ne portent que GTIN plus lot.
Le résolveur GS1 Digital Link ne répond qu'à la requête qu'il reçoit : le lien de rappel n'est jamais trouvé. Une application de rappel reçoit un 404, qui se lit comme « aucune information de rappel ».
Contre-scénario 2 : un seul caractère erroné. L'application d'un détaillant demande linkType=gs1:instruction, sans le s final. L'exemple de la norme elle-même prévoit un 404 pour tout type non enregistré.
Lors de notre test d'id.gs1.org du 6 octobre 2026, cette requête a pourtant été envoyée vers la page par défaut ; un type valide mais non enregistré, comme gs1:recallStatus, a reçu un 404. Dans les deux cas, l'application n'obtient pas les instructions.
Une clé de contrôle mal saisie dans le modèle d'étiquette est pire : chaque scan du tirage renvoie 400.
Cas limites
URI compressées. Un résolveur GS1 Digital Link conforme doit décompresser les chaînes binaires EPC, l'encodage compact utilisé sur les étiquettes RFID. La décompression des URI compressées en général est facultative : un code compressé peut donc échouer sur certains résolveurs. La norme DPP provisoire de GS1, pas encore ratifiée, demande la forme non compressée.
Barre oblique finale. /01/09520123456788/ n'est pas une syntaxe valide, mais les résolveurs devraient la tolérer. Ne l'imprimez pas.
Aucune langue ne correspond. Si une application demande gs1:instructions et que vous avez enregistré des versions polonaise et allemande, un téléphone français peut recevoir un 300 Multiple Choices listant les deux. Ajoutez une version pour chaque langue dans laquelle vous vendez, ou acceptez que certains utilisateurs voient une liste.
Chaînes de redirection. id.gs1.org peut transmettre une requête au résolveur d'une organisation membre, qui redirige vers votre page. Chaque saut ajoute de la latence et un point de défaillance.
Fuite de la chaîne de requête. Toute la chaîne de requête atteint votre page cible. Assurez-vous que la page tolère des paramètres comme ?17=271231. Ne mettez jamais de données personnelles ou secrètes dans une URI imprimée.
Applications sans résolveur. Une URI qui suit la syntaxe Digital Link ne prouve pas qu'un résolveur GS1 Digital Link se trouve derrière. Les applications ne doivent pas présumer qu'il y en a un ; vérifier /.well-known/gs1resolver est le test que décrit la norme URI Syntax.
Vue d'ensemble : pourquoi le résolveur doit vous survivre
Un passeport est une affaire de données. Le résolveur GS1 Digital Link est une affaire d'accessibilité, et c'est l'accessibilité que la loi fixe dans le temps.
Droit adopté. L'article 9(2)(i) de l'ESPR dispose que chaque acte délégué fixe la durée pendant laquelle le passeport reste disponible, au moins la durée de vie attendue du produit. L'article 10(1) rattache le support de données à un identifiant unique « produit » persistant et exige que les données circulent sans dépendance à l'égard des fournisseurs.
Rien de tout cela ne nomme un résolveur. Notre lecture : le domaine imprimé sur l'emballage, et le résolveur GS1 Digital Link qui se trouve derrière, sont l'endroit où ces obligations se rejoignent en pratique.
Droit adopté, normes volontaires. La décision d'exécution (UE) 2026/1736 de la Commission cite six normes DPP harmonisées : EN 18216, EN 18219, EN 18220, EN 18221, EN 18222 et EN 18223. Les suivre donne une présomption de conformité aux articles 10 et 11 de l'ESPR.
Le texte intégral de ces normes est payant, et nous ne leur attribuons aucune règle de résolution.
Inconnu. gs1:dpp existe, mais nous n'avons trouvé aucun acte délégué qui l'impose, ni qui impose un comportement particulier au résolveur. Selon l'article 9(2)(b) de l'ESPR, chaque acte délégué précise les supports de données de son groupe de produits.
Attendu. La norme d'application DPP de GS1 est provisoire, et le dit. Elle privilégie l'URI complète sur le domaine du propriétaire de la marque, le QR Code ou le Data Matrix, et les URI non compressées.
Le passeport batterie relève d'un règlement distinct, le règlement (UE) 2023/1542, avec une date fixée par la loi : . Son article 77(3) désigne déjà le support de données : un code QR.
Pour le cadre, lisez notre guide ESPR et ce qu'est le passeport numérique des produits.
Que faire ce trimestre ?
- Réservez le sous-domaine
id.de votre domaine de marque avant d'imprimer un code de plus. - Définissez un lien par défaut par GTIN, et typez chaque page linguistique, y compris celle de la langue par défaut, en
gs1:defaultLinkMulti. - Enregistrez des liens typés avec les noms GS1 actuels :
gs1:instructions,gs1:sustainabilityInfo, etgs1:dppquand les passeports existeront. - Publiez ou vérifiez le fichier
/.well-known/gs1resolverde votre résolveur GS1 Digital Link, et validez-le avec le schéma de GS1. - Testez votre résolveur GS1 Digital Link avec les quatre vérifications ci-dessus, et contrôlez chaque URI encodée avec le générateur gratuit. Il ne demande pas d'inscription et fonctionne dans votre navigateur.
Passmith propose aussi une offre gratuite si vous voulez aller plus loin.
Pour aller plus loin : GS1 Digital Link vs code QR · GS1 Digital Link expliqué · Guide des codes-barres 2D GS1 · DPP et fabricants hors UE · Générateur gratuit de QR GS1 Digital Link
Questions fréquentes
Faut-il un résolveur GS1 Digital Link, ou une redirection suffit-elle ?
Quel code HTTP un résolveur GS1 Digital Link utilise-t-il pour rediriger ?
Existe-t-il un type de lien pour le passeport numérique des produits ?
Puis-je utiliser id.gs1.org plutôt que mon propre domaine ?
Que se passe-t-il si une application demande un type de lien que je n'ai pas enregistré ?
Le résolveur sait-il de quel pays vient le scan ?
Comment vérifier qu'un résolveur GS1 Digital Link est conforme ?
Sources
- GS1-Conformant Resolver Standard, version 1.2.1 (HTML) — 2026-10-06
- GS1-Conformant Resolver Standard, version 1.2.1 (PDF, avec l'organigramme de la figure 2-1) — 2026-10-06
- GS1 Digital Link Standard : URI Syntax, version 1.7.0 — 2026-10-06
- Famille de normes GS1 Digital Link, dont l'ancienne norme tout-en-un — 2026-10-06
- GS1 Web Vocabulary : types de liens — 2026-10-06
- GS1 Web Vocabulary (JSON-LD), termes obsolètes — 2026-10-06
- IETF RFC 9264 : Linkset, le format JSON exigé par le Resolver Standard pour les listes de liens — 2026-10-06
- Conditions d'utilisation du résolveur GS1 (GS1 Resolver Terms of Use) — 2026-10-06
- Architecture du système GS1 (GS1 System Architecture) — 2026-10-06
- FAQ GS1 : relation entre le Links Registry et le service de résolution de GS1 Global Office — 2026-10-06
- FAQ GS1 : comment le résolveur connaît-il ma localisation ? — 2026-10-06
- FAQ GS1 : tout le monde doit-il utiliser id.gs1.org ? — 2026-10-06
- FAQ GS1 : quelle garantie que le service de résolution ne sera pas interrompu ? — 2026-10-06
- GS1 : bonnes pratiques pour créer votre QR Code powered by GS1 (2023) — 2026-10-06
- GS1 Sweden : Link management (gestion des liens) — 2026-10-06
- Norme DPP provisoire de GS1 (avis de modification, non ratifiée) — 2026-10-06
- Fichier de description du résolveur id.gs1.org (/.well-known/gs1resolver) — 2026-10-06
- Réponses HTTP en direct d'id.gs1.org pour le GTIN de démonstration de GS1 (vérifiées avec curl) — 2026-10-06
- Règlement (UE) 2024/1781 (ESPR), articles 2, 9, 10, 11, 13 — EUR-Lex — 2026-10-06
- Décision d'exécution (UE) 2026/1736 de la Commission sur les normes harmonisées pour les passeports numériques de produit — EUR-Lex — 2026-10-06
- CEN-CENELEC : normes DPP harmonisées citées au Journal officiel (actualité) — 2026-10-06
- Règlement (UE) 2023/1542 (batteries), article 77(3) — EUR-Lex — 2026-10-06


