> ## Documentation Index
> Fetch the complete documentation index at: https://waffo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 拒付与争议 FAQ

> 商户关于拒付最常见问题的解答：通知如何送达、拒付发生时该做什么、如何提交抗辩证据、期限与状态流转，以及为什么争议中的订单不能退款。

本页回答商户关于拒付和争议最常问的问题。字段级契约见
[拒付 API 规范](/docs/api-reference/introduction)。

## 发生拒付时我是怎么收到通知的？

Waffo 会向你提供的 `notifyURL` 推送一条Webhook 通知（`eventType: CHARGEBACK_NOTIFICATION`）。消息体携带完整的拒付对象——
与 `/api/v1/chargeback/inquiry` 返回的结构相同。

* 每当拒付**状态变化**时都会发送通知；`UNDER_REVIEW` 不发送通知。
* 处理完成后请返回 `message: "success"`。如果 Waffo 收到 `failed` 或 `unknown`，Waffo 会按固定的退避计划重试通知；
  尝试次数和间隔见[Webhook 通知重试](/docs/zh/developer-docs/webhook/retry)。

你也可以轮询 `/api/v1/chargeback/list`（按状态或 `lifeCycle` 筛选；时间窗口按创建时间筛选且必须在 3 个月以内），
并通过 `/api/v1/chargeback/inquiry` 获取完整详情——包括 `message` 和 `evidence`。

## 拒付创建时我的资金会怎样？

拒付 `amount` 和拒付手续费（`feeAmount`）在拒付**创建**时扣除，而不是在结案时。如果案件之后以对你有利的方式结案
（`CASE_WON`、`CANCELED`、`SETTLED`），金额会退回，手续费不退。当案件升级到第二周期时，在第二周期案件开启时会再扣一笔
手续费；并且由于第二周期通常紧随一个你**赢了**的第一周期（金额已经退还给你），争议金额会为第二周期**再次**扣除。
只有当第一周期不是以对你有利的方式结案时，第二周期的扣款才仅限于手续费。

## 我已经全额退款了，为什么还是被拒付？

退款并不能使订单免于拒付流程。发卡行看不到你已经通过 Waffo 给用户退了款，所以案件会作为正常拒付继续进行。
如果抗辩最终失败，你将同时承担退款金额、拒付金额和拒付手续费。

这类案件通常非常适合抗辩：提交你的退款确认作为证据，而不是接受该案件。

## 案件升级到第二周期（预仲裁）时会发生什么？

预仲裁是你赢下第一周期后发卡行的后续动作：发卡行拒绝你的抗辩结果并再次要求资金。第二周期案件开启时，会再扣一笔拒付
处理费——它遵循与第一周期相同的合约手续费规则——而在你赢下第一周期时退还给你的争议金额也会被再次扣除。如果发卡行
接受你的抗辩（`CASE_WON`），争议金额会退回。

你有两个选择：

* **接受**——放弃该案件；资金归持卡人。这是最常见的选择，用于避免仲裁费用。
* **抗辩**——如果发卡行仍不让步，案件升级为**仲裁**，即卡组织的最终且有约束力的裁决。在这个阶段你不能提交任何新材料，
  败诉方需承担高额仲裁费。大多数卡组织也不允许在预仲裁中提交第一周期未提交过的证据。

## 拒付扣款什么时候出现在我的结算里？

拒付结算始终在**原支付订单结算之后**触发，因为它复用原订单的结算汇率：

* 如果原订单已经结算，拒付在案件事件确认后的下一个结算日结算。
* 如果原订单尚未结算，拒付在原订单的结算日与原订单一起结算。

在你的结算报表中，这些条目的交易类型为 `CHARGEBACK`；结算金额可以为负（案件开启时的扣款）或为正（案件胜诉时的退还）。

## 拒付手续费是怎么确定的？

拒付手续费来自你的商户合约，按商户账户（MID）配置。案件创建时自动收取，不能逐案调整；预仲裁（第二周期）案件使用与
第一周期拒付相同的手续费规则。手续费是合约条款，不是逐案设置——请联系你的 Waffo 客户经理讨论。

