TL;DR
- GS1 Digital Link URIは、決まった文法を持つウェブアドレスです。ドメイン、
/01/と14桁のGTINのような主キー、パスに置く任意のキー修飾子、そしてクエリ文字列に置くデータ属性で構成されます。 - そこで使う番号はGS1アプリケーション識別子(AI)で、GS1-128バーコードで使われるものと同じです。そのため、URIは従来のエレメントストリングに変換でき、GS1のデータを失わずに元に戻すこともできます。
- つまずきやすいルールは次のとおりです。GTINは14桁にゼロ埋めし、有効なチェックデジットで終えること。修飾子は決まった順序(
22、10、21)で並べること。属性は?の後にだけ置くこと。値に含まれる記号はパーセントエンコーディングすること。
GS1 Digital Link URIは、GS1識別子を標準の構造で含むHTTPSのアドレスです。スマートフォンはそれを開くことができ、スキャナーはそこから識別子を取り出せます。パスはアイデンティティを、クエリ文字列は追加データとリゾルバへの指示を保持します。用語についてはGS1 Digital Linkの基礎を、スキャン後に何が起きるかについてはリゾルバのガイドをご覧ください。
GS1 Digital Link URIの構文の概要
| パターン | https://{domain}/{key AI}/{value}/{qualifier AI}/{value}?{attribute AI}={value} |
| アイデンティティ | パスに置く。主キーを1つだけ置き、その後に任意のキー修飾子を決まった順序で続ける |
| 追加データ | クエリ文字列に置く。有効期限 17 や正味重量 310n などのデータ属性 |
| GTINの形式 | 常に14桁。先頭をゼロで埋め、有効なチェックデジットで終える |
| 特殊文字 | パーセントエンコーディングする。バッチ番号の中の / は %2F になる |
| リゾルバへの指示 | クエリ文字列に置く linkType。linkType=gs1:pip や linkType=linkset など |
GS1 Digital Link URIはどんな部分で構成されるか

