跳到主要内容

Webhook

监控主题的更新将通过发送 Webhook 进行通知。为此,需要通过支持团队配置一个端点地址,我们将通过该地址通知更新,以及一个用于签名请求的 signature_key。请注意,所有 Webhook 发送均将发送到单个端点。

注意

出于安全原因,所有 Webhook 请求将仅发送到通过 HTTPS 提供服务的端点。

签名

Python 签名计算示例

    hmac_obj = hmac.new(signature_key.encode('utf-8'), (url + method + payload).encode('utf-8'), hashlib.sha1)
return hmac_obj.hexdigest()

为确保在 Webhook 端点收到的请求来自我们的服务器,HMAC 签名将在 Signature Header 中发送,方式与认证过程类似。

在服务器端计算签名的预期值后,需要将计算的签名与发送的签名进行比较。如果签名匹配,则表示请求来自我们的服务器且可信。

事件更新 Webhook

Request Body
{
"person_type" : "natural_person",
"account_type" : "natural_person_account",
"person_id" : "22f5d028-0ce7-46f7-9b63-e7e38171b485",
"account_id" : "e49ac344-f941-4668-9afb-a52ce4e5754a",
"monitoring_topic" : "OFAC",
"event" : "entered"
}

以下是每个字段的含义:

名称类型描述
person_typestring人员类型(natural_person 或 legal_person)。
account_typestring账户类型(natural_person_account 或 legal_person_account)。
person_idstring人员的唯一标识符,在创建请求中传入。
account_idstring账户的唯一标识符,在创建请求中传入。
monitoring_topicstring发生变化的监控主题。
eventstring发生的事件类型,如限制名单主题的 "entered"(进入)或 "exited"(退出)。

监控主题更新请求采用上述格式,并通知账户内某个监控主题状态的变化。使用的方法为 PUT,端点地址根据客户需求也可包含事件 ID。需要注意的是,请求体以 UTF-8 编码的文本形式发送。

重试

当收到 HTTP 状态码 200 作为响应时,通知视为已完成。如果通知失败,将进行 7 次重试,重试间隔如下,直到返回 200 或重试结束:

  • 10 秒
  • 40 秒
  • 160 秒
  • 640 秒
  • 2560 秒
  • 10240 秒
  • 40960 秒