Skip to main content
如果你的集成已经调用 Create Virtual Account 或处理虚拟账户 Webhook,请按照本指南完成升级。新流程将于 2026 年 8 月 13 日在 Sandbox 生效,并于 2026 年 9 月 3 日在 Production 生效。
请在 Production 生效日期前完成升级。Create 成功响应和虚拟账户 Webhook 数据都会发生变化。

变更概览

Create 路径仍为 POST /v1/virtual/accounts

1. 更新 Create 请求

继续传入必填的 x-idempotency-key,并按以下方式修改请求构造逻辑:
  1. 新增必填的两位国家代码 country
  2. currency 只传一个三位币种代码。
  3. payment_methodLOCALSWIFT,或省略以评估两种方式。不要传 ALLAUTO
  4. nickname 作为可选字段处理。
  5. 移除该接口中依赖 x-request-id 的逻辑。
如果为子账户创建申请,请继续在 x-on-behalf-of 中传入其账户 ID。请求结构详见 Create Virtual Account,有效值详见支持的参数组合 网络失败后重试时,请为同一账户发送相同请求,并复用同一个 x-idempotency-key。任何申请输入发生变化时,都应使用新的 key。

2. 替换 Create 成功响应

将 HTTP 200 解析为“申请已受理”,而不是“银行信息已可用”。 停止解析 messagerequest_id,改为:
  1. data.account_iddata.direct_id 与申请一起保存。
  2. 保存 data.application_id
  3. 保存 data.public_version
  4. 逐项处理 data.results[],并通过 payment_method 识别。
  5. 只有当结果为 COMPLETED 且具体记录为 ACTIVE 时,才使用银行信息。
省略 payment_method 时,一项结果可能为 SKIPPED,另一项为 SUBMITTED。不要将申请顶层状态当成每种收款方式的状态。

3. 增加申请查询

为集成增加以下接口: List Virtual Accounts 继续用于查询已开通的银行信息,不会列出待处理申请。

4. 更新 Webhook 消费逻辑

处理全部三种申请事件: 保留现有的验签与响应确认流程,并将关联和顺序处理逻辑改为:
  1. 使用 event_id 对投递去重。
  2. 使用 data.account_id 将事件关联到对应账户;如适用,使用 data.direct_id 识别其主账户。
  3. 使用 data.application_id 定位申请。
  4. 仅应用更高的 data.public_version
  5. 应用事件后逐项处理全部结果。
  6. 发现版本缺口或疑似乱序时,调用 Retrieve 查询最新详情。
事件时机、示例和补偿处理详见虚拟账户申请 Webhook

5. 区分请求错误与后续失败

Create 同步返回 400 表示没有创建申请,后续也不会产生申请 Webhook。请修正请求或账户配置后再试。 HTTP 200 之后,某种收款方式仍可能变为 FAILED。此时请处理 virtual.account.update 事件,并使用 results[].error.code 决定后续操作。错误码和建议操作详见通过 API 集成虚拟账户

Sandbox 验收清单

Production 上线前,请确认你的集成能够:
  • 发送一组受支持的 countrycurrency,并按需传入 payment_method
  • 使用同一 x-idempotency-key 重试相同请求,并保持一个 application_id
  • 拒绝使用同一个 key 提交不同的申请输入。
  • 解析 HTTP 200,并逐项处理 results[]
  • 处理同一申请中一项 SKIPPED、另一项 SUBMITTED 的情况。
  • 保存并比较 application_id + public_version
  • 查询申请列表和最新详情。
  • 接受早于或晚于 Create 响应到达的 virtual.account.create
  • 使用 account_iddirect_id 将申请事件关联到正确的账户。
  • 在不依赖到达顺序的情况下应用 COMPLETEDFAILEDCLOSED 数据。
  • 只使用 ACTIVE 银行信息,并在 close_reason 为空时仍停止使用 CLOSED 记录。
  • Create 同步报错后停止等待 Webhook。
通过以上检查后,请使用通过 API 集成虚拟账户作为后续接入指南。