ニューヨーク州企業照会API実装ガイド:金融機関向けコンプライアンス自動化
日本の金融機関や法務・コンプライアンス担当者にとって、米国企業との取引審査は年々複雑さを増しています。特にニューヨーク州は米国最大の金融センターであり、日系企業が取引相手として接触する米国法人の多くがニューヨーク州で登録されています。犯罪による収益の移転防止に関する法律(犯収法)や金融庁(FSA)のKYC指針に基づき、取引先の法人実在確認は義務であるにもかかわらず、米国のSecretary of State(州務長官)データベースへの手動アクセスは時間と人的コストを大幅に消費します。
本ガイドでは、OpenSOSDataが提供するニューヨーク州企業照会APIを活用し、法人確認プロセスを自動化する実装方法を解説します。開発者向けのコード例から規制上の位置づけまで、実務に直結する情報を網羅します。
なぜ今、米国法人APIが日本の金融機関に必要か
犯収法とFSAガイドラインの要求事項
「犯罪による収益の移転防止に関する法律」(犯収法)は、特定事業者に対して取引時の顧客確認(KYC)を義務付けています。法人顧客の場合、商業登記事項の確認が基本とされており、外国法人については当該国の登記情報の取得が求められます。金融庁の「マネー・ローンダリング及びテロ資金供与対策に関するガイドライン」においても、リスクベースアプローチの一環として実効性ある法人実在確認の実施が明記されています。
FATF(金融活動作業部会)の第4次対日相互審査報告書(2021年)では、日本の法人顧客確認プロセスの実効性について改善が求められており、自動化・システム化による確認精度の向上は監督当局の期待事項と一致します。
日米クロスボーダー投資コンプライアンスの実態
日米間の直接投資残高は数十兆円規模に達しており、邦銀・証券会社・ノンバンクが米国法人との融資・投資・業務委託契約を日常的に締結しています。CFIUS(対米外国投資委員会)審査の観点からも、取引相手の法人実態確認は欠かせません。ニューヨーク州務長官(New York Department of State)が管理する法人登録データベースは、こうした確認の一次ソースとなりますが、手動検索では大量案件を処理できません。
OpenSOSData APIの概要
OpenSOSDataは、米国全50州+ワシントンD.C.、プエルトリコ、米領バージン諸島の法人情報(3,400万以上のエンティティ)をREST APIで提供するサービスです。ニューヨーク州を含む全州のSecretary of Stateデータに対して、単一のエンドポイントからアクセスできます。
返却されるデータ項目は以下の通りです:
- 法人名(Entity Name)
- 法人種別(Entity Type):LLC、Corporation等
- 法人ID(Entity ID)
- ステータス(Status):Active / Inactive等
- 設立日(Formation Date)
- 登録エージェント名および住所(Registered Agent & Address)
料金体系(従量課金制)
| 照会タイプ | 標準単価 | ボリューム割引後 | JPY換算目安(1USD=150円) |
|---|---|---|---|
| ライブ照会(Live Lookup) | $0.10 | $0.0314〜 | 約15円〜4.7円 |
| キャッシュ照会(Cached Lookup) | $0.01 | $0.00314〜 | 約1.5円〜0.47円 |
初期費用・月額固定費は不要で、使った分だけ課金される従量制です。大量バッチ処理が必要な案件審査にも柔軟に対応できます。まずアカウントを作成してAPIキーを取得してください。
APIエンドポイントとパラメータ
照会はすべて以下の単一エンドポイントへのPOSTリクエストで行います。
POST https://api.opensosdata.com/v1/lookup
主要パラメータ:
- state:対象州コード(ニューヨーク州の場合は
"NY") - entity_name:照会する法人名(部分一致可)
- cache_preference:照会モードの指定
live_only:常にリアルタイムでState DBを照会cache_first:キャッシュ優先、なければライブ照会cache_only:キャッシュのみ(最速・最安)
詳細な仕様は公式ドキュメントを参照してください。
実装コード例
cURLによる基本照会
# ニューヨーク州の法人をライブ照会する例
# YOUR_API_KEYを実際のキーに置き換えてください
curl -X POST https://api.opensosdata.com/v1/lookup \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": "NY",
"entity_name": "Acme Trading Corporation",
"cache_preference": "live_only"
}'
Pythonによる金融機関向け自動化スクリプト
import requests
import json
import csv
from datetime import datetime
# ======================================================
# OpenSOSData APIを使ったニューヨーク州法人一括照会スクリプト
# 金融機関のKYCバッチ処理向け実装例
# ======================================================
API_KEY = "YOUR_API_KEY" # 実際のAPIキーに置き換え
API_URL = "https://api.opensosdata.com/v1/lookup"
HEADERS = {
"x-api-key": API_KEY,
"Content-Type": "application/json"
}
def lookup_ny_entity(entity_name: str, use_live: bool = True) -> dict:
"""
ニューヨーク州の法人情報を照会する関数
Args:
entity_name: 照会対象の法人名
use_live: Trueでリアルタイム照会、Falseでキャッシュ優先
Returns:
APIレスポンスのdict(法人情報またはエラー情報)
"""
# コンプライアンス用途ではlive_onlyを推奨(最新情報を取得)
cache_pref = "live_only" if use_live else "cache_first"
payload = {
"state": "NY",
"entity_name": entity_name,
"cache_preference": cache_pref
}
try:
response = requests.post(API_URL, headers=HEADERS, json=payload, timeout=30)
response.raise_for_status()
return response.json()
except requests.exceptions.Timeout:
return {"error": "タイムアウト", "entity_name": entity_name}
except requests.exceptions.HTTPError as e:
return {"error": f"HTTPエラー: {e.response.status_code}", "entity_name": entity_name}
def batch_kyc_check(company_list: list, output_csv: str = "kyc_results.csv"):
"""
取引先リストを一括照会してCSVに出力する関数
犯収法に基づく法人確認記録の作成を想定
Args:
company_list: 照会する法人名のリスト
output_csv: 結果を保存するCSVファイル名
"""
results = []
for company_name in company_list:
print(f"照会中: {company_name}")
result = lookup_ny_entity(company_name, use_live=True)
# 照会日時を記録(監査証跡として重要)
result["照会日時"] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
result["照会対象名"] = company_name
results.append(result)
# 結果をCSVに書き出し(コンプライアンス記録として保管)
if results:
fieldnames = list(results[0].keys())
with open(output_csv, "w", newline="", encoding="utf-8-sig") as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(results)
print(f"\n照会完了。結果を {output_csv} に保存しました。")
# ===== 実行例 =====
if __name__ == "__main__":
# 取引審査対象の米国法人リスト
target_companies = [
"Acme Trading Corporation",
"Global Finance Partners LLC",
"Manhattan Investment Group Inc"
]
# 一括照会実行
batch_kyc_check(target_companies, "ny_kyc_results.csv")
# 単一法人の詳細確認
single_result = lookup_ny_entity("Acme Trading Corporation")
print(json.dumps(single_result, indent=2, ensure_ascii=False))
コンプライアンス実務への統合ポイント
ステータス確認の自動アラート設定
APIレスポンスの status フィールドが "Active" 以外の場合(Dissolved、Revoked等)に自動アラートを発火させることで、取引先が法人格を失っているリスクを早期発見できます。定期的なバッチ実行(月次・四半期)により、既存取引先のモニタリングにも活用できます。
法人番号(houjin bangou)との照合
国税庁の法人番号と米国EIN(Employer Identification Number)は別の識別子体系ですが、APIで取得したEntity IDと自社の取引先マスターを紐付けることで、日本側の法人番号データベースとの突合管理が可能になります。
Delaware LLC等の州外登録への対応
ニューヨークで事業を行う法人がデラウェア州法人として登録されているケースも多くあります。OpenSOSDataは全50州対応のため、state パラメータを "DE" に変更するだけで同一スクリプトを流用できます。
よくある質問(FAQ)
Q:APIで取得したデータはリアルタイムですか?ニューヨーク州務長官のデータとどのくらい同期していますか?
cache_preference を live_only に設定することで、ニューヨーク州務長官(New York Department of State)のデータベースをリアルタイムで照会します。コンプライアンス目的の場合は live_only の使用を推奨します。cache_first や cache_only はコスト削減には有効ですが、データの鮮度が若干落ちる可能性があります。詳細はドキュメントをご参照ください。
Q:犯収法上の「確認記録」としてAPIレスポンスを使用できますか?
APIで取得した法人情報は確認の一次資料として活用できますが、犯収法が求める確認記録には照会日時・照会者・データソースの明記が必要です。上記Pythonスクリプトのように照会日時をCSVに記録し、APIソースをドキュメント化することで監査証跡として機能します。最終的な法的判断は自社コンプライアンス部門または顧問弁護士にご確認ください。
Q:ニューヨーク州以外の州も同じAPIで照会できますか?
はい。OpenSOSDataは米国全50州+ワシントンD.C.、プエルトリコ、米領バージン諸島に対応しており、エンドポイントは同一です。state パラメータを変更するだけで、デラウェア州("DE")、カリフォルニア州("CA")等への照会が可能です。
Q:料金はどのように請求されますか?月額固定費はありますか?
完全従量課金制です。ライブ照会は標準$0.10/件(ボリューム割引で$0.0314〜)、キャッシュ照会は$0.01/件($0.00314〜)で、月額固定費・初期費用は一切かかりません。アカウント登録後すぐに利用開始できます。
Q:APIキーの管理とセキュリティはどうすればよいですか?
APIキーはコード内にハードコードせず、環境変数(os.environ.get("OPENSOSDATA_API_KEY"))またはシークレット管理サービス(AWS Secrets Manager、Azure Key Vault等)で管理することを強く推奨します。金融機関のセキュリティポリシーに従い、APIキーのローテーションと権限スコープの最小化を実施してください。
Q:照会できる情報に登録エージェント以外の役員情報は含まれますか?
現在のAPIレスポンスには、法人名・法人種別・法人ID・ステータス・設立日・登録エージェントおよびその住所が含まれます。取締役や株主等の役員情報はニューヨーク州公開データベースの提供範囲外であるため、追加の調査(デューデリジェンスレポート等)が必要な場合は別途ご検討ください。
Q:レート制限(Rate Limit)はありますか?大量バッチ処理に対応できますか?
レート制限の詳細は公式ドキュメントをご参照ください。大量バッチ処理の場合は、Pythonスクリプトに適切なsleep処理(time.sleep())を追加するか、非同期処理(asyncio+aiohttp)を検討することで、効率的な大量照会が実現できます。
まとめ
ニューヨーク州企業照会APIを活用することで、日本の金融機関は犯収法・FSAガイドラインへの適合性を維持しながら、法人確認作業を大幅に効率化できます。OpenSOSDataはサインアップ後すぐに利用でき、従量課金制のため小規模なPoC(概念実証)から本番大量処理まで段階的に導入できます。
まずは無料アカウントを作成してAPIキーを取得し、上記のPythonスクリプトをそのまま試してみてください。詳細な技術仕様については開発者ドキュメントを、サービス全体の概要についてはOpenSOSDataの公式サイトをご参照ください。