リファレンス

追跡番号の形式・桁数・正規表現まとめ|ヤマト・佐川・日本郵便

・読了 約7分

ヤマト運輸・佐川急便・日本郵便は、追跡番号の「呼び方」も「桁数」もバラバラです。入力フォームやバッチ処理を実装する開発者向けに、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を無料で試す

月3,000件まで無料。追跡番号を送るだけで配送状況が返ります。