Webhook
接收 Agent Payments 的支付、资源、审批和熔断状态事件。
Agent Payments 的状态变化会与业务事务一起写入事务发件箱,再通过 StableOps 的签名 Webhook 管道投递。投递支持自动重试、端点并发限制、人工重放和死信处理。
配置端点
前往 Agent Payments Webhook 管理创建端点、轮换签名密钥、查看投递记录,以及重放失败或进入死信的投递。
在这里创建的端点会接收 agent_payment.* 事件。沙盒与正式环境需要分别配置。
两条状态轴
一笔 Agent 支付同时维护两类状态:
payment_status:策略、审批、授权和链上结算状态。resource_status:付费 HTTP 请求是否收到可靠响应。
资源请求成功不等于链上已经结算。链上结算成功也不保证 Agent 收到了资源响应。履约、重试和人工对账必须同时查看
payment_status 与 resource_status。事件类型
| 类别 | 事件 |
|---|---|
| Intent | agent_payment.intent.created、agent_payment.intent.awaiting_approval |
| 审批 | agent_payment.approval.approved、agent_payment.approval.rejected、agent_payment.approval.expired |
| 授权 | agent_payment.authorization.issued、agent_payment.authorization.expired |
| 结算 | agent_payment.settlement.unknown、agent_payment.settlement.settled、agent_payment.settlement.reverted |
| 资源 | agent_payment.resource.succeeded、agent_payment.resource.failed、agent_payment.resource.unknown |
| 熔断 | agent_payment.agent.paused、agent_payment.organization.paused |
settlement.unknown 表示付款请求可能已经送达结算服务,但当前证据不足以确认结果。此时只能查询和对账原 Intent,不能创建新 Intent 或新授权重付。
载荷结构
普通支付事件使用版本化信封:
{
"id": "7b91729e-41d0-4f9f-8dd1-6eea06a5764d",
"type": "agent_payment.settlement.settled",
"version": "1",
"occurred_at": "2026-08-05T08:00:00.000Z",
"data": {
"organization_id": "org_...",
"environment": "sandbox",
"agent_id": "agent_...",
"intent_id": "pint_...",
"payment_status": "settled",
"resource_status": "response_received",
"amount_atomic": "1000",
"asset": "USDC",
"asset_contract": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"asset_decimals": 6,
"network": "eip155:84532",
"origin": "https://resource.example.com",
"pay_to": "0x...",
"approval_id": null,
"authorization_id": "pauth_...",
"receipt_id": "receipt_..."
}
}暂停事件只包含其适用的组织、环境、Agent 或暂停原因。任何载荷都不会包含 Agent Key、执行授权原文、完整支付签名、私钥或收费资源响应正文。
完整的版本化信封、全部事件名、字段类型、必填与可空字段,以及三类载荷变体,见 Agent Payments Webhook API 参考。
安全处理规则
- 使用原始请求体校验 Webhook 签名,验签成功后再解析 JSON。
- 以顶层
id建唯一索引去重。自动重试和人工重放都可能重复投递同一事件。 - 先把事件持久化,再尽快返回
2xx。耗时业务处理放到自己的队列中。 - 不假设跨事件严格有序。需要执行不可逆操作前,用
management.payments.get(intentId)查询当前状态。 - 收到
settlement.unknown、settlement.reverted或任一暂停事件时触发告警和人工核对,不要自动重付。
端点创建、原始请求体验签、密钥轮换、重试时序和死信重放见 Webhook 通用文档。
这篇文档怎么样?
最后更新