SSCC-18チェックディジット
データ17桁00614141123456789のチェックディジットは0で、完全なSSCC-18は006141411234567890です。パレットのラベルを印刷する前に計算し、出荷通知にある18桁のコードも検証できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 数
- 00614141123456789
- 計算モード
- Compute
- 入力
- 00614141123456789
- チェックディジット
- 0
- SSCC-18 コード
- 006141411234567890
物流ラベル、倉庫システム、キャリア連携では、パレットや出荷単位を18桁のSerial Shipping Container Code(SSCC-18)で識別します。そのうち17桁は拡張桁、GS1企業プリフィックス、シリアル参照を担い、18桁目はGS1 mod-10式から導かれるチェックディジットです。これにより、1桁の打ち間違いや転置は、別の有効なコンテナに見えるよりもはるかに検証失敗しやすくなります。本機能は17桁のデータ文字列からそのチェックディジットを計算するか、完全な18桁のSSCCを検証し、保存済みの末尾桁が再計算値と一致するかを報告します。どちらの経路も同じ純算術で、ネットワーク往復もSSCCの保存もありません。
SSCC-18チェックディジットの計算方法
GS1総合仕様は、Serial Shipping Container Codeおよび関連するAI(00)シンボルに対し、単一のmod-10チェックディジットを定めています。拡張桁・企業プリフィックス・シリアル参照からなる17桁のデータ数字を取り、バーの横に印字された括弧やアプリケーション識別子は無視します。
それらのデータ桁を右から番号付けし、右端のデータ桁に3、その左隣に1、さらに3、1と交互に左端まで掛けます。加重積をすべて合計します。チェックディジットは、その合計のmod 10を10から引いた値を再度mod 10したもので、すでに10で割り切れる合計はチェックディジット0になります。
その1桁を付け足すと、シンボルに符号化され、しばしば下に人間可読で印字される完全な18桁SSCCになります。検証は逆で、先頭17文字から期待桁を再計算し、18桁目と比較します。
アルゴリズムは固定重みの純整数演算であるため、同一シリアルはブラウザ、Worker、オフラインのテストハーネスのいずれでも常に同じチェックディジットを生み、そのため本機能はモデル呼び出しではなくtier Aのparseエンジンとして提供されます。*ツールのLuhn、Damm、EAN-13、mod-97方式と区別できるようにします。
実務の物流ワークフローでのSSCC-18チェックディジット
荷主と3PL事業者はGS1企業プリフィックスを受け取り、パレットや外箱にシリアル参照を割り当てます。ラベルプリンタがシンボルを焼き付ける前に正しいチェックディジットを付け、倉庫スキャナとキャリアポータルが初回スキャンで受け入れられるようにします。
倉庫管理システムは18桁SSCCだらけの仕入先出荷通知を取り込み、チェックディジットが一致しなくなった行を拒否すべきです。これは人手の編集と上流生成器のオフバイワン双方を捉えます。17桁シリアルからGS1-128物流ラベルを組む印刷所は、単位ごとにcomputeを1回呼び、バーの下にsscc18を置きます。
どのワークフローでも契約は同じです。合格したチェックディジットをGS1割当やシリアル範囲の所有の証明と見なさないでください。それは18桁文字列がGS1 mod-10規則の下で算術的に正しいことだけを示し、他の物流チェックサムに求める誠実さと同じ基準です。
活用例
パレットラベル用に17桁シリアルを完成させる
拡張桁、GS1企業プリフィックス、シリアル参照(17桁)を取り、computeモードを呼び、GS1-128バーの下にsscc18を印刷して、パレットラベルにスキャナ有効なSSCC-18を載せます。
EDIフィード内の取引先SSCC列を監査する
DESADV、CSV、WMSエクスポート内の各SSCC-18を一括検証し、チェックディジットが再計算した期待値と一致しなくなった行を隔離します。
よくある質問
SSCC-18チェックディジットとは何ですか?
Serial Shipping Container Codeの18桁目で、先頭17桁から右端を起点にGS1の交互重み3と1で計算されます。1桁の誤入力は別コンテナに見えるよりはるかに検証失敗しやすくなります。
SSCCのチェックディジットはどう計算しますか?
データの最後の桁から始めて、各桁に3と1を交互に掛けて合計します。合計を次の10の倍数にする数字がチェックディジットで、すでに10の倍数なら0です。00614141123456789なら0です。
バーコードの前の(00)も入力しますか?
いいえ。バーの横に印刷された(00)はアプリケーション識別子で、コードの一部ではありません。データの17桁か、検証なら18桁だけを入力してください。括弧や空白、ハイフンはエラーになります。
データ17桁には何が含まれますか?
最初に拡張桁、次にGS1の事業者コード、最後に事業者が各パレットや梱包に割り当てるシリアル番号が並びます。最後にチェックディジットを加えて18桁になります。
有効なSSCCなら番号は自社のものと言えますか?
いいえ。チェックディジットが正しくても、18桁の計算が合っていることしか分かりません。GS1の事業者コードが自社に割り当てられたことや、その番号範囲を使えることの証明にはなりません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/sscc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"00614141123456789"}'const res = await fetch("https://api.kit.forhosting.com/enc/sscc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "00614141123456789"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/sscc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "00614141123456789"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/sscc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"00614141123456789"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"00614141123456789"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/sscc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"number": "00614141123456789"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.sscc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
非数字文字や誤った桁数は、ゴミを黙って取り除かず、明確なinvalid_inputエラーで拒否します。ブラウザでは無料で実行でき、公開価格でKIT APIを呼び出すこともできます。
SSCC-18チェックディジットの計算方法
同じ重み付けは長さの異なる他のGS1識別子にも使われますが、本ツールは検索意図とAPI契約を明確に保つため、SSCC-18の17+1構成に厳密に焦点を当てます。
チェックディジットの計算と完全なSSCCの検証
mode computeが既定です。mode validateはちょうど18桁を期待します。空文字、number欠落、無効なmode、誤った長さ(例:16桁や19桁)は加重和の前に失敗し、課金されません。新しいコンテナシリアルを発行・完成させるときはcomputeを、スキャナ、WMSエクスポート、キャリアフィードから完全なSSCCを受け取り、出荷予約前に真偽のゲートが必要なときはvalidateを優先してください。numberフィールドには0から9の文字だけを送ってください。空白、ハイフン、文字、アプリケーション識別子を囲む括弧、小数点は非数値入力としてinvalid_inputで拒否され、フォームが黙ってクリーニングした値を受け入れることがありません。データ17桁を正確に渡すと、エンジンは1文字のcheck_digit、17桁にチェックを付けたsscc18、length 18を返します。末尾桁が再計算したexpected_check_digitと一致するとvalidはtrueとなり、常にpayload(先頭17桁)、送信どおりのcheck_digit、expected_check_digit、payloadと期待桁から作った正規のsscc18が含まれます。この形により、倉庫UIで「入力X、期待Y」を2回目の要求なしに示せます。経路は時計・乱数・ネットワークのない純parseのため、無料のブラウザツールとAPIで同一入力は常に同じJSONになります。成功リクエストあたり$0.002で、大量ASN取込、ラベルプリンタ、パートナーファイル監査を、専用ティア交渉なしに保護できます。
実務の物流ワークフローでのSSCC-18チェックディジット
SSCC一覧を受け付けるキャリア予約APIは送信時に検証し、validがtrueになるまで入札を止め、EDIやAPIの拒否を減らせます。結合テストとデータ品質ジョブはエクスポート内の各SSCC列についてexpected_check_digitを再計算し、ドックに届く前に不一致を隔離します。
連携の活用例
入荷時にスキャンまたは入力したSSCCを検証する
ハンディスキャナやフォームが18桁を送ったらvalidateモードを呼び、validがfalseのときはASNや格納更新を止め、expected_check_digitを示して打ち間違いを直します。
技術的な質問
このAPIでSSCC-18チェックディジットを計算するには?
numberに正確に17桁を入れ、mode compute(またはmode省略)でPOSTします。応答にはcheck_digitとsscc18(完全な18桁コード)が含まれます。
完全な18桁SSCCを検証するには?
18桁の文字列とmode validateでPOSTします。応答にはvalid、check_digit、expected_check_digit、payload、正規のsscc18が含まれます。
文字・空白・ハイフン・誤った長さの場合は?
非数値入力、およびcomputeで17桁以外・validateで18桁以外の長さはinvalid_inputで拒否されます。失敗した検証タスクは課金されません。
SSCC-18チェックディジットツールは無料ですか?
ブラウザツールは無料でローカル実行です。API呼び出しは公開の基本価格$0.002で前払いKIT残高を使い、無効入力は課金されません。