corp

package module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2024 License: MIT Imports: 8 Imported by: 0

README

corp

corp パッケージは 法人番号システム Web-API を利用するためのパッケージです。

法人番号システム Web-API に対しリクエストを行い法人情報を取得します。 また内部的に利用している request パッケージはリクエストに必要な URL を生成します。

使用方法

go get github.com/fillin-inc/go-corp

Go Doc に Example が用意してあります。 API の詳細については関連ドキュメントをご確認ください。

Web-API 概要

法人番号システム Web-API には 3 種類の法人情報取得方法があります。

  1. 法人番号と一致する法人情報を取得
  2. 期間中に変更があった法人情報を取得
  3. 法人名に一致する法人情報を取得

corp パッケージでは, それぞれの Web-API を簡単に利用できるメソッドを用意しています。

Web-API の検索条件をより活用した処理を行いたい場合はサブパッケージの request を使うことで URL を生成することができます。

関連ドキュメント

不具合等について

Issue から報告または Pull-Request を送ってください。

LICENSE

MIT License

Documentation

Overview

法人番号システム Web-API 用パッケージです。

法人番号システム Web-API(https://www.houjin-bangou.nta.go.jp/webapi/) 対し リクエストを行い法人情報を取得します。

利用には次のリンクからアプリケーション ID の申請と取得が必要です。 https://www.houjin-bangou.nta.go.jp/webapi/riyo-todokede/

関連ドキュメント:

・API 仕様書「Web-API(Ver.4.0)のリクエストの設定方法及び提供データの内容について」 https://www.houjin-bangou.nta.go.jp/documents/k-web-api-kinou-ver4.pdf

・API 仕様書「Web-API(Ver.1.1)のリクエストの設定方法及び提供データの内容について」 https://www.houjin-bangou.nta.go.jp/documents/k-web-api-kinou-gaiyo.pdf

・都道府県コード: https://nlftp.mlit.go.jp/ksj/gml/codelist/PrefCd.html

・都道府県コード+市区町村コード: https://www.soumu.go.jp/denshijiti/code.html

Index

Examples

Constants

View Source
const DATE_FORMAT = "2006-01-02"

Variables

This section is empty.

Functions

func SetAppID

func SetAppID(tkn string)

SetAppID は法人番号 Web-API のアクセスに必要なアプリケーション ID を設定します。

func SetFetch

func SetFetch(f func(URL string, options interface{}) (int, []byte, error))

SetFetch は法人番号 Web-API からデータ取得処理を設定します。

標準では単純な fetch 処理が利用可能です。ログ処理など特別な事情がある場合に利用してください。

Types

type Corporation

type Corporation struct {
	// 一連番号
	SequenceNumber uint32 `xml:"sequenceNumber"`
	// 法人番号
	CorporateNumber uint64 `xml:"corporateNumber"`
	// 処理区分
	// 01:新規, 11:商号又は名称の変更, 12:国内所在地の変更, 13: 国外所在地の変更,
	// 21:登記記録の閉鎖等, 22:登記記録の復活等,
	// 71:吸収合併, 72:吸収合併無効, 81:商号の登記の抹消, 99:削除
	Process string `xml:"process"`
	// 訂正区分
	// false:訂正以外, true:訂正
	Correct bool `xml:"correct"`
	// 更新年月日
	UpdateDate *Date `xml:"updateDate"`
	// 変更年月日
	ChangeDate *Date `xml:"ChangeDate"`
	// 商号または名称
	Name string `xml:"name"`
	// 商号または名称イメージID
	NameImageId string `xml:"nameImageId"`
	// 法人種別
	// 101:国の機関, 201:地方公共団体,
	// 301:株式会社, 302:有限会社, 303:合名会社, 304:合資会社, 305:合同会社, 399:その他の設立登記法人
	// 401:外国会社等, 402:その他
	Kind uint16 `xml:"kind"`
	// 国内所在地(都道府県)
	PrefectureName string `xml:"prefectureName"`
	// 国内所在地(市区町村)
	CityName string `xml:"cityName"`
	// 国内所在地(丁目番地等)
	StreetNumber string `xml:"streetNumber"`
	// 国内所在地イメージID
	AddressImageId string `xml:"addressImageId"`
	// 都道府県コード
	// JIS X 401 に準ずる
	PrefectureCode uint8 `xml:"prefectureCode"`
	// 市区町村コード
	// JIS X 402 に準ずる
	CityCode uint16 `xml:"cityCode"`
	// 郵便番号
	PostCode string `xml:"postCode"`
	// 国外所在地
	AddressOutside string `xml:"addressOutside"`
	// 国外所在地イメージID
	AddressOutsideImageId string `xml:"addressOutsideImageId"`
	// 登記記録の閉鎖等年月日
	CloseDate *Date `xml:"closeDate"`
	// 登記記録の閉鎖等の事由
	// 01:精算の結了等, 11:合併による解散等, 21:登記官による閉鎖, 31:その他の精算の結了等
	CloseCause string `xml:"closeCause"`
	// 承継先法人番号
	SuccessorCorporateNumber uint64 `xml:"successorCorporateNumber"`
	// 変更事由の詳細
	ChangeCause string `xml:"changeCause"`
	// 法人番号指定年月日
	AssignmentDate *Date `xml:"assignmentDate"`
	// 最新履歴
	// false: 過去情報, true:最新情報
	Latest bool `xml:"latest"`
	// 商号または名称(英語表記)
	EnName string `xml:"enName"`
	// 国内所在地(都道府県)(英語表記)
	EnPrefectureName string `xml:"enPrefectureName"`
	// 国内所在地(市区町村)(英語表記)
	EnCityName string `xml:"enCityName"`
	// 国内所在地(丁目番地等)(英語表記)
	EnAddressOutside string `xml:"enAddressOutside"`
	// フリガナ
	Furigana string `xml:"furigana"`
	// 検索対象除外
	// false:検索対象, true:検索対象除外
	Hihyoji bool `xml:"hihyoji"`
}

Corporation は法人番号システム Web-API から取得できるレスポンスのうち, 法人情報部分の構造体です。

func (Corporation) Available

func (c Corporation) Available() bool

Available は法人情報が有効か判定します。

処理区分(Process) が 99 の場合, 一連番号(SequenceNumber), 法人番号(CorporateNumber), 更新年月日(UpdateDate) を除き すべてブランクとなります。

このデータは実際には利用できないため無効と判定されます。

func (Corporation) CloseCauseText

func (c Corporation) CloseCauseText() string

CloseCauseText は CloseCause(登記事項の閉鎖等の事由)の表示用テキストを返します。

func (Corporation) KindText

func (c Corporation) KindText() string

KindText は Kind(法人種別) の表示用テキストを返します。

func (Corporation) ProcessText

func (c Corporation) ProcessText() string

ProcessText は Process(処理区分) の表示用テキストを返します。

type Date

type Date time.Time

func (Date) MarshalJSON added in v0.1.3

func (date Date) MarshalJSON() ([]byte, error)

func (Date) MarshalXML added in v0.1.3

func (date Date) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Date) String added in v0.1.3

