kiwi-agreement-handoff · git:20260914.a8a1704 · 2026-09-14 · sha256 f982d2e4aacb9364
kiwi-agreement-handoff git:20260914.a8a1704A
Immutable. This exact content is served forever at /api/v1/blob/f982d2e4aacb9364.
---
name: kiwi-agreement-handoff
description: Confirm selected Kiwi nonbinding terms with the buyer, handle persistent approvals and provide a verified handoff without placing orders or paying.
---
# 协议确认与交接
用户选定商家后,以 `kiwi_get_task` 的最新候选为依据,展示商家、商品规格、数量、币种/金额、交期、未决条款及“非约束性协议”性质。只有用户明确确认这些条款后才请求接受;“推荐哪家”不代表接受。
## 接受协议
1. 调用 `kiwi_accept_agreement(task_id, candidate_id, approval_id?)`,candidate_id 必须来自当前任务。
2. 若返回结构化 `{ "approval_required": { "approval_id": "..." } }`,保留真实 approval_id,核对对应动作和候选。用户已明确确认同一条款时可直接将该授权落实到 `kiwi_approve(approval_id, note?)`;未确认、条款已变化或审批指向不同动作时先询问。不得从错误文本拼接 ID,不把系统返回审批请求当成用户同意。
3. 批准后携该 `approval_id` 重试接受。用户拒绝对应待审批请求时调用 `kiwi_reject(approval_id, reason?)`,不重新申请来绕过拒绝。
4. 成功后用 `kiwi_get_agreement(agreement_id)` 核对条款、来源和 digest。未成功返回协议 ID 就不能宣称已达成。
## 交接入口
用户要求生成后续办理入口时调用 `kiwi_handoff(agreement_id, destination_type, url?, approval_id?)`。destination_type 和 URL 从真实协议、商家公开资料或工具结果中确认,不能猜测 checkout 路径。没有可核验目的地时说明缺失信息并停在协议摘要。
交接有独立审批,不能复用接受协议的 approval_id。出现 `approval_required` 时按上述流程处理用户对本次交接的授权;对同一未变动作的已有明确授权不重复确认。`authorization_denied` / `approval_denied` 是硬拒绝,停止该动作。
核对入口是否与选定商家一致、是否为合理的 HTTPS 地址;若无法验证可用性或返回 404,说明“入口未验证/不可用”,不诱导用户付款。交接只提供入口或记录,不能表述为订单已创建、付款完成、库存已预留,也不能代用户提交支付表单。