法人番号システムのWeb‐API機能をビジネス活用しよう（利用編）

　こんにちはy-okudaです。

　前回は**[ 申請編 ](http://qiita.com/y-okuda/items/c45064f23f7785465372)**として、”法人番号って何？”ということと、事前の利用申請までの流れを書きましたが、そうこうしているうちにさすがお役所と言うべきか、きっちり一週間で国税庁の法人番号管理室というところから自宅に私のアプリケーションIDが送られてきました。
　いわゆる茶封筒でデカデカと「**国税庁**」と書かれていてなんだかちょっとものものしい感じがして、一瞬「ん？何か私・・・」と思いかけましたが、すぐに思い直しました :sweat_smile: 
　※今回は個人として申請しました
　![20151211091151603_0001.png](https://qiita-image-store.s3.amazonaws.com/0/24395/c05539dd-0f6b-00e4-7f9f-2db098dea123.png)

　そのアプリケーションIDを使って実際にAPIで法人番号システムへアクセスしデータを取得してみましたので、今回はその手順について解説したいと思います。

#リクエストのフォーマット#
　バージョン、アプリケーションID、条件をURLにセットし、リクエストを行います。条件を複数指定する場合は&でつないで記述します。
　バージョンについては、リリース当初の現在は"1"固定となります。
　バージョン以外の条件は、「項目ID=項目値」の形式を"&"で繋げてセットします。

```lang:url
https://api.houjin-bangou.nta.go.jp/1/num?id=[アプリケーションID]&number=[法人番号1],[法人番号2]&type=[応答形式]&history=[変更履歴要否]
```

各パラメータの役割については、次の通りです。

| パラメータ | 項目ID | 項目値の例 | 備考 |
|:---------|:---|:------------------|:--------------------|
| アプリケーションID | id | Ktest01test01 | 各自に割り当てられたIDを使います。国税庁から届いた通知書に記載されています。 |
| 法人番号 | number | 6120001039879　| カンマ区切りで複数指定することで、最大10件まで同時に取得することができます。 |
| 応答形式 | type | 03 | `01`はCSV（Shift-JIS）、`02`はCSV（Unicode）、`03`はXML（Unicode）。 |
| 変更履歴要否 | history | 0 | `0`は変更履歴なし、`1`は変更履歴あり。省略可能です。 | 


#レスポンスデータ#
　実際にファーストサーバの情報をXML形式1件だけ、変更履歴不要で取得する場合には、下記のような記述になります。
> https://api.houjin-bangou.nta.go.jp/1/num?id=Ktest01test01&number=6120001039879&type=12

　簡単に結果を確認してみるには、Chromeブラウザの拡張機能（Extention）としてフリーで提供されている**[Postman](http://www.getpostman.com/)**がお奨めです。

- URLを入力
　![get.png](https://qiita-image-store.s3.amazonaws.com/0/24395/1ec7017c-8b0e-e24d-6259-81d1a85db9a7.png)

- 取得結果の表示
　![response.png](https://qiita-image-store.s3.amazonaws.com/0/24395/a047bffb-8eb8-a06f-e7ee-e642bb62f9cd.png)

　はい、**一撃**ですね。
　ちなみに実際にXMLとして取得できたファーストサーバの情報は次のようなものです。

```lang:XML
<?xml version="1.0" encoding="UTF-8"?>
<corporations>
    <lastUpdateDate>2015-12-18</lastUpdateDate>
    <count>1</count>
    <divideNumber>1</divideNumber>
    <divideSize>1</divideSize>
    <corporation>
        <sequenceNumber>1</sequenceNumber>
        <corporateNumber>6120001039879</corporateNumber>
        <process>01</process>
        <correct>0</correct>
        <updateDate>2015-11-20</updateDate>
        <changeDate>2015-10-05</changeDate>
        <name>ファーストサーバ株式会社</name>
        <nameImageId/>
        <kind>301</kind>
        <prefectureName>大阪府</prefectureName>
        <cityName>大阪市中央区</cityName>
        <streetNumber>安土町１丁目８番１５号</streetNumber>
        <addressImageId/>
        <prefectureCode>27</prefectureCode>
        <cityCode>128</cityCode>
        <postCode>5410052</postCode>
        <addressOutside/>
        <addressOutsideImageId/>
        <closeDate/>
        <closeCause/>
        <successorCorporateNumber/>
        <changeCause/>
        <assignmentDate>2015-10-05</assignmentDate>
    </corporation>
</corporations>
```

#入力補完ツール、実在確認ツールとしてのメリット#
　Webサイトの利用者が主に法人にの場合、最初に法人番号を入力するようなインタフェースにしておけば、続いて入力するであろう正式な登記上の法人名や郵便番号、住所などをこのXMLの情報から補完しておくことが可能になり、利用者の入力負担の軽減になりますし、入力ミスを防ぐことができます。
　また登記から概ね1週間程度で情報が更新されるようですので、法人番号の有無と情報の整合性をチェックすることでその実在性を確認することができます。なお、全て公開情報ですのでなりすましそのものは防げないのですが、虚偽の情報を申告したり、悪意を持ってなりすまし行為を行うことは当事者にとって相当のリスクを払うことなりますので、これらの機能を実装に加える効果は大きいと思います。

#まとめ#
　これに限らず政府や総務省では地方自治体などと連携してオープンデータ戦略を推進していますが、法人番号制度については運用当初から情報公開がなされ、データはもちろんのこと利用者が利用しやすい形で汎用的なインフラと共に提供されたというのは画期的で素晴らしい取組みだと思います。日本の国家そのものがオフィシャルに提供しているわけですから、情報リソースとして、またシステムの基盤としてこれ以上信頼できるものはないとも言え、活用する側のメリットは非常に大きいと感じています。

　なお、APIの詳しい仕様についてはPDFが公開されていますので、実際にご利用になる場合にはぜひこちらを一度ご覧ください。
　http://www.houjin-bangou.nta.go.jp/documents/k-web-api-kinou.pdf

#余談（つらみ）#
　こういったデータのオープン化は他の既存のデータへもぜひ拡大してほしいと思います。
　例えば銀行などの口座番号を扱うようなシステムでは、たいていの場合オンライン取引が前提となるため統一金融機関コード（金融機関コード・銀行コード・支店コード）も一緒に特定しておく必要があります。それらは金融機関ごとには公開されているケースが多いのですが、全国の金融機関すべてのものとなると、基本的には一般社団法人全国銀行協会（全銀協）のオフィシャルなデータを購入するしかありません。
　統一金融機関コードは全銀協の金融機関共同コード管理委員会というところが制定・管理しているためで、そのデータを購入するとなると、利用頻度にもよりますが年間で100万円にも及ぶような金額がコストとして必要になります。とても普通の中小零細企業が簡単に支出できる金額ではなく、もちろん自分たちで全ての金融機関のサイトからせっせとデータを集めたり、あるいは検索サービスを提供しているようなサイトもあったりはするのですが、網羅性や信頼性、鮮度の面での不安は拭い切れません。
　しがらみがあってなかなか難しいのかも知れませんが、なんとか金融庁と連携してオープンデータ化してもらえるととてもありがたいですね。