マイナンバーを検証する gem を作った


tl;dr

開発中のサービス SmartHR で必要になったので、マイナンバー、法人番号の validator を作りました。

kufu/tsubaki

こんな感じで検証できます。

# マイナンバーの検証
validates :digits, my_number: { strict: true, allow_blank: true }

# 法人番号の検証
validates :digits, corporate_number: { strict: true, allow_blank: true }

(あんま需要なさそうですが)マイナンバー関連のシステムを構築する際などにご活用ください。

チェックディジットについて

12 桁で構成されているマイナンバーのうち、最後尾の 1 桁は「チェックディジット」として利用されます。
この数値は最後尾の 1 桁を除く 11 桁の数値をもとに算出されます。
入力ミスを計算によって発見することができる、とても便利な仕組みです。

ちなみにマイナンバーのチェックディジット計算方法はこんな感じです。


総務省令第八十五号 第五条より

ワザワザこのロジックを書くのは面倒ですね。
Tsubaki を利用すると、簡単にチェックディジットの検証を行うことができます!

法人番号

各企業に割り当てられる 13 桁の法人番号にもチェックディジットが付与されています。
マイナンバーが最後尾の 1 桁をチェックディジットとしている一方で、法人番号は先頭の 1 桁を利用します。また、マイナンバーとは計算方法も少々異なります。


法人番号に関するFAQ|社会保障・税社会保障・税番号制度FAQ|社会保障・税番号制度<マイナンバー>について|国税庁より

Tsubaki は法人番号の検証にも対応しています。

おまけ

検証用にランダムなマイナンバーや法人番号を生成するページを用意しました。
テスト等にご利用ください。

擬似マイナンバーくん