直接调用欧洲银行的开放银行端点多会撞上 HTTP 401,原因是 PSD2 要求通过 eIDAS 证书(QWAC/QSeal)做双向 TLS 认证。这些证书每年成本 EUR 2,000–10,000,申请周期数周且需要注册实体,对独立开发者、小团队来说门槛极高。
实际上有一条完全合规的免证书路径:通过 AIS 聚合器。聚合器替你持有 eIDAS 证书、维护银行集成,你只需拿到一个 API key 即可通过统一 REST 接口访问数百至数千家欧洲银行的账户数据。首次调用只需几分钟,且有免费额度可用。
两种路径对比
- 直接持有证书:你自己申请 QWAC+QSeal,注册 TPP,逐家银行接入。成本 EUR 2k–10k/年,首次调用 4–12 周,适合受监管的金融科技、企业财务。
- 聚合器路径:注册聚合器,获 API key,调用统一接口。聚合器持有证书、处理各家银行的协议差异(Berlin Group、STET、UK Open Banking 等)。成本:免费额度或按量计费,首次调用只需几分钟。
免证书流程详解
1. 创建 consent/requisition → POST "用户想连接银行 X"
2. 重定向用户到银行进行 SCA(强客户认证)→ 用户在银行侧认证
3. 银行回调聚合器 → consent 变为有效
4. 列出账户 → GET /accounts
5. 获取交易与余额 → GET /accounts/{id}/transactions
6. consent 到期(90 或 180 天)→ 重复步骤 1
代码示例(以 open-banking.io 为例,各聚合器流程相同)
```bash
# 创建 requisition
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"redirect": "", "institution_id": "DANMARKS_DANSKE_BANK", "reference": "user-42-first-link"}'
```
用户认证后即可列出账户并拉取交易。
五个常见陷阱
- Consent 有效期因国家而异(德国 90 天,北欧多 180 天),务必存储到期时间并提前提醒用户。
- 银行覆盖存在差距,标注「支持 10,000 家银行」可能不包括你需要的区域银行。
- 区分已清算和待清算交易,用 transactionId 去重。
- 频率限制:每天拉取 1–2 次即可,部分银行支持 webhook。
- 确保聚合器遵守 GDPR,数据存放在欧盟并提供端到端加密。
何时应直接购买证书?当你作为受监管的 AIS/PISP 且年费超过 ~EUR 2k、需要支付发起(PIS)高可靠性、或禁止第三方中介时。其他所有情况——个人项目、小企业会计自动化、自托管预算工具——免证书聚合器路径都是更务实的选择。
原始链接:
#开发者 #工具 #开放银行 #PSD2 #eIDAS #AIS #银行API #金融科技 #EU
@DevToolboxHub