美国企业信息查询API集成指南(Python / Node.js)
对于中国跨境从业者而言,核实美国合作方的企业主体资质已从"最佳实践"演变为法规层面的硬性要求。无论是根据中国人民银行反洗钱(AML)规定开展客户尽职调查,还是依照国家外汇管理局(SAFE)规定申报对外付款,抑或遵循商务部(MOFCOM)跨境投资备案流程,您都必须能够快速、可靠地获取美国企业的官方注册信息。
OpenSOSData 提供覆盖全美50个州及华盛顿特区、波多黎各、美属维尔京群岛的企业信息查询REST API,数据库收录超过3400万家企业实体,直接对接各州州务卿(Secretary of State)官方记录。本文将手把手带您完成API集成,并提供可直接用于生产环境的Python与Node.js代码示例。
一、为什么中国从业者必须核实美国企业信息
1. 中国AML合规要求
根据《反洗钱法》及中国人民银行相关规定,金融机构和特定非金融机构在与境外主体建立业务关系前,须完成客户身份识别(KYC/KYB)。核查美国合作方是否在州务卿处合法注册、是否处于Active(活跃)状态,是识别空壳公司和洗钱风险的第一道防线。
2. SAFE外汇申报要求
通过银行向美国企业汇出资金时,外汇管理局要求提供真实的贸易或投资背景材料,其中包括境外收款方的有效注册证明。若对方企业在州注册系统中显示为"Dissolved"(已注销)或"Revoked"(撤销),汇款将面临合规风险乃至被拒付。
3. MOFCOM对外投资备案
依据商务部《境外投资管理办法》,中国企业对外直接投资须向商务部或地方主管部门进行备案,申报材料中须包含被投资境外企业的营业执照或等效注册文件。调用州务卿API可在数秒内获取包含注册编号、注册日期、注册代理人等关键字段的官方数据,极大简化备案材料准备流程。
4. 美国出口管制与OFAC制裁背景核查
美国商务部实体清单(Entity List)和财政部OFAC制裁名单日益影响中美贸易。通过核实企业的州注册ID与注册名称,可辅助识别名称变更或关联主体,为后续制裁筛查提供准确的锚点数据。
二、OpenSOSData API 核心参数说明
完整文档请参阅 opensosdata.com/docs/。以下是最关键的请求参数:
| 参数 | 类型 | 说明 |
|---|---|---|
state |
string | 美国州代码,如 "DE"(特拉华州)、"CA"(加利福尼亚州) |
query |
string | 企业名称或注册编号 |
cache_preference |
string | live_only(实时查询)/ cache_first(优先缓存)/ cache_only(仅缓存) |
定价对比
| 查询类型 | 标准价格 | 大批量最低价 | 适用场景 |
|---|---|---|---|
| 实时查询(live_only) | $0.10 / 次 (约¥0.73) |
$0.0314 / 次 | AML尽调、付款核验 |
| 缓存查询(cache_first) | $0.01 / 次 (约¥0.073) |
$0.00314 / 次 | 批量数据核查、背景筛查 |
平台采用按需付费(Pay As You Go)模式,无月费、无最低消费,适合从单次尽调到高频合规系统的各类场景。立即注册请访问 app.opensosdata.com。
三、cURL 快速验证
在集成代码之前,先用cURL验证API连通性:
# 查询特拉华州注册的企业(实时查询模式)
curl -X POST https://api.opensosdata.com/v1/lookup \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"state": "DE",
"query": "OpenAI LLC",
"cache_preference": "live_only"
}'
四、Python 集成示例
以下示例适用于Python 3.8+,使用标准库requests,无需额外框架。
import requests
import json
# ────────────────────────────────────────
# 配置区域:替换为您的真实API Key
# 在 https://app.opensosdata.com 注册后获取
# ────────────────────────────────────────
API_KEY = "YOUR_API_KEY"
API_ENDPOINT = "https://api.opensosdata.com/v1/lookup"
def lookup_us_company(state: str, query: str, cache_preference: str = "cache_first") -> dict:
"""
查询美国州务卿注册企业信息
参数:
state: 州代码(如 "DE", "CA", "NY")
query: 企业名称或注册编号
cache_preference: 查询模式
- "live_only" 实时查询,费用 $0.10/次,适合AML/付款核验
- "cache_first" 优先缓存,费用 $0.01/次,适合批量筛查
- "cache_only" 仅缓存,最低成本
返回:
包含企业注册信息的字典
"""
headers = {
"x-api-key": API_KEY,
"Content-Type": "application/json"
}
payload = {
"state": state,
"query": query,
"cache_preference": cache_preference
}
try:
response = requests.post(API_ENDPOINT, headers=headers, json=payload, timeout=15)
response.raise_for_status() # 非2xx状态码将触发异常
return response.json()
except requests.exceptions.Timeout:
print("请求超时,请检查网络连接或稍后重试")
raise
except requests.exceptions.HTTPError as e:
print(f"API错误: {e.response.status_code} - {e.response.text}")
raise
def print_company_info(result: dict) -> None:
"""格式化输出企业关键信息,用于合规报告"""
if not result.get("data"):
print("未查询到匹配企业")
return
company = result["data"]
print("=" * 50)
print(f"企业名称 : {company.get('name', 'N/A')}")
print(f"企业类型 : {company.get('entity_type', 'N/A')}")
print(f"注册编号 : {company.get('entity_id', 'N/A')}")
print(f"注册状态 : {company.get('status', 'N/A')}") # Active / Dissolved 等
print(f"成立日期 : {company.get('formation_date', 'N/A')}")
print(f"注册代理人 : {company.get('registered_agent', 'N/A')}")
print(f"注册代理地址 : {company.get('registered_agent_address', 'N/A')}")
print("=" * 50)
# ────────────────────────────────────────
# 主程序:演示单次查询与批量查询
# ────────────────────────────────────────
if __name__ == "__main__":
# 示例1:实时查询——用于对外付款前的SAFE合规核验
print("\n【实时查询示例 — 适用于外汇申报前核验】")
result = lookup_us_company(
state="DE",
query="Stripe Inc",
cache_preference="live_only" # 实时拉取,$0.10/次
)
print_company_info(result)
# 示例2:批量缓存查询——用于MOFCOM投资备案批量核查
print("\n【批量缓存查询示例 — 适用于投资备案材料准备】")
companies_to_check = [
{"state": "CA", "query": "Sequoia Capital Operations LLC"},
{"state": "NY", "query": "Goldman Sachs Group Inc"},
{"state": "DE", "query": "Tesla Inc"},
]
for company in companies_to_check:
result = lookup_us_company(
state=company["state"],
query=company["query"],
cache_preference="cache_first" # 优先缓存,$0.01/次
)
print_company_info(result)
五、Node.js 集成示例
以下示例使用Node.js内置的fetch(Node 18+)或axios(兼容低版本):
// 美国企业信息查询 - Node.js 集成示例
// 适用于 Node 18+ (原生 fetch) 或安装 axios 后的低版本 Node
// 注册API Key: https://app.opensosdata.com
const API_KEY = "YOUR_API_KEY";
const API_ENDPOINT = "https://api.opensosdata.com/v1/lookup";
/**
* 查询美国州务卿注册企业
* @param {string} state - 州代码,如 "DE", "CA"
* @param {string} query - 企业名称或注册编号
* @param {string} cachePreference - live_only | cache_first | cache_only
*/
async function lookupUSCompany(state, query, cachePreference = "cache_first") {
const response = await fetch(API_ENDPOINT, {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
state,
query,
cache_preference: cachePreference, // 注意:使用 cache_preference 而非其他字段名
}),
});
if (!response.ok) {
const errText = await response.text();
throw new Error(`API错误 ${response.status}: ${errText}`);
}
return response.json();
}
// 格式化输出,方便集成进合规报告系统
function printCompanyInfo(result) {
const company = result?.data;
if (!company) {
console.log("未查询到匹配企业");
return;
}
console.log("企业名称 :", company.name ?? "N/A");
console.log("注册状态 :", company.status ?? "N/A"); // Active表示有效存续
console.log("注册编号 :", company.entity_id ?? "N/A");
console.log("成立日期 :", company.formation_date ?? "N/A");
console.log("注册代理人 :", company.registered_agent ?? "N/A");
console.log("---");
}
// 主程序
(async () => {
try {
// AML尽调:实时查询,确保数据最新
console.log("=== AML合规实时查询 ===");
const liveResult = await lookupUSCompany("DE", "Coinbase Global Inc", "live_only");
printCompanyInfo(liveResult);
// MOFCOM备案:缓存查询,降低批量核查成本
console.log("=== 投资备案批量查询 ===");
const cachedResult = await lookupUSCompany("CA", "Apple Inc", "cache_first");
printCompanyInfo(cachedResult);
} catch (error) {
console.error("查询失败:", error.message);
}
})();
六、常见问题解答
Q:OpenSOSData覆盖哪些州和地区?
OpenSOSData覆盖全美50个州、华盛顿特区(D.C.)、波多黎各及美属维尔京群岛,数据库收录超过3400万家企业实体。对于在特拉华州注册LLC的中国企业而言,DE州的查询尤为重要。详情见 官方文档。
Q:live_only 与 cache_first 有什么区别?应该如何选择?
live_only 直接向州务卿官网实时拉取最新数据,适合AML尽调、对外付款核验等对数据时效性要求高的场景,费用为 $0.10/次;cache_first 优先返回平台缓存数据,成本低至 $0.01/次,适合批量背景筛查、MOFCOM备案材料准备等场景。请勿使用不存在的 lookup_type 字段。
Q:API返回哪些字段?能否满足SAFE外汇申报对企业资质证明的要求?
API返回字段包括:企业名称(name)、企业类型(entity_type,如LLC/Corporation)、注册编号(entity_id)、注册状态(status)、成立日期(formation_date)、注册代理人(registered_agent)及其地址。这些字段与州务卿官方记录一致,可作为对外付款合规材料的数据来源,配合官方截图共同提交银行或外汇局。
Q:定价模式是什么?是否需要签年度合同?
OpenSOSData采用完全按需付费(Pay As You Go)模式:实时查询标准价格 $0.10/次,大批量可降至 $0.0314/次;缓存查询标准价格 $0.01/次,大批量可降至 $0.00314/次。无月费、无年费、无最低消费要求。在 app.opensosdata.com 注册后即可按量充值使用。
Q:如何处理企业名称不完整或存在多个同名企业的情况?
建议优先使用企业注册编号(Entity ID)作为查询参数,可避免同名歧义。若只有企业名称,可结合州代码缩小范围,并对返回的多条结果根据成立日期、注册状态进行人工或程序化筛选,确认唯一主体后再用于合规报告。
Q:对于中国企业在特拉华州注册的LLC,查询结果是否包含成员信息?
特拉华州LLC的成员(Member)信息不在州务卿公开记录中披露,API返回的是公开注册信息,包括注册代理人和企业状态。如需股权穿透信息,需结合其他数据源(如FinCEN BOI报告)进行综合尽调。
Q:集成过程中遇到网络连接问题怎么办?
若从中国大陆服务器调用API,建议将API请求路由至具备境外访问能力的服务端发出,避免直接从受限网络环境调用。同时建议在代码中设置合理的超时时间(如15秒)并实现重试机制,确保生产环境稳定性。
结语
随着中美跨境合规审查日趋严格,能够在业务流程中自动化核验美国企业注册状态,已成为中国出口商、投资机构和合规团队的核心能力之一。OpenSOSData 提供的API以极低成本、极简接口将这一能力标准化——无论是Python批处理脚本、Node.js后端服务还是内部合规系统,均可在数小时内完成集成。
立即前往 app.opensosdata.com 注册账号,获取API Key并开始按需使用。测试。如需深入了解所有参数与返回字段,请查阅 完整开发者文档。