## 收到拒付后我该做什么？

1. 从通知（或 `/api/v1/chargeback/inquiry`）中读取 `chargebackStatus`、`reasonCode`、`reason` 和 `expiryDateTime`。
2. 决定：用证据**抗辩**该案件，还是通过 `/api/v1/chargeback/accept` **接受**它。
3. 如果抗辩，请在 `expiryDateTime` 之前提交证据（见下文）。如果截止时间前没有提交证据，案件变为 `EXPIRED`，资金不予退回。

接受是**不可逆的**：案件关闭，你得不到退款，也不能再提交任何证据。在案件等待你处理时——`EVIDENCE_REQUIRED`、
`ACTION_REQUIRED` 或 `SECOND_CYCLE_RESPONSE_REQUIRED`——可以调用接受；一旦案件进入终态则会被拒绝；不会有额外扣款，
因为金额在案件创建时已经入账。

关于时间的说明：拒付金额和手续费在案件创建时就记在你账上，但资金随你的下一个结算周期流动，而不是即时流动。
你的结算对账单是核对它们的地方。

## 我怎么提交抗辩证据？

对于处于 `ACTION_REQUIRED` 的第一周期案件：

1. 使用 `/api/v1/chargeback/file/upload` 上传每个证据文件（`multipart/form-data`，part 名为 `file`；JPG、JPEG、PNG 或 PDF；
   最大 10 MB）。响应返回一个 `fileId`——它包含斜杠，作为查询参数使用时请进行 URL 编码。
2. 调用 `/api/v1/chargeback/update`，在 `message.documents` 或 `evidence.othersFile` 中传入文件 ID（逗号分隔）。
   至少需要一个证据文件。重复提交某字段会替换其先前的值；未传的字段保持不变。
3. 成功后状态变为 `UNDER_REVIEW`——这表示 Waffo 已接受提交并转交支付渠道；这**不是**渠道的裁决。

对于处于 `SECOND_CYCLE_RESPONSE_REQUIRED`（预仲裁）的第二周期案件，**不**接受证据文件：调用 `/api/v1/chargeback/update`
并传 `merchantId` 和 `chargebackId`（可选传 `message.notes` 作为抗辩说明）进行抗辩，或接受该案件。`expiryDateTime` 之后的
update 调用会被拒绝。文件上传和下载 API 仅通过 `X-API-KEY` 认证，不参与 RSA 签名。

## 针对不同的争议原因我应该准备什么证据？

无论原因码是什么，有效的抗辩证据都要回答三个问题：

| 维度 | 问题 | 典型证据 |
| - | - | - |
| 交易真实性 | 交易是否真实发生？ | 授权结果、设备 / IP 信息、账户活动 |
| 履约 | 产品或服务是否已交付？ | 交付确认、使用或访问日志、发票 / 收据 |
| 政策合规 | 退款和取消是否按你公布的政策处理？ | 收银台展示的政策、用户的确认、沟通记录 |

每个案件都带有一份根据其争议原因生成的**证据要求**列表，标明各项为必需或建议。缺少必需项的提交会被阻止，
所以上传前请先查看该列表。

## 拒付有哪些状态？

| 状态 | 含义 | 资金 |
| - | - | - |
| `ACTION_REQUIRED` | 在 `expiryDateTime` 前提交证据 | 金额和手续费记在你账上 |
| `UNDER_REVIEW` | 证据已提交，渠道审核中 | — |
| `EVIDENCE_REQUIRED` | 渠道审核后要求补充证据 | — |
| `SECOND_CYCLE_RESPONSE_REQUIRED` | 预仲裁：抗辩或接受；不接受证据文件 | 扣除手续费；如果第一周期已胜诉，金额再次扣除 |
| `ESCALATE_TO_2ND_CYCLE` | 已升级到第二周期 | 不再扣款 |
| `CASE_WON` | 渠道裁定对你有利 | 金额退回，手续费不退 |
| `CANCELED` | 渠道或持卡人撤回 | 金额退回，手续费不退 |
| `SETTLED` | 线下和解 | 金额退回，手续费不退 |
| `CASE_LOST` | 渠道裁定对你不利 | 不退回 |
| `ACCEPTED` | 你接受了拒付 | 不退回 |
| `EXPIRED` | `expiryDateTime` 前没有证据 | 不退回 |

