国税庁法人番号APIを利用して法人企業の管理や名寄せを実現する

# Intro

ちょっとニッチな題材です。

取引先やサービス内で法人情報を管理していると、以下のような課題が多々発生します。

+ 重複登録されている
+ 商号、所在地などの情報が古い
+ 表記揺れが起きている
+ **異なるDBやツールで間でバラバラで管理されているため同じ法人か判断できない**

こういった課題に対して、いわゆる `名寄せ` 処理をし解決することがありますが、`法人番号` を使うことで名寄せを効率的に実施するする方法を紹介します。

# 法人番号とは

[Wikipedia](https://ja.wikipedia.org/wiki/%E6%B3%95%E4%BA%BA%E7%95%AA%E5%8F%B7) から抜粋します。

 > 法人番号とは、法人に対し日本の国税庁が指定する13桁の識別番号である（会社の法人番号は、商業登記の会社法人等番号12桁の左側に1桁のチェックディジットを付加したもの）。国税、地方税、社会保険などの手続に使われる。

:writing_hand_tone2: 要するに国（国税庁）が定める、法人を一意に特定する識別番号です。

[「国税庁法人番号公表サイト」](https://www.houjin-bangou.nta.go.jp) で検索することが出来ます。

<img width="1012" alt="スクリーンショット 2019-08-10 14.48.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38342/244adae7-8b15-18e9-fb5d-2211dca863a1.png">


# 法人番号を使うメリット

例えば、はじめに書いたように データベース や ツール間で バラバラのID体系で登録されていて、法人の名寄せが出来ていないとします

名寄せしたい場合、法人名や所在地などの入力情報から行うには、事前にデータクレンジング処理が必要になったり、精度もやや心もとありません。

<img width="1004" alt="名寄せ前 2019-08-11 8.21.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38342/8598809d-c727-2f14-7ea1-a07a0b68fe60.png">

## 法人番号を使い名寄せする
各データソースに 法人番号公表サイトで公表されてある `法人番号` を付与することで名寄せを効率的に行うことができます。

運用フローさえ確立してしまえば、新たにサービスが増えて法人を登録する際に同じスキームで `法人番号`を登録していれば特定が容易になりスケールもさせやすくなりそうです（既存データへの付与は一手間必要）

<img width="866" alt="名寄せ後 2019-08-11 8.22.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38342/b0f48f00-7220-ded2-9490-fc066fef5974.png">

# どのように法人番号を付与するか
## WebAPI
国税庁の [法人番号公表サイト](https://www.houjin-bangou.nta.go.jp/) で画面上から検索を行うことができますが、[Web-API](https://www.houjin-bangou.nta.go.jp/webapi/) としても提供されています。APIで公開されているのはありがたいですね。

利用申請もサイト上から申し込むことができます。

1週間程度でアプリケーションIDが封筒で届きます（郵送で届くのはお役所らしい...）
国税庁から郵送や電話連絡が来ると、ちょっぴりドキッとしますね :relaxed:

[WEB-API仕様書](https://www.houjin-bangou.nta.go.jp/webapi/kyuusiyousyo.html) が用意されています。
法人番号や法人名を検索キーにするなど、様々な条件を設定することが出来ます。

#### 法人番号を指定して検索

```
curl "https://api.houjin-bangou.nta.go.jp/4/num?id=アプリケーションID&number=7000012050002&type=01&history=0"
```

```
2019-08-09,1,1,11,7000012050002,01,1,2018-04-02,2015-10-05,"国税庁",,101,"東京都","千代田区","霞が関３丁目１－１",,13,101,1000013,,,,,,,2015-10-05,1,"National Tax Agency","Tokyo","3-1-1 Kasumigaseki, Chiyoda-ku",,"コクゼイチョウ",0
```
#### 法人名を指定して検索

```
curl "https://api.houjin-bangou.nta.go.jp/4/name?id=アプリケーションID&name=%E5%9B%BD%E7%A8%8E%E5%BA%81%0D%0A&type=02&history=0"
```

```
2019-08-09,1,1,11,7000012050002,01,1,2018-04-02,2015-10-05,"国税庁",,101,"東京都","千代田区","霞が関３丁目１－１",,13,101,1000013,,,,,,,2015-10-05,1,"National Tax Agency","Tokyo","3-1-1 Kasumigaseki, Chiyoda-ku",,"コクゼイチョウ",0
```


# CSVデータのダウンロード
[基本３情報ダウンロード](https://www.houjin-bangou.nta.go.jp/download/index.html) でCSVによる `全件データダウンロード`、 `差分データダウンロード` も提供されています。

データ件数が多いため、BigQueryなどのDWHに保存すると保存コストも安く検索もしやすくなります。

<img width="1006" alt="スクリーンショット 2019-08-10 16.06.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38342/61b59c00-a432-9455-83f8-8902e747e5a9.png">

# まとめ
国が推進してくれている法人番号を使うことで、効率良く名寄せすることができ、スケーラビリティも良さそうです。

名寄せが進むことで、自社の取引先分析や営業活動の精度も高くなりそうです。:writing_hand:

国税庁公表サイトの他にも、経済産業省が運営している[「法人インフォ」](https://hojin-info.go.jp/hojin/TopPage) といった類似サービスもあるようです。こちらも API が公開されてたり、国税庁サイトにないデータも取得出来そうで触ってみると違いがあって良さそうです。

欲を言えば、個人事業主の情報なども管理されていると嬉しかったりもしました。

これを機会に基盤を整備してみてはいかがでしょうか。
アイデア次第では、様々な活用方法がありそうですね。:raised_hand:

## リンク
+ [国税庁法人番号公表サイト](https://www.houjin-bangou.nta.go.jp/)
+ [WEB-API仕様書](https://www.houjin-bangou.nta.go.jp/webapi/kyuusiyousyo.html)
+ [法人インフォ](https://hojin-info.go.jp/hojin/TopPage)