カリフォルニア州LLC照会API完全ガイド:リアルタイム法人確認の実装方法
米国カリフォルニア州は日本企業の進出先として最も人気の高い州の一つです。シリコンバレーを擁するテクノロジー産業の集積地であり、日本からの投資・提携案件でカリフォルニア州LLC(有限責任会社)の相手先が登場するケースは後を絶ちません。しかし、取引相手のLLCが本当に存在するか、現在も有効な法人格を保っているかを迅速かつ確実に確認するには、カリフォルニア州務長官(Secretary of State)のデータベースへのAPIアクセスが不可欠です。本記事では、日本のコンプライアンス担当者・開発者向けに、OpenSOSData APIを使ったカリフォルニア州LLC照会の実装方法を詳しく解説します。
なぜ日本のプロフェッショナルにとって重要なのか
犯罪収益移転防止法とFSAのKYC要件
日本では「犯罪による収益の移転防止に関する法律」(犯収法)に基づき、金融機関や特定事業者は取引相手の本人確認(KYC)を義務付けられています。法人との取引においては、法人の実在確認・代表者確認・実質的支配者の確認が必須です。金融庁(FSA)のガイドラインは、外国法人に対しても同水準の確認を求めており、米国LLC等の確認書類の取得が求められます。
FATFの第40勧告に対応した日本の体制では、リスクベースアプローチ(RBA)のもと、特にハイリスク国・地域の法人については強化デュー・デリジェンス(EDD)が必要です。米国は低リスク国ですが、LLC自体の実在性・有効性を第三者データベースで確認するプロセスは、監査対応・内部統制の観点からも不可欠です。
日米クロスボーダー投資における法人確認の重要性
日本企業が米国LLCへ出資・融資・業務委託を行う際、契約書に記載された法人情報が州務長官の登録情報と一致しているかを確認しないまま取引を進めると、詐欺被害や契約の無効リスクを招く可能性があります。法人名称のわずかな違い(例:「Inc.」と「LLC」の混在、スペルミス)でも契約効力に影響することがあるため、APIによる自動照合が実務上きわめて有効です。
OpenSOSData APIの概要
OpenSOSDataは、米国全50州+ワシントンD.C.、プエルトリコ、米領バージン諸島(合計3,400万以上のエンティティ)の法人情報をカバーするREST APIです。カリフォルニア州のLLCはもちろん、Corporation(株式会社)、Partnership等にも対応しています。
主な返却データ
- 法人名(Entity Name)
- 法人種別(Entity Type)
- 州務長官発行ID(Entity ID)
- ステータス(Active / Suspended / Dissolved 等)
- 設立日(Formation Date)
- 登録代理人名・住所(Registered Agent & Address)
料金体系(USD)
| 照会タイプ | 標準単価 | 大量利用時 | 目安(JPY換算) |
|---|---|---|---|
| ライブ照会(リアルタイム) | $0.10 / 件 | $0.0314〜 / 件 | 約15〜4.7円 |
| キャッシュ照会 | $0.01 / 件 | $0.00314〜 / 件 | 約1.5〜0.47円 |
料金は従量課金(Pay as you go)で、月額固定費は不要です。KYCワークフローで大量照会を行う場合は、アカウント登録後にボリュームディスカウントが自動適用されます。
APIエンドポイントとパラメータ
エンドポイント:POST https://api.opensosdata.com/v1/lookup
主要リクエストパラメータ:
state:州コード(カリフォルニア州はCA)name:法人名(部分一致検索可)entity_id:州務長官発行の法人ID(より正確な照会に推奨)cache_preference:live_only(リアルタイム)、cache_first(キャッシュ優先)、cache_only(キャッシュのみ)
⚠️ 注意:lookup_typeというパラメータは存在しません。必ずcache_preferenceを使用してください。詳細は公式ドキュメントを参照してください。
実装コード例
① cURLによるリアルタイム照会
# カリフォルニア州LLCをリアルタイムで照会する例
# YOUR_API_KEY をOpenSOSDataで発行したAPIキーに置き換えてください
curl -X POST https://api.opensosdata.com/v1/lookup \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": "CA",
"name": "Example Tech LLC",
"cache_preference": "live_only"
}'
② Pythonによる自動KYCワークフロー
import requests
import json
# OpenSOSData APIキー(環境変数から取得を推奨)
API_KEY = "YOUR_API_KEY"
API_URL = "https://api.opensosdata.com/v1/lookup"
def verify_california_llc(company_name: str, use_live: bool = True) -> dict:
"""
カリフォルニア州LLCの法人情報を照会する関数
Args:
company_name: 照会する法人名
use_live: Trueでリアルタイム照会、Falseでキャッシュ優先
Returns:
照会結果の辞書
"""
# cache_preferenceの設定
# live_only: 常に最新データ($0.10/件) KYC・AML用途に推奨
# cache_first: キャッシュ優先($0.01/件) 高頻度・参照用途に適切
cache_pref = "live_only" if use_live else "cache_first"
headers = {
"x-api-key": API_KEY,
"Content-Type": "application/json"
}
payload = {
"state": "CA", # カリフォルニア州
"name": company_name,
"cache_preference": cache_pref
}
response = requests.post(API_URL, headers=headers, json=payload)
if response.status_code == 200:
return response.json()
else:
# エラー詳細をログに記録
print(f"エラー: {response.status_code} - {response.text}")
return {}
def check_entity_status(result: dict) -> bool:
"""
法人ステータスがActiveかどうかを確認する
KYC判定ロジック:Activeでない場合はフラグを立てる
"""
entities = result.get("entities", [])
if not entities:
print("⚠️ 法人が見つかりませんでした。名称を確認してください。")
return False
for entity in entities:
status = entity.get("status", "").upper()
name = entity.get("name", "不明")
entity_id = entity.get("entity_id", "不明")
formation_date = entity.get("formation_date", "不明")
print(f"法人名: {name}")
print(f"法人ID: {entity_id}")
print(f"設立日: {formation_date}")
print(f"ステータス: {status}")
if status == "ACTIVE":
print("✅ KYC確認:法人は有効です。")
return True
else:
# Suspended / Dissolved / Cancelled 等の場合は取引要注意
print(f"🚨 KYC警告:法人ステータスが '{status}' です。取引を停止し、追加調査を実施してください。")
return False
# ---- メイン処理 ----
if __name__ == "__main__":
# 取引相手のカリフォルニア州LLCを確認(犯収法対応)
target_company = "Example Tech LLC"
print(f"照会対象: {target_company}")
print("-" * 40)
# リアルタイム照会(KYC・AML目的には live_only を使用)
result = verify_california_llc(target_company, use_live=True)
if result:
is_valid = check_entity_status(result)
# 結果をJSONファイルに保存(監査証跡として保管)
with open("kyc_result.json", "w", encoding="utf-8") as f:
json.dump(result, f, ensure_ascii=False, indent=2)
print("\n監査ログ: kyc_result.json に保存しました。")
live_only vs cache_first:KYC用途での選択基準
| 用途 | 推奨設定 | 理由 |
|---|---|---|
| 新規取引先のKYC・AML確認 | live_only |
最新の法人ステータスが必須。Suspendedへの変更を見逃さないため |
| 定期的なモニタリング(月次等) | cache_first |
コスト削減しながら変更の有無をチェック可能 |
| 社内検索・UI表示用 | cache_only |
高速レスポンス・最低コスト。新鮮さより速度を優先する場面 |
日本の法令対応における実装上の注意点
犯収法第4条および金融庁ガイドラインに基づき、外国法人の確認記録は取引終了後7年間の保管が義務付けられています。OpenSOSData APIの返却JSONをそのまま監査ログDBに格納することで、照会日時・照会内容・結果を一元管理できます。また、法人番号(houjin bangou)は日本固有の識別子であり、米国のEIN(雇用者識別番号)やカリフォルニア州の法人IDとは別物です。米国法人確認には州務長官のIDをプライマリキーとして使用し、EINは税務目的のみに用いるよう運用ルールを整備してください。
よくある質問(FAQ)
Q. カリフォルニア州以外のLLCも照会できますか?
はい、OpenSOSData APIは米国全50州+ワシントンD.C.、プエルトリコ、米領バージン諸島に対応しています。デラウェア州LLCや、日本企業に人気のニューヨーク州・テキサス州のエンティティも同じAPIで照会可能です。stateパラメータを変更するだけで対応できます。詳しくはドキュメントをご覧ください。
Q. 照会結果の法的効力はありますか?
OpenSOSData APIのデータは各州務長官の公式データベースから取得されますが、APIの返却情報は参照目的のものです。法的効力を要する場合(訴訟・当局提出等)は、州務長官発行の公式証明書(Certificate of Good Standing等)を別途取得してください。ただし、KYC・AMLの内部プロセスにおける確認記録としては十分な証跡となります。
Q. 犯収法対応のKYCに使えますか?
はい。犯収法に基づく外国法人の実在確認・ステータス確認の補完手段として有効です。ただし、法律上必要な「確認書類」の正式な位置づけは各事業者の内部ルールや所管省庁の解釈によります。API照会記録を監査証跡として保管しつつ、必要に応じて公式書類と併用されることをお勧めします。
Q. APIキーの取得方法を教えてください。
https://app.opensosdata.comからアカウントを作成し、ダッシュボードでAPIキーを発行できます。クレジットカード登録後すぐに利用開始可能で、最低利用金額の制限はありません。日本のIPアドレスからの登録・利用にも対応しています。
Q. ライブ照会とキャッシュ照会のデータ鮮度の違いは?
live_onlyはリクエスト時点で州務長官データベースにリアルタイムアクセスするため、最新情報が得られます。cache_firstは事前に収集・保存されたデータを返すため、数時間〜数日のタイムラグが生じる場合があります。KYC・AMLの初回確認には必ずlive_onlyを使用してください。
Q. カリフォルニア州のLLCが「Suspended」になっている場合はどう対応すべきですか?
Suspendedは州税局(FTB)や州務長官によって法人資格が停止された状態です。この状態の法人は契約締結能力を失っている可能性があり、新規取引は一時停止し、追加の調査・法律専門家への相談を行うことを推奨します。OpenSOSData APIはステータスをリアルタイムで返却するため、ワークフローにアラート機能を実装することでリスクを早期検知できます。
Q. 大量の法人を一括照会することはできますか?
現在のAPIはバッチエンドポイントは提供しておらず、1件ずつのリクエストとなります。ただし、Pythonのasyncioやconcurrent.futuresを使った並列リクエストで効率的な一括処理が可能です。大量利用時は自動的にボリュームディスカウントが適用され、1件あたり$0.0314まで低減できます。レート制限の詳細は公式ドキュメントでご確認ください。
まとめ
カリフォルニア州LLCの実在確認は、日本の犯収法・FSAのKYC要件・日米クロスボーダー取引コンプライアンスの観点から不可欠なプロセスです。OpenSOSData APIを活用すれば、従量課金で手軽にリアルタイム照会を実装でき、監査証跡の自動保存まで一元化できます。まずは無料アカウント登録を行い、サンプルリクエストで動作を確認してみてください。詳細な仕様は公式ドキュメントに網羅されています。