一个争议有两轮，由 `lifeCycle` 跟踪：`FIRST_CYCLE` 和 `SECOND_CYCLE`（预仲裁）；两个案件通过 `relevantChargebackId` 关联。
`CASE_LOST`、`ACCEPTED` 和 `EXPIRED` 并非绝对终态：它们改变的唯一途径是发卡行将案件升级到第二周期。`CASE_WON`、`CANCELED`、
`SETTLED` 和 `ESCALATE_TO_2ND_CYCLE` 永不改变。请始终以最新一条通知为准。

## 提交证据的截止时间是什么？

每个案件都带有自己的 `expiryDateTime`（ISO 8601，UTC）。没有统一固定的窗口——请逐案读取。`expiryDateTime` 之后的提交
会被拒绝，届时没有证据的案件变为 `EXPIRED`。

## 有拒付争议的订单我能退款吗？

不能。对存在拒付争议的订单发起的退款请求会被拒绝，错误码 `A0019`（"Refund not allowed due to a chargeback dispute"）——见
[错误码](/docs/zh/developer-docs/tools-and-references/developer-tools/error-codes)。争议金额是否退回由拒付流程本身决定。

## Waffo 会发拒付汇总邮件吗？

会——两封每日邮件，没有月报：

* **前一日争议报告**——仅在前一天有新案件记录时发送；某天没有邮件只是表示没有新记录。附件分为两个列表：**Customer Disputes**
  和 **Chargebacks**。如果你已开通拒付预警服务，报告还包含一份预警列表，含每条预警的退款状态和过期时间。
* **每日数量报告**——当天的拒付预警、拒付和客户争议数量，附 Portal 链接。

两者发送给相同的收件人——见下文*争议通知发到哪个邮箱？*

## 拒付预警自动为订单退款时我会怎么收到通知？

如果预警服务已经为某订单退款，你对同一订单提交的退款会被拒绝并返回 `A0039`——这是提示你去检查该订单而不是重试的信号。

你的账户是否收到预警通知、以何种形式收到，取决于拒付预警为你配置的方式；在据此开发之前请先与对接支持确认细节。
一致不变的是其下游影响：当预警关联到一个订阅时，Waffo 可以自动取消该订阅——见下一个问题。

如果自动退款失败，Waffo 会人工处理该案件，如果仍无法完成会联系你；未解决的预警可能演变为正式拒付。

## 拒付或欺诈信号能自动取消用户的订阅吗？

可以，作为一项可选开通的能力——请联系 Waffo 开启。它按商户账户和信号类型（拒付预警、拒付、欺诈报告、客户争议）配置，
**默认关闭**。

开启后，Waffo 在信号记录的同时自动取消受影响的订阅，无需等你调用取消 API：

* 只取消争议涉及的那个订阅——用户的其他订阅不受影响。
* 已收取的款项不会自动退款；该能力只停止未来的扣款。
* 取消是最终的，不能撤销。
* 你自己发起的商户退款绝不会触发它。

通知按顺序到达：对于预警和拒付信号，你先收到常规的拒付通知，然后收到一条 `SUBSCRIPTION_STATUS_NOTIFICATION`，
其状态表明订阅已被平台取消（`PLATFORM_CANCELLED`），并带有指明触发信号的 `cancelReason`。

## 我的结算账单上有一行 Chargeback Alert，这是什么？

拒付预警服务费作为独立的交易类型 **Chargeback Alert** 清算。当期尚未结算的预警费用会与你的 `PAYMENT`、`REFUND` 和
`CHARGEBACK` 行一起进入清算，同时出现在结算明细报表和汇总报表中，并从结算金额中扣除。如果费用以非结算币种计费，
会先换算成结算币种再扣除。