完全な例は次のとおりです。
https://id.example.com/01/09506000134352/22/2A/10/LOT42/21/1234?17=271231&3103=000750
| 部分 | 例での該当箇所 | ルール |
|---|---|---|
| ドメイン | id.example.com | https:// の後に置く任意のドメイン。スマートフォンにどのリゾルバが応答するかを決めるが、製品のアイデンティティの一部ではない |
| 主キー | /01/09506000134352 | 1つのURIに1つだけ。AIの後にその値を続ける |
| キー修飾子 | /22/2A/10/LOT42/21/1234 | 任意。パスに置き、そのキーについて定められた順序で並べる |
| データ属性 | ?17=271231&3103=000750 | 任意。AI=value の組を & でつなぎ、順序は自由 |
左から順に読むと、GTIN 09506000134352、消費者向け製品バリエーション2A、バッチLOT42、シリアル番号1234、有効期限2027年12月31日、正味重量0.750 kgです。
GS1 Digital Linkで使える主キー
消費者向けの製品で使うキーはGTINですが、構文はその他のGS1キーにも対応しています。
| GS1キー | AI | 識別するもの | キー修飾子 |
|---|---|---|---|
| GTIN(国際取引商品番号、Global Trade Item Number) | 01 | あらゆる包装段階の取引商品 | 22、10、21 |
| SSCC(Serial Shipping Container Code) | 00 | パレットなどの物流単位(18桁) | なし |
| GLN(Global Location Number) | 414 | 物理的なロケーション(13桁) | 254 GLN拡張コンポーネント |
GRAI(8003)やGIAI(8004)といった資産のキーも、同じパターンに従います。
GTINのキー修飾子の仕組み
キー修飾子は、GTINを製品からバリエーション、バッチ、または1個の個品へと絞り込みます。パスに、次の順序で置きます。
| 順序 | AI | 修飾子 | 形式 | 識別するもの |
|---|---|---|---|---|
| 1 | 22 | 消費者向け製品バリエーション(CPV) | 最大20文字 | 1つのGTIN内のバリエーション |
| 2 | 10 | バッチまたはロット | 最大20文字 | 1回の製造ロット |
| 3 | 21 | シリアル番号 | 最大20文字 | 1個の個品 |
どれも省略できますが、使うものはこの順序を守ります。
| パス | 有効か |
|---|---|
/01/09506000134352/10/LOT42/21/1234 | 有効 |
/01/09506000134352/21/1234 | 有効:バッチなしのシリアル番号 |
/01/09506000134352/21/1234/10/LOT42 | 無効:シリアル番号がバッチより前にある |
/01/09506000134352/17/271231 | 無効:有効期限はクエリ文字列に置く |
リゾルバは修飾子を使って最も詳細なエントリを探し、なければ製品単位にフォールバックします。
クエリ文字列に置くデータ属性
データ属性は、アイデンティティを変えずに、その品目について記述するものです。
| AI | 属性 | 形式 | 例 |
|---|---|---|---|
17 | 有効期限 | YYMMDD | 17=271231:2027年12月31日 |
15 | 賞味期限 | YYMMDD | 15=270630:2027年6月30日 |
310n | kg単位の正味重量。n は小数点以下の桁数 | 6桁 | 3103=000750:0.750 kg |
422 | 原産国 | ISO 3166の3桁の数字コード | 422=380:イタリア |
各属性は1回だけ、任意の順序で記述します。リゾルバはリダイレクトするときにクエリ文字列をそのまま引き継ぐため、行き先のページでそれを読み取れます。
GS1 Digital LinkではGTINをどう記述すべきか
常に14桁で記述します。それより短いGTINは先頭にゼロを加えます。これによって番号もチェックデジットも変わりません。
| バーコードの下のGTIN | URI内での表記 |
|---|---|
GTIN-12(UPC-A):614141123452 | /01/00614141123452 |
GTIN-13(EAN-13):9506000134352 | /01/09506000134352 |
最後の桁はチェックデジットです。9506000134352 の場合、その前の12桁に右から順に3、1、3、1…を掛けて合計すると78になります。チェックデジットは、その合計を次の10の倍数にする数です。80 − 78 = 2 となります。
パーセントエンコーディングが必要な文字
英字、数字、-、.、_ はそのまま記述します。バッチ、シリアル番号、CPVの値に含まれるその他の記号は、アドレスの構造と取り違えられないよう、パーセントエンコーディングします。
| 文字 | エンコード後 | 値 | URI内での表記 |
|---|---|---|---|
/ | %2F | AB/12 | /10/AB%2F12 |
% | %25 | 50%OFF | /10/50%25OFF |
& | %26 | A&B | /21/A%26B |
値は大文字と小文字を区別するため、LOT42 と lot42 は別のバッチです。また、スペースは使えません。
圧縮形式とは
標準は、非常に小さなコードのための圧縮形式も定めています。ドメインより後ろのすべてを、英字、数字、-、_ からなる短い文字列にまとめたもので、目で読むことはできず、リゾルバが検証の前に展開します。シンボルのサイズからほかに選択肢がない場合を除き、圧縮しない形式を使ってください。印刷前に確認しやすく、また圧縮されたコードは、チェーン内のすべてのスキャナーとアプリが展開できる場合にしか機能しないためです。
linkTypeとリンクセットはURIのどこに入るか
linkType は識別子ではなく、リゾルバへの指示で、クエリ文字列に記述します。
| URI | リゾルバが返すもの |
|---|---|
https://id.example.com/01/09506000134352 | 既定のリンク(通常は製品ページ)へのリダイレクト |
https://id.example.com/01/09506000134352?linkType=gs1:recallStatus | 回収状況のリンクがあれば、そこへのリダイレクト |
https://id.example.com/01/09506000134352?linkType=linkset | そのGTINのリンクの一覧全体を、機械可読な形式で |
リンクタイプはGS1 Web Vocabularyから取ります。gs1:pip(製品情報ページ)、gs1:instructions、gs1:allergenInfo などです。言語はURIでは指定しません。リゾルバがスマートフォンのリクエストから読み取ります。
GS1 Digital Linkとエレメントストリングの関係
どちらも同じGS1のデータを、2つの構文で担います。
| 形式 | 例 | 使われる場所 |
|---|---|---|
| エレメントストリング | (01)09506000134352(10)LOT42(17)271231 | GS1-128バーコードと、GS1シンボルの下に印字される文字 |
| GS1 Digital Link URI | https://id.example.com/01/09506000134352/10/LOT42?17=271231 | スマートフォンで開けるQRコードとData Matrixのシンボル |
エレメントストリングでは、括弧は印字される文字にだけ現れ、バッチのような可変長の値は、後に別のAIが続く場合に区切り文字で終わります。URIでは、スラッシュ、?、& がその役割を果たします。URIをエレメントストリングに変換すると、すべてのAIと値が保たれ、ドメインとリゾルバへの指示は除かれます。2D対応のレジがインターネットに接続せずに行っているのが、まさにこの処理です。シンボルの選び方については、QRコードとData Matrixの比較をご覧ください。
有効なGS1 Digital Link URIを作成する7つのステップ
- ドメインを選ぶ。
https://と、id.yourbrand.comのような自社で管理するドメインから始めます。そうすれば、どの事業者がリゾルバを運用していても、コードは自社のものであり続けます。 - 主キーを選ぶ。 製品の場合は、AI
01とそのGTINです:/01/。 - GTINを14桁で記述する。 先頭をゼロで埋め、最後の桁を確認します。
9506000134352は09506000134352になります。 - 必要なキー修飾子を順序どおりに加える。 CPV
/22/、バッチ/10/、シリアル番号/21/の順です。 - 値をパーセントエンコーディングする。 英字、数字、
-、.、_はそのままにし、それ以外はエンコードします。AB/12はAB%2F12になります。 ?の後にデータ属性を加える。 それぞれをAI=valueとして記述し、&でつなぎます:?17=271231&3103=000750。- 印刷前に検証する。 URIをエレメントストリングに変換してすべての値を確認し、ブラウザで開いたうえで、印刷したコードを複数のスマートフォンと2Dスキャナーでスキャンします。よくある不具合はトラブルシューティングのガイドにまとめています。
有効期限付きのバッチの場合、結果は次のようになります:https://id.yourbrand.com/01/09506000134352/10/AB%2F12?17=271231。
Digital Linkプラットフォームの位置付け
本サイトを運営するプラットフォームであるDigital Linkは、こうしたURIを自動で作成します。リンクの作成時に各GTINを検証し、バッチまたはロット、シリアル番号、有効期限、正味重量、原産国、包装日、消費者向け製品バリエーションを、リンクのバリエーションとして加えます。各バリエーションは独自のリンクのセットを持ちます。コードはCSVファイルから一括作成でき、自社のサブドメインでも、付属の dlink.is ドメインでも利用できます。
最初のGS1 Digital Link QRコードを作成する
よくある質問
GS1 Digital Linkには14桁のGTINが必要ですか?
はい。GTIN-8、GTIN-12、GTIN-13は先頭をゼロで埋めて14桁にするため、9506000134352 は /01/09506000134352 と記述します。チェックデジットは変わらず、有効でなければなりません。
キー修飾子はどの順序で並べますか?
GTINの場合、消費者向け製品バリエーション 22、次にバッチまたはロット 10、次にシリアル番号 21 の順です。どれも省略できますが、使うものはこの順序を守ります。
ドメインによって製品のアイデンティティは変わりますか?
いいえ。ドメインはスマートフォンにどのリゾルバが応答するかを決めますが、アイデンティティは主キーとその修飾子です。2つのドメインのもとにある同じGTINは、同じ製品です。
GS1 Digital Link URIとエレメントストリングの違いは何ですか?
同じデータを2つの形式で表したものです。(01)09506000134352(10)LOT42 のようなエレメントストリングは、GS1-128バーコードの形式です。GS1 Digital Link URIは、それをスマートフォンで開けるウェブアドレスとして記述します。
圧縮形式を使うべきですか?
完全なアドレスを入れるにはシンボルが小さすぎる場合に限ります。圧縮されたコードは、すべてのスキャナーとアプリが展開できる場合にしか機能しません。





