接收和获取争议

在本节中,您可以了解:

当客户开启争议时,Afterpay 将调用带有 webhook_event_type = created 的 webhook。 商户可以使用下面的获取争议端点获取争议的详细信息。

接收争议

获取争议 - 端点

GET https://{afterpay_global_url}/v2/disputes/{dispute_id}

连接超时

超时类型时间(秒)
OPEN10
Read 20

请求头

头部类型示例
User-AgentStringMyAfterpayModule/1.0.0 (E-Commerce Platform Name/1.0.0; PHP/7.0.0; Merchant/60032000) https://merchant.example.com
头部类型默认值
AcceptStringapplication/json

请求参数

字段名称数据类型描述
dispute_id String(必需)争议标识符

响应

字段名称数据类型描述
disputeDisputeObject更新的争议对象

争议对象

字段名称数据类型描述
idString争议标识符
orderString争议所针对的订单令牌
amountString争议金额(示例:40.13)
currencyString争议货币(ISO-4217 标准,示例:AUD)
reasonString争议原因。请参见下面的争议原因部分建议。
statusString争议的当前状态。值取决于争议状态机的建模方式。请参见下面的争议状态部分建议。
openBoolean如果尚未对争议做出最终决定,则为 True
responseDueBy时间戳商户必须对此争议作出响应的截止日期。(以秒为单位的纪元时间戳,时区:UTC +0:00)
createdAt时间戳表示争议创建时间的时间戳。(以秒为单位的纪元时间戳,时区:UTC +0:00)
openingNoteString客户描述开启争议原因或投诉原因的文本。虽然争议类别代码有助于告知商户应该提供什么,但它不提供客户投诉背后的原因。在某些情况下,这可以帮助商户直接与客户解决争议。
openingNoteAttachmentsFileId补充 openingNote 的附件。如果客户在描述争议原因时提供了照片或截图
updatedAt时间戳 (可选)争议更新的时间戳。(以秒为单位的纪元时间戳,时区:UTC +0:00)
closingReasonString表示如何达成争议最终决定的原因。建议的可能值列在下面的结束原因中。
closingNoteString (可选)详细描述如何达成争议最终决定的文本。这补充了 closingReason
merchantOrderIdString商户端的交易标识符。
transactionDate时间戳客户创建订单的时间戳。(以秒为单位的纪元时间戳,时区:UTC +0:00)
settlementAmountString用于审计的结算金额。
metaMetaObject (可选)供商户匹配支付的额外信息。

Meta 对象

字段名称数据类型描述
transactionAmountString订单的交易金额。
networkString (可选)客户使用的支付网络。(通常是 Visa 或 MasterCard)
networkReferenceIdString(可选)支付的标识符。(对于店内支付,此字段存在)
orderTypeString订单类型,应为 ONLINEINSTORE

争议对象示例

字段名称数据类型示例
idStringdp_N64jYg4RC4ZBUsXjLzE3W5
orderString123456789
amountString48.46
currencyStringAUD
reason Stringfraudulent
statusStringwon
openBooleanfalse
responseDueBy时间戳1691884800
createdAt时间戳1691884800
openingNoteStringCustomer has no knowledge of the Payment.
openingNoteAttachmentsFileId[“fi_48vmw3sXdVqvtJGXbgKbAZ”]
updatedAt时间戳 (可选)1691884800
closingReasonStringmerchant_accepted
closingNoteString (可选)Merchant accepted the dispute.
merchantOrderIdStringmerchantorderid12345
transactionDate时间戳1691884800
settlementAmountString48.46
metaMetaObject (可选)
"transactionAmount": "48.46",
"orderType":"ONLINE"

争议状态

Afterpay 支持以下争议状态:

我们在第一个版本中不支持 partially_won 状态,但计划在未来支持它。

状态描述
needs_responseAfterpay 已创建争议并通知商户,但商户尚未采取行动。
under_review商户已向 Afterpay 提交证据,目前正在审查中。
partially_won如果最终争议解决金额小于原始争议金额,则表示商户部分赢得争议。注意,这是一个终态。
won提交的证据被 Afterpay 接受,商户赢得争议。注意,这是一个终态。
lost提交的证据被 Afterpay 拒绝,商户失去争议。注意,这是一个终态。
merchant_refunded商户已发起退款。如果退款金额等于或大于争议金额,则这是一个终态。
merchant_voided商户已取消全部或部分订单。如果取消金额等于或大于争议金额,则这是一个终态。

争议窗口

Afterpay 将根据争议窗口时间框架更新争议状态并触发争议通知。以下是行使和辩护拒付的时间框架(以日历天为单位):

摘要描述
争议开启窗口可以开启争议的最大时间窗口(从交易日期起),超过此时间客户将无法发起争议。120 天
商户证据提交窗口从商户收到争议通知到最终提交证据的允许时间。13 天
Afterpay 决定窗口从提交证据时刻到 Afterpay 做出最终决定的允许时间。30 天

争议原因

当触发争议时,总会有一个争议原因。以下是争议 API 当前将响应和支持的争议原因:

Afterpay 的争议原因目前仅限于 product_not_received,我们计划在未来更新这一点。Cash App Pay 的争议系统已完全实施,包含所有原因,包括卡网络拒付。

商户端争议原因活动描述
product_not_receivedAfterpay / Cash App Pay客户声称他们没有收到购买的产品或服务。
product_unacceptableAfterpay (Q4 发布) / Cash App pay收到了产品或服务,但有缺陷、损坏或与描述不符。
credit_not_processedAfterpay (Q4 发布) / Cash App pay客户声称已退回购买的产品或交易已取消,但商户尚未提供退款或退款。
order_canceledCash App pay商品/服务已取消。
duplicateCash App pay客户声称他们被多次收取相同产品或服务的费用。
incorrect_amountCash App pay支付金额与约定金额不符。
paid_by_other_meansCash App pay客户通过其他支付方式支付。
fraudulentCash App pay客户声称他们没有授权支付。
fraudulent_merchantCash App pay客户对支付没有认知,且由于共谋、欺诈监控程序阈值或任何其他原因,责任已转移给商户。

结束原因

向商户显示表明如何达成争议最终决定的结束原因。以下是结束原因及其描述:

商户端结束原因描述
merchant_accepted商户接受了争议。
evidence_accepted商户提交的证据被接受,争议以商户胜诉结束。
evidence_rejected商户提交了证据但被拒绝,争议以客户胜诉结束。
deadline_expired商户未能为争议提交证据,提交窗口超时。争议以客户胜诉结束。
customer_cancelled客户撤回了争议,因此以商户胜诉结束。

获取争议

列出争议 - 端点

根据特定条件列出某个日期范围内的争议。如果您无法使用 webhook 方法,此端点可用于调试或从 Afterpay 同步争议。

GET https://{afterpay_global_url}/v2/disputes

连接超时

超时类型时间(秒)
OPEN10
Read 20

请求头

头部类型示例
User-AgentStringMyAfterpayModule/1.0.0 (E-Commerce Platform Name/1.0.0; PHP/7.0.0; Merchant/60032000) https://merchant.example.com
头部类型默认值
AcceptStringapplication/json

请求参数

字段名称数据类型描述
orderInteger可用于筛选列表的支付或订单令牌。
merchantString可用于筛选列表的商户令牌。
statusString可用于筛选列表的争议状态。
openedAfter时间戳筛选在此时间戳当天或之后创建的争议(包含)。
openedBefore时间戳筛选在此时间戳当天或之前创建的争议(包含)。
offsetInteger搜索结果的偏移量。示例:Offset = 0,limit = 10 意味着我们将显示前十个争议。Offset = 10,limit = 10 意味着我们将显示搜索结果中编号为 10-20 的争议。
limitInteger您希望从此请求返回的最大记录数。

响应

字段名称数据类型描述
dataArray (DisputeObject)符合请求中筛选条件的争议对象数组。
offsetInteger搜索结果的偏移量。示例:Offset = 0,limit = 10 意味着我们将显示前十个争议。Offset = 10,limit = 10 意味着我们将显示搜索结果中编号为 10-20 的争议。
limitInteger您希望从此请求返回的最大记录数。
totalInteger搜索条件中的总争议记录数。

响应示例

字段名称数据类型示例
dataArray (DisputeObject)见下面的数据示例代码
offsetInteger0
limitInteger1
totalInteger1

数据示例代码

1[
2 {
3 "id": "dp_N64jYg4RC4ZBUsXjLzE3W5",
4 "order": "12312312312",
5 "amount": "48.46",
6 "currency": "AUD",
7 "status": "won",
8 "reason": "fraudulent",
9 "open": false,
10 "responseDueBy": -1,
11 "openingNote": "Cash dispute: Customer has no knowledge of the Payment.",
12 "openingNoteAttachments": [],
13 "merchantOrderId": "12312312312",
14 "transactionDate": 1690836227,
15 "createdAt": 1691884800,
16 "updatedAt": 1692067909,
17 "meta": {
18 "transactionAmount": "48.46",
19 "orderType": "ONLINE"
20 }
21 }
22]