リファレンス
追跡番号の形式・桁数・正規表現まとめ|ヤマト・佐川・日本郵便
ヤマト運輸・佐川急便・日本郵便は、追跡番号の「呼び方」も「桁数」もバラバラです。入力フォームやバッチ処理を実装する開発者向けに、3社の形式・正規表現・チェックディジットの計算方法を1ページにまとめました。
まず用語から — 3社で呼び方が違う
同じ「荷物を追跡するための番号」でも、配送会社によって呼び方が異なります。仕様書やお客様対応で混乱しやすいポイントです。
| 配送会社 | 正式な呼び方 | 桁数・形式 |
|---|---|---|
| ヤマト運輸 | 送り状番号(伝票番号とも) | 12桁の数字 |
| 佐川急便 | お問い合せ送り状No. | 10〜14桁の数字(主流は12桁) |
| 日本郵便 | お問い合わせ番号 | 国内: 11〜13桁の数字 国際: S10形式(例: EM123456789JP) |
総称としては「追跡番号(トラッキングナンバー)」が最も通じます。この記事でも以下「追跡番号」で統一します。
正規表現まとめ
| 対象 | 正規表現 | 備考 |
|---|---|---|
| ヤマト運輸 | /^\d{12}$/ | チェックディジット併用可(後述) |
| 佐川急便 | /^\d{10,14}$/ | 12桁のときだけチェックディジット適用が安全 |
| 日本郵便(国内) | /^\d{11,13}$/ | ゆうパック・ゆうパケットなど |
| 日本郵便(国際) | /^[A-Z]{2}\d{9}JP$/ | EMS等のS10形式(万国郵便連合の規格) |
チェックディジットの計算(ヤマト・佐川の12桁)
ヤマト運輸の送り状番号と佐川急便の12桁番号は、先頭11桁を数値として7で割った余りが末尾1桁と一致します。これを検証すると、桁数だけのチェックより入力ミスをはるかに早く検出できます。
// Yamato / Sagawa 12-digit check digit (mod 7)
// The last digit equals (first 11 digits as a number) % 7
function isValidMod7(no) {
if (!/^\d{12}$/.test(no)) return false;
return Number(no.slice(0, 11)) % 7 === Number(no[11]);
}
isValidMod7('490381075682'); // true / false 注意点がひとつ。佐川急便には10〜14桁の番号が存在するため、12桁のときだけチェックディジットを適用し、それ以外の桁数は桁数チェックのみに留めるのが安全です。荷物追跡APIの内部検証も同じ方針を採っています。
実装のコツ — 検証の前に正規化する
伝票には 4903-8107-5682 のようにハイフン区切りで印字されることが多く、お客様の入力には全角数字やスペースも混ざります。正規表現にかける前に正規化しましょう。
// Strip hyphens/spaces and convert full-width digits before validating
function normalizeTrackingNumber(input) {
return input
.replace(/[0-9]/g, (c) => String.fromCharCode(c.charCodeAt(0) - 0xfee0))
.replace(/[-\s]/g, '')
.trim();
}
normalizeTrackingNumber('4903-8107-5682'); // "490381075682" クライアント側の検証は「早期検出」、最終判定は照会で
形式チェックはあくまで入力ミスの早期検出です。形式が正しくても未登録・反映前のことはありますし、逆に過剰に厳しい検証は有効な番号を弾いてしまいます。荷物追跡APIでは、形式不正は INVALID_TRACKING_NUMBER(課金対象外)として返るため、クライアント側の検証を最小限にして、最終判定をAPIに任せる設計でもコストは増えません。ハイフン・スペースの除去はAPI側でも自動で行われます。
よくある質問
ヤマト運輸の送り状番号は何桁ですか?
12桁の数字です。末尾の1桁はチェックディジットで、先頭11桁を数値として7で割った余りと一致します。
送り状番号・お問い合わせ番号・追跡番号は同じものですか?
同じ番号を指します。ヤマト運輸は「送り状番号」、佐川急便は「お問い合せ送り状No.」、日本郵便は「お問い合わせ番号」と呼びますが、いずれも荷物を追跡するための番号です。総称として「追跡番号」が使われます。
形式チェックを通った追跡番号なら必ず追跡できますか?
いいえ。形式が正しくても、まだ配送会社に登録されていない・反映前という場合があります。形式チェックは入力ミスの早期検出のためのもので、最終的な判定は照会結果で行います。
関連リンク
- 荷物追跡APIの使い方(はじめに)
- 対応配送会社一覧 — ヤマト・佐川・日本郵便ほか
- プレイグラウンドで実際の追跡番号を試す