😎

商業登記簿パーサーを開発しました

2023/09/24に公開

WHAT

https://github.com/tychy/toukibo-parser
Goのパッケージとして、商業登記簿パーサーを開発しました。約800の登記簿ファイルで動作検証を行っています。

動作イメージ

 % make run TARGET=sample/sample2.pdf
go run main.go -path=sample2
Header
PDF作成日時: 2021-03-29 17:58:00 +0000 UTC
商号: ****株式会社  
本店住所: ****

Body
法人番号 : 0500-01-*****
法人名  : {value: ****, isValid: true, registerAt: },
法人住所 : {value: ****, isValid: true, registerAt: },
公告   : 官報に掲載してする
成立年月日: 昭和**年*月*日
資本金  : {value: 金****万円, isValid: true, registerAt: },
登記記録 : {value: 平成元年法務省令第15号附則第3項の規定により, isValid: true, registerAt: 平成**年**月**日},
役員   : [{name: ****, position: 取締役, address: , isValid: true, registerAt: 平成**年**月**日, resignedAt: },],
[{name: ****, position: 代表取締役, address: ****, isValid: false, registerAt: 平成**年**月**日, resignedAt: },{name: ****, position: 代表取締役, address: ****, isValid: true, registerAt: 平成**年**月**日, resignedAt: },],

WHY

全部/一部事項証明書を必要としない場合、特に取引先の企業調査において民事法務局の登記簿提供サイトから商業登記簿を取得して調査を行うことは一般的です。

現状は商業登記簿をPDFとしてダウンロードして目視でチェックするよりなく、大量のチェックを行う必要がある場合には担当者を配置してチェックが行われています。国税庁の法人番号公表サイトはAPIを提供していますが、代表者氏名を提供していない、申請を行うことで非公表にできるなど実務上は代替手段となり得ません。

登記簿をAPI経由で取得できるような取り組みが始まろうとしていますが(ref1, ref2 )、この領域にはまだまだ改善の余地があります。

そこで今回、取得した商業登記簿PDFをパースして、企業調査に必要な情報を取得するライブラリを開発しました。

How


登記簿提供サイトより

商業登記簿はだいたいこのようなフォーマットになっています。パーサー作成上の基本的な戦略は以下のとおりです。

  1. "┠─┼───┨"などの仕切りを使って、"目的"や"役員に関する事項"などの項目に分割する
  2. 各項目から正規表現を利用して必要な情報を抜き出す

ざっくりこれだけですが、非常にパターンが多いので様々な苦労がありました。

代表者の抽出が非常に難しい

会社商号から法人格("株式会社"、"有限会社"など)が取得できますが、商業登記簿から代表者を抽出する上では、この情報が非常に重要です。

  • 株式会社以外場合には、同じ項目でも項目名が異なる
    • 商号/名称や、役員に関する事項/社員に関する事項 など
  • 有限会社、特定目的会社では取締役が代表となるケースがかなり多い
    • 取締役が複数人存在するケースも多い
  • 合資会社では無限責任社員と有限責任社員が存在する
    • この場合、無限責任社員を代表として抽出する

また、一般に取締役は定款に定める頻度(大抵2年程度)で、就任/重任/辞任/退任/死亡/抹消/廃止/解任などのアクションが取られます。商業登記簿にはこの履歴も残るため今現在有効な取締役であることを判定することが求められます。

外字対応

常用漢字表にある漢字でも歴史的な経緯で異なる事態で登録されているケース(西, 吉, 土など)、常用漢字表外字でそもそも正解となる自体が定められていないケース(逢, 辻など)が存在します。

今回作成するパッケージではできるだけこの揺れを吸収していこうと考えて正規化処理を行っています。

課題

複数行にまたがる場合のパースが難しい

主に代表者住所が非常に長いケースでは、登記簿上複数行にまたがる場合があります。基本的には処理できているのですが、住所をうまく扱えないケースが存在するので一つづつ直していく必要があります。

読み飛ばしている項目がかなりある

対応していない項目一覧はコードを参照いただけます。

サンプルの例だけでも、発行可能株式総数や株式の譲渡制限に関する項目については情報を抽出していません。必要な項目があれば順次対応していこうと考えています。

代表を決定するのが難しい

簡単に代表と分かる例だけでも、代表取締役、代表理事、代表社員、代表者、会頭、会長など様々なケースが存在します。また、取締役や社員さらには監査役が実質的に代表となっているケースも有ります。さらに会社が解散されている場合には役員が登記されていない場合もあります。それぞれの法人格において、どの役職が優先されるのかを理解して実装に落とし込む必要があり、改善していく予定です。

テストが書けていない

テストが存在していないためテストデータの作成を行う必要があります。

最後に

商業登記簿の世界は非常に奥が深いです。規則性がありそうでなく、なさそうである点が面白いです。この領域にもDXの波が押し寄せることを願っています。

ライセンスについて

リポジトリを参照していただきたいですが、記事の執筆時点(2023/09)では、許諾のない商用利用を禁止するライセンスを設定しています。これは、将来に渡ってメンテナンスしていくかを現時点で決めていないからです。関心のある企業があればライセンス契約等相談に応じます。contact@tychy.jp までご連絡ください。

個人による利用は妨げませんが、PRなど出していただいてもマージしません。問題があるケースなどをメールでご教示いただくのは歓迎です。

おまけ

今話題の7011105010760もパースできます。ぜひお手元にPDFファイルをお持ちの方は試してみてください。

Discussion