预警费用也计入决定是否发生结算的净额检验：某一期的预警费用和拒付超过其入账支付时，该期不结算任何金额并结转到下一期——
见[结算周期与日历](/docs/zh/support/settlement-cycle-faq)。

## 为什么我已经退款的订单还被收了预警费？

因为每条可计费的预警在送达并匹配到订单后就会计费。计费反映的是送达，而不是预警是否真的阻止了拒付——所以即使根本不可能
发生拒付，预警也可能被计费：

| 情形 | 预警费 | 拒付手续费 |
| - | - | - |
| 预警到达，并据此对订单退款 | 收取 | — |
| 预警到达前你已经对订单退款 | 收取 | — |
| 原交易已失败，因此不可能发生拒付 | 收取 | — |
| 预警在订单已经进入拒付之后到达 | 收取 | 同样收取 |
| 未采取行动，案件变成了拒付 | 收取 | 同样收取 |
| 预警无法匹配到 Waffo 中的任何订单 | 不收取 | — |

最后一行是按规则唯一免费的情形。当一个预警案件最终也进入拒付时，预警费和拒付手续费都需支付——它们是针对不同事件的
不同收费。

## 预警触发的退款我在哪里能看到？

在你这边它就是一笔普通退款。它走正常的退款流程清算，在你的交易记录和结算报表中作为常规 `REFUND` 行出现，没有任何标记
表明它由预警发起——你无法（也不需要）把它与你自己提交的退款区分开。

一旦订单已通过预警流程退款，Waffo 会确保同一订单不会再产生拒付。这就是为什么你对这类订单的退款请求会返回 `A0039`：
钱已经退回给持卡人了。

## 争议通知发到哪个邮箱？

客户争议、拒付和拒付预警邮件——新争议通知以及两封每日报告——发送给你商户账户下持有 **Super Admin**、**Admin** 或
**Dispute Manager** 角色的 Portal 用户。没有单独的收件人列表：要添加、替换或移除收件人（例如你的争议处理人变更时），
请在 Portal 的用户管理中将该人添加为持有上述角色之一的 Portal 用户，或更改其角色。如果没有人持有这些角色，邮件不会发送。

## 客户争议和拒付有什么区别？

它们是两种不同的案件类型，不是同一事物的两个名称。每条争议记录都带有 `disputeType`，取值为 `CUSTOMER_DISPUTE` 或
`CHARGEBACK`，两种类型有各自的状态集合、对你资金的各自影响以及 Portal 中各自的菜单——**Customer Disputes** 和 **Chargebacks**
是两个独立的列表，打开的是共用的详情页。

| | 客户争议 | 拒付 |
| - | - | - |
| 是什么 | 客户对该支付提出投诉，等待你的回应 | 发卡方正式撤销了该支付 |
| 状态集合 | `EVIDENCE_REQUIRED` / `UNDER_REVIEW` / `ESCALATED` / `CLOSED` | `ACTION_REQUIRED` … `CASE_WON` / `CASE_LOST` 等（见上面的状态表） |
| 对资金的影响 | 本身没有——案件不会在你账上记录金额或手续费 | 案件创建时记录金额和手续费 |
| 还能给订单退款吗？ | **能**——客户争议不锁定退款，退款往往正是解决案件的方式 | 不能——退款被拒绝并返回 `A0019` |
| Webhook 通知 | 无——`CHARGEBACK_NOTIFICATION` 只针对拒付发送 | 有，每次状态变化都发送 |
| API 可见性 | 不会由 `/api/v1/chargeback/list` 或 `/inquiry` 返回——它们只过滤出拒付 | 是 |
| 在哪里看到 | Portal **Customer Disputes**，以及争议报告的 Customer Disputes 附件 | Portal **Chargebacks**、Webhook 通知、拒付 API、结算报表 |

实际影响：客户争议是一场你仍可以通过商业方式解决的对话，并且它不产生Webhook 通知——所以如果你只依赖Webhook 通知，你永远不会
知道它的存在。请关注 Portal 列表（标签页带有数量角标）或每日争议报告。