func (date Date) String() string

func (Date) Time

func (date Date) Time() time.Time

convert to time.Time

func (*Date) UnmarshalJSON added in v0.1.3

func (date *Date) UnmarshalJSON(b []byte) error

func (*Date) UnmarshalXML

func (date *Date) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error

type Response

type Response struct {
	// 最終更新年月日
	LastUpdateDate *Date `xml:"lastUpdateDate"`
	// 総件数
	// 一致するデータがない場合は 0
	Count uint32 `xml:"count"`
	// 分割番号
	DivideNumber uint32 `xml:"divideNumber"`
	// 分割数
	DevideSize uint32 `xml:"divideSize"`
	// 法人等要素
	Corporations []Corporation `xml:"corporation"`
}

Response は法人番号システム Web-API から取得できる XML データを扱います。

詳細については Web-API 仕様書巻末のリソース定義書を参照してください。

func ByNumber

func ByNumber(numbers ...uint64) (Response, error)

ByNumber は法人番号を引数に指定することで最新の法人情報を取得できます。

Example
// テスト環境用の設定
// 実際に利用する際には不要
ts := testServer("./testdata/response/by_number.xml")
setTestEnvToRequest(ts)
defer ts.Close()

// 法人番号 Web-API アプリケーションIDを設定
SetAppID("your-token")

// 株式会社フィルインの法人番号
var corpNum uint64 = 5070001032626

res, _ := ByNumber(corpNum)
fmt.Println(res.Corporations[0].Name)
Output:

株式会社フィルイン

func ByNumberWithHistory

func ByNumberWithHistory(numbers ...uint64) (Response, error)

ByNumberWithHistory は法人番号を引数に指定することで変更履歴を含む法人情報を取得できます。

「変更履歴」とは, 例えば本店所在地を 1 度変更している法人の場合には 変更前と変更後の 2 つの法人情報が取得できます。

func DiffSearch

func DiffSearch(from string, to string, address string) (Response, error)

DiffSearch は対象期間と地域で変更があった法人情報を検索します。

from, to は YYYY-MM-DD 形式の日付文字列を指定してください。

address は空文字, 「都道府県コード」(2文字)または「都道府県コード+市区町村コード」(5文字)を 指定できます。空文字の場合, from, to に指定した期間のみで検索を行います。

各コードについては次のリンクを参照してください。

・都道府県コード: https://nlftp.mlit.go.jp/ksj/gml/codelist/PrefCd.html

・都道府県コード+市区町村コード: https://www.soumu.go.jp/denshijiti/code.html

Example
// テスト環境用の設定
// 実際に利用する際には不要
ts := testServer("./testdata/response/diff_search.xml")
setTestEnvToRequest(ts)
defer ts.Close()

// 法人番号 Web-API アプリケーションIDを設定
SetAppID("your-token")

from := "2021-06-09"
to := "2021-06-09"
// 群馬県高崎市に限定
address := "10202"
res, _ := DiffSearch(from, to, address)
fmt.Println(res.Corporations[0].Name)
Output:

株式会社フィルイン

func NameSearch

func NameSearch(name string, address string) (Response, error)

NameSearch は法人名と地域で法人情報を検索します。

このメソッドでは法人名を部分一致のあいまい検索で探します。

address は空文字, 「都道府県コード」(2文字)または「都道府県コード+市区町村コード」(5文字)を 指定できます。空文字の場合, address に指定した法人名のみで検索を行います。

各コードについては次のリンクを参照してください。

・都道府県コード: https://nlftp.mlit.go.jp/ksj/gml/codelist/PrefCd.html

・都道府県コード+市区町村コード: https://www.soumu.go.jp/denshijiti/code.html

Example
// テスト環境用の設定
// 実際に利用する際には不要
ts := testServer("./testdata/response/name_search.xml")
setTestEnvToRequest(ts)
defer ts.Close()

// 法人番号 Web-API アプリケーションIDを設定
SetAppID("your-token")

name := "フィルイン"
// 群馬県高崎市に限定
address := "10202"
res, _ := NameSearch(name, address)
fmt.Println(res.Corporations[0].Name)
Output:

株式会社フィルイン

Directories

Path Synopsis
法人番号のチェックデジットパッケージです。
法人番号のチェックデジットパッケージです。
法人番号システム Web-API のリクエスト URL パッケージです。
法人番号システム Web-API のリクエスト URL パッケージです。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL