Skip to main content
本页回答商户关于拒付和争议最常问的问题。字段级契约见 拒付 API 规范。

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

Waffo 会向你提供的 notifyURL 推送一条Webhook 通知(eventType: CHARGEBACK_NOTIFICATION)。消息体携带完整的拒付对象—— 与 /api/v1/chargeback/inquiry 返回的结构相同。
  • 每当拒付状态变化时都会发送通知;UNDER_REVIEW 不发送通知。
  • 处理完成后请返回 message: "success"。如果 Waffo 收到 failed 或 unknown,Waffo 会按固定的退避计划重试通知; 尝试次数和间隔见Webhook 通知重试。
你也可以轮询 /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 签名。

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

无论原因码是什么,有效的抗辩证据都要回答三个问题: 每个案件都带有一份根据其争议原因生成的证据要求列表,标明各项为必需或建议。缺少必需项的提交会被阻止, 所以上传前请先查看该列表。

拒付有哪些状态?

一个争议有两轮,由 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”)——见 错误码。争议金额是否退回由拒付流程本身决定。

Waffo 会发拒付汇总邮件吗?

会——两封每日邮件,没有月报:
  • 前一日争议报告——仅在前一天有新案件记录时发送;某天没有邮件只是表示没有新记录。附件分为两个列表:Customer Disputes 和 Chargebacks。如果你已开通拒付预警服务,报告还包含一份预警列表,含每条预警的退款状态和过期时间。
  • 每日数量报告——当天的拒付预警、拒付和客户争议数量,附 Portal 链接。
两者发送给相同的收件人——见下文争议通知发到哪个邮箱?

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

如果预警服务已经为某订单退款,你对同一订单提交的退款会被拒绝并返回 A0039——这是提示你去检查该订单而不是重试的信号。 你的账户是否收到预警通知、以何种形式收到,取决于拒付预警为你配置的方式;在据此开发之前请先与对接支持确认细节。 一致不变的是其下游影响:当预警关联到一个订阅时,Waffo 可以自动取消该订阅——见下一个问题。 如果自动退款失败,Waffo 会人工处理该案件,如果仍无法完成会联系你;未解决的预警可能演变为正式拒付。

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

可以,作为一项可选开通的能力——请联系 Waffo 开启。它按商户账户和信号类型(拒付预警、拒付、欺诈报告、客户争议)配置, 默认关闭。 开启后,Waffo 在信号记录的同时自动取消受影响的订阅,无需等你调用取消 API:
  • 只取消争议涉及的那个订阅——用户的其他订阅不受影响。
  • 已收取的款项不会自动退款;该能力只停止未来的扣款。
  • 取消是最终的,不能撤销。
  • 你自己发起的商户退款绝不会触发它。
通知按顺序到达:对于预警和拒付信号,你先收到常规的拒付通知,然后收到一条 SUBSCRIPTION_STATUS_NOTIFICATION, 其状态表明订阅已被平台取消(PLATFORM_CANCELLED),并带有指明触发信号的 cancelReason。

我的结算账单上有一行 Chargeback Alert,这是什么?

拒付预警服务费作为独立的交易类型 Chargeback Alert 清算。当期尚未结算的预警费用会与你的 PAYMENT、REFUND 和 CHARGEBACK 行一起进入清算,同时出现在结算明细报表和汇总报表中,并从结算金额中扣除。如果费用以非结算币种计费, 会先换算成结算币种再扣除。 预警费用也计入决定是否发生结算的净额检验:某一期的预警费用和拒付超过其入账支付时,该期不结算任何金额并结转到下一期—— 见结算周期与日历。

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

因为每条可计费的预警在送达并匹配到订单后就会计费。计费反映的是送达,而不是预警是否真的阻止了拒付——所以即使根本不可能 发生拒付,预警也可能被计费: 最后一行是按规则唯一免费的情形。当一个预警案件最终也进入拒付时,预警费和拒付手续费都需支付——它们是针对不同事件的 不同收费。

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

在你这边它就是一笔普通退款。它走正常的退款流程清算,在你的交易记录和结算报表中作为常规 REFUND 行出现,没有任何标记 表明它由预警发起——你无法(也不需要)把它与你自己提交的退款区分开。 一旦订单已通过预警流程退款,Waffo 会确保同一订单不会再产生拒付。这就是为什么你对这类订单的退款请求会返回 A0039: 钱已经退回给持卡人了。

争议通知发到哪个邮箱?

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

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

它们是两种不同的案件类型,不是同一事物的两个名称。每条争议记录都带有 disputeType,取值为 CUSTOMER_DISPUTE 或 CHARGEBACK,两种类型有各自的状态集合、对你资金的各自影响以及 Portal 中各自的菜单——Customer Disputes 和 Chargebacks 是两个独立的列表,打开的是共用的详情页。 实际影响:客户争议是一场你仍可以通过商业方式解决的对话,并且它不产生Webhook 通知——所以如果你只依赖Webhook 通知,你永远不会 知道它的存在。请关注 Portal 列表(标签页带有数量角标)或每日争议报告。

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

由状态机推出的注意事项:
  • **提交证据至少需要一个文件。**提交会把案件移到 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。