## 客户争议是怎么推进的？每一步我能做什么？

| 状态 | 含义 | 你能做什么 |
| - | - | - |
| `EVIDENCE_REQUIRED` | 案件已开启，或渠道要求更多材料。`ACTION_REQUIRED` 含义相同——两者都表示需要你回应 | 提交证据、回复或关闭争议 |
| `UNDER_REVIEW` | 你已提交证据，正在审核中 | 回复；如需更多材料，你仍可能被退回 `EVIDENCE_REQUIRED` |
| `ESCALATED` | 同一支付上发起了拒付——案件作为该拒付继续 | 该记录不再有状态变化；转而处理拒付 |
| `CLOSED` | 案件已结束，由你或渠道关闭 | 无，除非客户再次投诉 |

由状态机推出的注意事项：

* \*\*提交证据至少需要一个文件。\*\*提交会把案件移到 `UNDER_REVIEW`；证据只能在案件处于 `EVIDENCE_REQUIRED` 或 `UNDER_REVIEW`
  时编辑。
* **关闭仅在 `EVIDENCE_REQUIRED` 或 `UNDER_REVIEW` 状态下可用**，并记录为由商户关闭。`ESCALATED` 的案件不能关闭。
* \*\*`CLOSED` 的客户争议可以重新打开。\*\*如果客户再次投诉，案件回到 `UNDER_REVIEW`，而不是作为新争议重新开始。
* \*\*升级只在案件开启期间发生。\*\*如果一笔支付的客户争议仍开启时到达了拒付，该争议翻转为 `ESCALATED`，拒付记录通过
  `relevantCustomerDisputeId` 关联回它。已经 `CLOSED` 的争议不受影响。
* \*\*过期行为与拒付不同。\*\*客户争议超过证据截止时间只会把独立的 **Expire Status** 列从 `ACTIVE` 翻转为 `EXPIRED`；
  争议状态不变，案件仍可处理。而在拒付中，截止时间会把案件本身变为 `EXPIRED`，金额不予退回。

在支付方式支持的情况下，详情页还提供**回复消息**——一条可附带附件的自由文本回复，进入争议对话而不改变状态，
并有一个来自客户方消息的未读计数。

## 我能自动回复重复性的客户争议吗？

可以，按支付方式，在 Customer Disputes 页面的 **Dispute Config** 标签页配置。当客户的投诉在第一轮被记录时，Waffo 会代你
把配置好的消息作为第一条回复发出——通常用于在你处理案件期间把客户引导到你的支持渠道。

该标签页仅对签约支付方式支持争议回复的账户以及持有自动回复权限的用户显示；**如果你能看到该标签页，说明该功能对你可用。**
自动回复仅覆盖客户争议，绝不覆盖拒付。

规则如何匹配和运作：

* \*\*唯一的匹配维度是原订单的支付方式。\*\*不按争议原因、金额或客户匹配。每条规则旁显示的币种由支付方式推导得出，仅供参考——
  它不是第二个匹配键。
* \*\*每个支付方式一条规则。\*\*为同一支付方式创建第二条规则会被拒绝，规则创建后支付方式不能更改——请改为编辑消息或状态。
* \*\*下拉框只提供你已签约且支持争议回复的支付方式。\*\*列表中没有的支付方式无法配置。
* \*\*只有 Active 的规则会触发。\*\*没有删除操作：把规则设为 **Inactive** 即可停止。
* 回复不改变争议状态，也不算作证据提交——你仍然需要提交证据或关闭案件。

字段与历史：一条规则包含 `paymentMethodId`（显示为 **Apply to**）、`messageContent`（最多 256 个字符）和 `status`
（Active / Inactive）。Dispute Config 列表就是配置历史——你账户下的每条规则，按最新优先排列，含其支付方式、币种、消息、
状态和创建时间，每条都可就地编辑。这些规则只能在 Portal 的 Dispute Config 标签页创建、编辑和开关；没有用于自动回复配置的
签名公开 API。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.