SalesforceにOpenSOSData APIを統合する方法:CRM内でリアルタイム法人確認を実現
米国企業との取引拡大や越境投資が加速する中、日本の金融機関・FinTech企業・商社が直面する最大の課題の一つが「米国法人の実態確認(KYB:Know Your Business)」です。犯罪収益移転防止法(以下、犯収法)やFSA(金融庁)のKYCガイドラインは、取引先企業の登録状況・実在性・代表者情報の確認を義務付けています。しかし多くの企業では、この確認作業がメールや手作業に頼り、営業担当者の工数を圧迫しているのが実情です。
本記事では、米国50州+ワシントンD.C.・プエルトリコ・米国バージン諸島の3,400万件超の法人情報を提供する OpenSOSData API を、Salesforceに統合する具体的な手順を解説します。これにより、営業担当者がSalesforce上でアカウントを作成・編集するタイミングで自動的に法人確認が走り、コンプライアンスチームの負担を大幅に削減できます。
なぜ日本企業にとってリアルタイムKYBが必要なのか
犯収法・FSAガイドラインの要件
2023年に改正された犯収法施行規則では、特定事業者(銀行・証券・保険・リース等)に対して取引時確認の強化が求められています。外国法人との取引においては、設立国の公的登録機関が発行した登録証明書またはそれに相当する情報の取得が義務付けられており、米国企業の場合は各州のSecretary of State(州務長官)データベースが一次情報源とみなされます。
また金融庁の「マネー・ローンダリング及びテロ資金供与対策に関するガイドライン」(2024年改訂版)は、実質的支配者(UBO)の特定とともに、法人の設立・存続状態の継続的モニタリングを求めています。法人ステータスが「Dissolved(解散)」や「Revoked(取消)」に変わった取引先を見落とすリスクは、監督当局からの行政処分につながりかねません。
日米クロスボーダー投資コンプライアンス
JETRO(日本貿易振興機構)の統計によると、日本企業による対米直接投資残高は70兆円を超えています。デラウェア州やネバダ州に設立したSPV(特別目的会社)やLLCを活用した投資スキームでは、日本側の法務担当者が現地法人の登録状態を定期的に確認する必要があります。OpenSOSData APIならlive_onlyモードで最新のステータスをリアルタイム取得でき、法的リスクを最小化できます。
OpenSOSData APIの基本仕様
統合前に主要なパラメータを確認しておきましょう。APIのエンドポイントは以下の通りです。
POST https://api.opensosdata.com/v1/lookup
認証には x-api-key ヘッダーを使用します。リクエストボディの主要フィールドを下表にまとめました。
| パラメータ | 型 | 説明 | 必須 |
|---|---|---|---|
entity_name |
string | 検索する法人名 | ○ |
state |
string | 州コード(例:DE, CA, NY) | ○ |
cache_preference |
string | live_only / cache_first / cache_only | △ |
料金体系はシンプルなPay-as-you-goです。ライブ検索は標準$0.10(約15円)、ボリューム割引適用で最低$0.0314まで下がります。キャッシュ検索は標準$0.01、最低$0.00314です。詳細は 公式ドキュメント をご参照ください。
Salesforce統合のアーキテクチャ設計
Salesforceへの統合は主に2つのパターンで実装します。
- パターンA:Apex Callout ― Salesforceのトリガーまたはフローから直接APIを呼び出す。シンプルだが、Salesforceのコールアウト制限(1リクエスト10秒・1日の上限あり)に注意。
- パターンB:中間サーバー経由(推奨) ― AWS Lambda・Google Cloud Functions等のサーバーレス関数がSalesforceからWebhookを受け取り、OpenSOSData APIを呼び出してSalesforceに書き戻す。APIキーをSalesforce外で管理でき、セキュリティ上有利。
本記事ではパターンBの中間サーバー実装を中心に解説します。
Pythonによる実装例(AWS Lambda想定)
以下のコードは、Salesforceから送られてきた法人名と州コードを受け取り、OpenSOSData APIに問い合わせて結果を返すLambda関数の例です。
import json
import os
import requests
# 環境変数からAPIキーを取得(コード内にハードコードしない)
API_KEY = os.environ["OPENSOSDATA_API_KEY"]
API_URL = "https://api.opensosdata.com/v1/lookup"
def lambda_handler(event, context):
"""
Salesforce(またはMuleSoft)からのWebhookを受け取り、
OpenSOSData APIで法人確認を実施するLambda関数
"""
body = json.loads(event.get("body", "{}"))
# Salesforceから渡された法人名と州コードを取得
entity_name = body.get("entity_name", "")
state = body.get("state", "DE") # デフォルトはデラウェア州
if not entity_name:
return {
"statusCode": 400,
"body": json.dumps({"error": "entity_nameは必須です"})
}
# x-api-keyヘッダーで認証(x-api-key:は使用しない)
headers = {
"x-api-key": API_KEY,
"Content-Type": "application/json"
}
# リクエストボディ:live_onlyで最新の登録情報を取得
payload = {
"entity_name": entity_name,
"state": state,
"cache_preference": "live_only" # リアルタイム確認が必要な場合
}
try:
response = requests.post(API_URL, json=payload, headers=headers, timeout=15)
response.raise_for_status()
data = response.json()
# Salesforceに返す確認結果を整形
result = {
"verified": True,
"entity_name": data.get("entity_name"),
"entity_type": data.get("entity_type"),
"status": data.get("status"), # Active / Dissolved 等
"formation_date": data.get("formation_date"),
"registered_agent": data.get("registered_agent"),
"registered_agent_address": data.get("registered_agent_address"),
"entity_id": data.get("entity_id")
}
except requests.exceptions.HTTPError as e:
# 法人が見つからない・APIエラーの場合
result = {
"verified": False,
"error": str(e)
}
return {
"statusCode": 200,
"headers": {"Content-Type": "application/json"},
"body": json.dumps(result, ensure_ascii=False)
}
curlによる動作確認
本番実装前に以下のコマンドで疎通確認を行いましょう。
# OpenSOSData APIへのテストリクエスト(デラウェア州のApple Inc.を検索)
curl -X POST https://api.opensosdata.com/v1/lookup \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"entity_name": "Apple Inc",
"state": "DE",
"cache_preference": "cache_first"
}'
# cache_first:キャッシュがあれば利用し、なければライブ取得(コスト最適化)
Salesforce側の設定手順
1. Named Credentialの設定
Salesforce SetupからNamed Credentialを作成し、Lambda関数のエンドポイントURLを登録します。認証方式はAWS Signature V4またはカスタムヘッダーを選択してください。APIキーはSalesforceのCustom Metadataに保存せず、Lambda側の環境変数(Secrets Manager推奨)で管理します。
2. Apex Triggerの実装
AccountオブジェクトのBeforeInsert/BeforeUpdateトリガーを作成し、法人名フィールド(例:Legal_Entity_Name__c)が変更された際にLambda関数を非同期呼び出しします。コールアウトはFuture MethodまたはQueueableで実行し、UIをブロックしないよう設計してください。
3. カスタムフィールドへの書き戻し
確認結果はAccountオブジェクトの以下のカスタムフィールドに書き戻すことを推奨します。
KYB_Status__c(Picklist:Active / Dissolved / Not Found / Pending)KYB_Verified_Date__c(Date/Time)KYB_Entity_ID__c(Text:州務長官が付与した法人ID)KYB_Registered_Agent__c(Text)
live_only vs cache_first vs cache_only の使い分け
| モード | 用途 | コスト | 推奨シナリオ |
|---|---|---|---|
live_only |
最新データを強制取得 | $0.10〜 | 新規取引先登録・与信審査時 |
cache_first |
キャッシュ優先・なければライブ | $0.01〜$0.10 | 日常的なCRM更新・一括処理 |
cache_only |
キャッシュのみ(速度優先) | $0.01〜 | レポート生成・非クリティカルな参照 |
コンプライアンス上の取引時確認には live_only を使用し、日常的なSalesforceダッシュボードの表示には cache_first を使用することでコストを最適化できます。
コンプライアンス上の注意点
OpenSOSData APIが返す情報は州務長官の公開データベースを一次情報源とするため、法人の実在性・登録状態の確認には有効ですが、UBO(実質的支配者)の特定には追加のデューデリジェンスが必要です。犯収法上の取引時確認は、API連携だけで完結するものではなく、定款写し・法人登記証明書(Certificate of Good Standing)等の書類確認と組み合わせて運用してください。
アカウント登録は こちら から無料で開始できます。
よくある質問(FAQ)
Q. OpenSOSData APIはデラウェア州以外の法人も確認できますか?
はい。米国50州すべて+ワシントンD.C.・プエルトリコ・米国バージン諸島に対応しており、3,400万件超の法人情報を検索できます。カリフォルニア州のC-Corp、ネバダ州のLLC、ニューヨーク州の法人など、主要な設立地をすべてカバーしています。
Q. Salesforceの標準エディションでも統合できますか?
Apex CalloutはEnterprise Edition以上で利用可能です。Professional Editionの場合は、MuleSoft Anypoint PlatformやZapier等のiPaaSを介してLambda関数と連携する方法をお勧めします。
Q. APIキーの管理はどうすればよいですか?
APIキーはSalesforceのカスタムメタデータやハードコードには保存しないでください。AWS Secrets Manager・Azure Key Vault・Google Secret Managerなどのシークレット管理サービスを使用し、Lambda等の実行環境から環境変数として注入する設計が推奨されます。
Q. 犯収法上の「取引時確認」はAPIだけで完結しますか?
いいえ。OpenSOSData APIは法人の登録状態・実在性確認を自動化する強力なツールですが、犯収法が求める取引時確認には、UBOの特定・法人の目的確認・リスク評価といった追加プロセスが必要です。APIをコンプライアンスワークフローの第一ステップとして位置付け、書類確認と組み合わせてご利用ください。
Q. ライブ検索とキャッシュ検索の最新性はどの程度異なりますか?
live_onlyはリクエスト時点での州務長官データベースの最新情報を返します。cache_firstおよびcache_onlyは直近のクロールデータを返すため、数時間〜数日のラグが生じる場合があります。コンプライアンス目的の確認にはlive_onlyを推奨します。詳細は APIドキュメント をご確認ください。
Q. 日本の法人番号(houjin bangou)との突合はできますか?
OpenSOSData APIは米国州務長官が発行するエンティティIDを返します。日本の法人番号(13桁)との自動突合機能は現時点では提供していませんが、両方のIDをSalesforceのカスタムフィールドに格納し、マスターデータ管理(MDM)ツールで照合する運用設計をお勧めします。
Q. 月額固定料金はありますか?
OpenSOSData APIは完全なPay-as-you-goモデルです。月額固定費は不要で、実際に実行したルックアップ件数のみ課金されます。ライブ検索は標準$0.10、ボリューム割引で最低$0.0314(約5円)、キャッシュ検索は標準$0.01、最低$0.00314(約0.5円)です。アカウント登録 後すぐに利用開始できます。
まとめ
犯収法・FSAガイドラインへの対応と業務効率化を両立するには、法人確認の自動化が不可欠です。OpenSOSData APIをSalesforceに統合することで、営業担当者がCRM上で米国取引先を登録した瞬間に法人ステータスが自動検証され、コンプライアンス部門への確認依頼という手間が省けます。Pay-as-you-goの料金体系はスタートアップから大手金融機関まで、あらゆる規模の企業に適しています。
まずは 無料アカウントを作成 して、自社の米国取引先リストで動作を確認してみてください。APIの詳細仕様は 公式ドキュメント でご確認いただけます。