{
"version": "V1.6.0",
"event_name": "VIRTUAL",
"event_type": "virtual.account.create",
"event_id": "550e8400-e29b-41d4-a716-446655440101",
"source_id": "550e8400-e29b-41d4-a716-446655440001",
"data": {
"account_id": "b1b89684-c2c4-4d54-b8a8-3572727fd120",
"application_id": "550e8400-e29b-41d4-a716-446655440001",
"country": "BH",
"currency": "EUR",
"direct_id": "0",
"public_version": 1,
"results": [
{
"payment_method": "SWIFT",
"status": "SUBMITTED",
"virtual_accounts": [],
"error": null
}
],
"status": "SUBMITTED"
}
}账户与虚拟账户
虚拟账户申请 Webhook
安全接收申请受理、更新和关闭事件。
WEBHOOK
virtualAccountCreateUpdate
{
"version": "V1.6.0",
"event_name": "VIRTUAL",
"event_type": "virtual.account.create",
"event_id": "550e8400-e29b-41d4-a716-446655440101",
"source_id": "550e8400-e29b-41d4-a716-446655440001",
"data": {
"account_id": "b1b89684-c2c4-4d54-b8a8-3572727fd120",
"application_id": "550e8400-e29b-41d4-a716-446655440001",
"country": "BH",
"currency": "EUR",
"direct_id": "0",
"public_version": 1,
"results": [
{
"payment_method": "SWIFT",
"status": "SUBMITTED",
"virtual_accounts": [],
"error": null
}
],
"status": "SUBMITTED"
}
}Webhook 订阅版本为
Create 响应和
V1.5.1、V1.5.2 或 V1.6.0 时,均可接收虚拟账户申请事件。
每个事件代表整笔申请。source_id 等于 data.application_id,data 包含该事件发生后的最新申请详情。事件不会按每种收款方式或每条银行信息分别发送。
使用 data.account_id 识别申请所属账户。如果它是关联账户,data.direct_id 表示其主账户;如果它就是主账户,data.direct_id 为 "0"。
virtual.account.create 只表示申请已受理并进入处理,不表示审批已完成或银行信息已可用。只能使用状态为 ACTIVE 的银行信息。何时发送事件
| 事件类型 | 发送时机 | 处理方式 |
|---|---|---|
virtual.account.create | 新申请受理后发送,public_version 初始值为 1。 | 保存申请,并继续跟踪状态为 SUBMITTED 的结果。 |
virtual.account.update | 返回的申请数据发生变化,且申请尚未全部关闭时发送。 | 仅在 public_version 高于本地已存版本时应用事件,然后逐项处理全部结果。 |
virtual.account.closed | 所有已开通虚拟账户均已关闭,且没有结果仍在处理中时发送。 | 应用 CLOSED 申请,并停止使用全部关联银行信息。 |
virtual.account.create Webhook 可能以任意顺序到达,不要让其中一个等待另一个。
update 可能表示某种方式被跳过或失败、新银行信息已开通、申请部分完成或最终完成,也可能表示某条银行信息关闭。两种方式在同一次变化中完成时,只发送一条最终 update;分时完成时,先发送部分完成 update,再发送最终 update。
银行信息关闭后,请立即根据其 status 停止使用。关闭记录的 close_reason 仍可能为空。
何时不发送事件
以下情况不会发送申请 Webhook:- Create 同步返回
4xx。 - 所有评估的收款方式均被拒绝,因而没有创建申请。
- 使用相同
x-idempotency-key重放完全相同的请求。 - 处理仍在继续,但返回的申请数据没有变化。
安全处理事件
- 使用原始 request body 和
x-wk-timestamp验证x-wk-signature。详见签名验证。 - 使用
event_id对投递去重。同一事件重试时会复用该值。 - 根据
data.account_id将事件关联到对应账户;如适用,使用data.direct_id识别其主账户。 - 使用
data.application_id定位申请。 - 仅当
data.public_version高于该申请的本地已存版本时应用事件。 - 逐项处理
data.results[],并通过payment_method识别。 - 发现投递缺口或疑似乱序时,查询最新申请详情。
FAILED,更高的 public_version 仍代表更新后的数据。
状态含义、错误处理和银行信息可用性规则详见通过 API 集成虚拟账户。请求体
application/json
A unique identifier for this event.
Top-level event category.
可用选项:
VIRTUAL The specific event type that occurred.
可用选项:
virtual.account.create, virtual.account.update, virtual.account.closed Virtual Account application ID.
API version number.
示例:
"V1.6.0"
Latest application data after this event. Use application_id and public_version to apply events in order.
Show child attributes
Show child attributes
响应
200
Return 200 to acknowledge receipt.

