开发文档

重发已确认订单的付款通知

修复接收端后,为 CONFIRMED 或 COMPLETED 订单补发通知。任务入队、通知送达与业务交付是三个不同环节。

POST /api/v1/webhooks/resend

请求鉴权

请求必须包含 X-Bolt-Key、X-Bolt-Timestamp 和 X-Bolt-Signature。请使用当前毫秒时间戳,并对时间戳与请求体原文生成签名。

使用场景与调用条件

当您的系统需要再次接收已确认订单的付款结果时,可调用此接口补发 Webhook。重发不会重新收款、核对转账或创建订单。

仅支持当前商户状态为 CONFIRMED 或 COMPLETED 的订单;PENDING、PAID 等状态不能重发。

必须存在可用且已启用的 Webhook 配置。没有成功保存投递任务时,接口返回错误,不会返回 QUEUED。

01. 请求参数

application/json
externalOrderId必填
String

传入创建订单时使用的商户订单号 externalOrderId,不要传 orderToken。仅可重发当前 API Key 所属商户的订单通知。

填写示例

{"externalOrderId": "INV-20260209-99281"}

必填字符串,6–64 字符;支持字母、数字、下划线(_)和连字符(-)。

Body

02. 响应字段(data)

application/json
notifyUrlString
订单记录的回调地址,可能为 null。实际投递优先使用订单地址;旧订单未记录地址时使用对应 Webhook 配置的地址。
externalOrderIdString
本次重发通知关联的商户订单号,与请求中的 externalOrderId 一致。
triggerTypeEnum
此接口响应固定为 MANUAL,表示本次由商户主动请求重发;不是付款结算类型。
statusEnum
重发请求状态,成功时为 QUEUED,表示任务已保存。它不是订单付款状态,也不代表已投递成功。

QUEUED 表示投递任务已保存,等待异步发送,不代表回调已送达。请在商户后台查看投递记录,确认接收端是否返回 HTTP 2xx。

🚀
接收端注意事项

收到回调后,先验证 X-Bolt-Webhook-Timestamp 与 X-Bolt-Webhook-Signature,再根据 eventId 或商户订单号防止重复交付。已成功处理的重复通知也应返回 HTTP 2xx。

  • triggerType: MANUAL 出现在重发接口响应和后台投递记录中;当前发送给商户的 Webhook 请求体不包含 triggerType,请勿依赖该字段识别重发。
  • 每次成功调用都会创建独立投递任务,重复请求可能产生多次通知。请先查看投递记录,避免连续重复调用;重发沿用同一逻辑事件的 eventId。
  • 重发沿用订单关联的回调地址,不支持通过此接口指定新地址。修改后台默认地址不会替换订单中已保存的回调地址。
Safe

常见错误

以下为常见情况,实际以 HTTP 状态码和响应中的 code、message 为准。错误响应不是付款结果;请求失败时请先定位原因。

  • 401:检查 API Key、原始正文签名以及当前毫秒时间戳;与服务器时间差不能超过 5 分钟。
  • 404:订单不存在,或不属于当前商户、超出当前套餐可查询范围。
  • 400:订单不是 CONFIRMED / COMPLETED,或没有可用的 Webhook 配置与成功保存的投递任务。
resend / cURL
# Run against your account only when ready; this sends an API request.
: "${BOLTUTIL_API_KEY:?Set your complete API Key}"
: "${BOLTUTIL_WEBHOOK_SECRET:?Set your Webhook secret}"
timestamp=$(python3 -c 'import time; print(int(time.time()*1000))')
body='{"externalOrderId":"INV-20260209-99281"}'
signature=$(printf '%s.%s' "$timestamp" "$body" | openssl dgst -sha256 -hmac "$BOLTUTIL_WEBHOOK_SECRET" | awk '{print $NF}')

curl --request POST "https://api.boltutil.com/api/v1/webhooks/resend" \
  --header 'Content-Type: application/json' \
  --header "X-Bolt-Key: $BOLTUTIL_API_KEY" \
  --header "X-Bolt-Timestamp: $timestamp" \
  --header "X-Bolt-Signature: $signature" \
  --data-binary "$body"

地址、交易哈希及订单均为示例。请替换为您自己的测试数据。

Base URL

PROD
https://api.boltutil.com