版本号 | 更新日期 | 描述 |
1.0.5 | 2025.09.03 | 1.【ETHOCA预警反馈】增加【refunded】字段的枚举值,目前为7种反馈状态:
refunded (已匹配到交易并退款)
ignore (已匹配到交易但不做处理)
notfound (未匹配到对应交易)
chargeback_beforealert(原交易预警前已拒付)
refunded_beforealert(原交易预警前已退款)
transaction_failed(原交易状态为失败)
duplicate_alert(重复预警) |
1.0.4 | 2025.08.12 | 1. 【ETHOCA预警通知】增加字段:descriptorRegister:注册时报送的descriptor
2. 【RDR预警通知】增加字段:descriptorRegister :注册时报送的descriptor |
1.0.3 | 2025.08.05 | 1. 【ETHOCA预警通知】增加字段:alertStatus: 预警状态
timeOut:反馈截止时间
reasonCode:拒付原因码
2. 【RDR预警通知】增加字段:
alertStatus: 预警状态
timeOut:反馈截止时间
reasonCode:拒付原因码
merchantOrderId: VISA返回的商户ID
outcome:预警结果: |
1.02 | 2025.05.24 | 新增
【3. 商户卡账单报备】
【4. 商户卡账单状态结果通知】
【5. 商户卡账单报备关闭】 |
1.0.1 | 2023.10.18 | 上线拒付预警系统 |
业务流程
Tips:
- 预警的拒付拦截效率
- Ethoca预警覆盖:M卡80% ;V卡20-30%;小卡种50%
- RDR预警覆盖:95%的VISA卡预警 (剩余5%原因是部分小众发卡行未完全覆盖以及卡组系统抖动)
- 支持同时开通两种服务,但存在一定比例的重复计费
- Ethoca和RDR预警同时开通后,约有10-15%的重复率
- ETHOCA预警和RDR预警的区别
- 覆盖面不同:Ethoca预警包含了Mastercard卡、VISA卡和部分小卡种,合作发卡行在5000家以上;RDR预警覆盖VISA卡,合作发卡行在1000家左右
- 退款处理方式不同:Ethoca预警,商户需要自行在收单平台自行做退款处理,RDR预警可以实现自动退款,商家无需自行处理退款
- 商户注册预警服务流程
- 商户登录跨拒通后台提交注册商户信息,ethoca需要提供descriptor,RDR需要提供descriptor、BIN、CAID、ARN(非必填但非常建议报送,用于卡组更快定位商户,缩短注册时间)。
- 请注意:如果您在上一家服务商已经使用了目前的商户号,请在上一家服务商完成商户退出后,跨拒通才能够向卡组注册成功。
- 跨拒通需要2-5天时间向卡组报备商户,报备完成后。跨拒通将通过系统和邮件通知商家报备成功,并开始向商家发送预警数据
- 商家可以通过接口或者通过跨拒通系统查看和反馈预警数据。ethoca预警需要商家反馈退款状态;RDR则直接自动执行退款无需商家操作
- 跨拒通将在发送预警时按笔计费
关于商户报送信息的解释和获取方式如下:
报送字段 | 字段解释 | 如何获取 |
Descriptor | Descriptor 是信用卡交易中客户账单上显示的描述信息,通常用于帮助客户识别这笔交易是从哪个商户发起的。 | • 由支付服务商、PF 或商户在接入收单时设置
• 在对账单上能看到这个字段(也叫 "statement descriptor")
• 也可在清算报文或交易响应中看到 |
BIN | BIN 是银行卡前 6 或 8 位号码,用于识别收单机构,有时一个收单方有多个 BIN(代表不同产品/服务线)。示例:430123 是某家银行的BIN,代表该该支付机构的商户通道 | • 向你的收单银行、支付网关或 PF 申请
• VISA PF 或收单方分配并备案在系统中 |
CAID | CAID 是 Card Acceptor ID,即“商户识别号”或“终端商户编号”,由收单银行或支付机构分配,用于在VISA网络中唯一标识一个商户实体。示例:123456789012345(长度通常为15位),某跨境电商的CAID:810000112233445
| • 由收单银行或第三方支付公司为每个商户分配
• 可通过商户的收单协议、商户管理平台(如VISA Portal、CyberSource、Adyen、Worldpay等)查看
• 在交易报文或清算报文中也会包含CAID字段 |
ARN | ARN 全称是 Acquirer Reference Number,即收单方参考号。
它是 VISA 系统为每一笔交易生成的唯一编号,用于在整个清算网络中追踪和识别该笔交易,无论是原始支付、退款、还是争议处理(包括RDR)。
特点是全球唯一,由 VISA 生成。用于追踪交易的生命周期(授权 → 清算 → 拒付 → RDR → 退款)。支付机构、收单银行、商户、VISA、发卡银行均可用其检索交易。
示例
12345678901234567890123
74843812345678901234567(常见为 23~24 位的纯数字)
| • 收单银行/支付机构 在交易清算完成后,收单方会生成并分配ARN,通常可在后台系统或清算对账单中获取。
• 商户平台/服务商系统 例如 Stripe、Adyen、PayPal、Worldpay 等支持通过API或后台查看ARN。
• 交易凭证/报文在清算报文(如 TC33 或 VisaNet settlement file)中查看 ARN 字段。 |
- Ethoca预警的交易匹配规则
目前Ethoca预警会存在约15%无法匹配交易的情况,这是由Ethoca机构本身造成的,并非跨拒通原因。建议商家接收到Ethoca预警后使用以下方式匹配交易:
优先级 | 匹配字段组合 | 匹配规则/注意事项 |
第一优先级 | 收单行参考编号 | 这是最精准的匹配方式。如果预警信息中提供了ARN,应优先使用此组合进行匹配。 |
第二优先级 | 卡号 + 交易金额 + 交易日期 | 如果没有ARN,搜索满足以下条件的:
1. 卡号前六位和后四位一致
2. 金额完全一致。
3. 日期必须完全一致。 |
第三优先级 | 卡号 + 交易金额 (近似) + 交易日期 (近似) | 如果仍然找不到结果时,可以放宽条件,搜索满足以下条件的:
1. 卡号前六位和后四位一致
2. 金额允许有小范围的浮动(例如 ±1-2%),因为可能存在货币转换差异。
3. 交易日期:前后 ±2天)。 |
安全和加密
我们将使用这些凭据来识别和授权使用拒先知 API服务。请通过 support@tradefensor.com 联系我们 以获取您的凭据
凭据列表
名称
描述
MerchantNo
将用于在使用 API 时识别您的身份并获取用于访问受限资源的授权令牌
SignKey
需要它来获取用于访问受限资源的授权令牌
接口参数
参数设置
- 通讯方式:
https+JSON
- 字符集:
UTF-8
- 加密方式:
MD5 Salt
Request Header
- 开始使用 API时,在请求 Header中设置以下属性
名称
描述
MerchantNo
必填,由跨拒通提供
SignKey
必需,加密 body内容字符串进行
Request Body
- Content Type
application/json
API 域名
- 生产环境:
https://mer.tradefensor.com
加密方式
- 加密:MD5
- 参与签名的参数按照ASCII码从小到大排序,将参数按固定顺序组装成签名原始串以“&”拼接,最后在拼接上商户密钥。签名的参数顺序和格式如下:key1=value1&key2=value2...keyn=valuen*****)
javaimport com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpException; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.*; public class TestSign { public static String sign(Map<String, Object> paramValues, String secret) { StringBuilder sb = new StringBuilder(); List<String> paramNames = new ArrayList<String>(paramValues.size()); paramNames.addAll(paramValues.keySet()); Collections.sort(paramNames); for (String key : paramNames) { Object value = paramValues.get(key); if (value == null || StringUtils.isBlank(value.toString())) { continue; } String value_inner = value.toString(); if (value_inner.startsWith("[")) { sb.append("&").append(key).append("=").append(parseJsonArray(value_inner)); } else if (value_inner.startsWith("{")) { Map requestMap = JSON.parseObject(value_inner); sb.append("&").append(key).append("=").append(sign(requestMap, secret)); } else { sb.append("&").append(key).append("=").append(value.toString()); } } sb.append("&").append(secret); String str = sb.substring(1,sb.length()); return disguiseMD5(str,"UTF-8"); } private static JSONArray parseJsonArray(String jsonArrayString) { List<Map<String, Object>> list = (List<Map<String, Object>>) JSONArray.parse(jsonArrayString); List<JSONObject> result = new LinkedList<JSONObject>(); for (Map<String, Object> map : list) { List<String> paramNames = new ArrayList<String>(map.size()); paramNames.addAll(map.keySet()); Collections.sort(paramNames); //JSONObject.toJSONString(json, SerializerFeature.SortField) JSONObject jsonObject = new JSONObject(true); for (String key : paramNames) { Object value = map.get(key); if (value == null || StringUtils.isBlank(value.toString())) { continue; } jsonObject.put(key, value); } result.add(jsonObject); } // logger.info("\nJSONArray 内JSONObject排序:{}\n", result); Collections.sort(result, (JSONObject o1, JSONObject o2) -> { Integer o1_index = o1.getInteger("index"); Integer o2_index = o2.getInteger("index"); if (o1_index == null || o2_index == null) { throw new IllegalArgumentException("参数明细中需要指定INDEX"); } return o1_index.compareTo(o2_index); }); // logger.info("\nJSONArray 排序:{}\n", result.toString()); JSONArray jsonArray = new JSONArray(); for (JSONObject jsonObject : result) { jsonArray.add(jsonObject); } return jsonArray; } public static String disguiseMD5(String message, String encoding) { if (null == message || null == encoding) { return null; } message = message.trim(); byte value[]; try { value = message.getBytes(encoding); } catch (UnsupportedEncodingException e) { value = message.getBytes(); } MessageDigest md = null; try { md = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { return null; } return toHex(md.digest(value)); } public static String toHex(byte input[]) { if (input == null) { return null; } StringBuffer output = new StringBuffer(input.length * 2); for (int i = 0; i < input.length; i++) { int current = input[i] & 0xff; if (current < 16) { output.append("0"); } output.append(Integer.toString(current, 16)); } return output.toString(); } public static void main(String[] args) throws IOException, HttpException { Map<String, Object> paramValues = new HashMap<>(); paramValues.put("test","222"); System.out.println(sign(paramValues,"Hr2JXE5mHjUL3vopraYZrZWDzfMaA0OLAvs5QxsIdJc=")); } }
合作需提供的清单
- 协助我们的新合作伙伴进行 API 集成、开发和测试的清单。
Item
Description
在生产中将 IP/s 列入白名单
eg. 111.222.333.444
接收加密生产 API_KEY等信息的电子邮件地址
接受 主动 或 手动 服务的 API URL
接口文档
流程图
1. 预警通知
发生拒付预警时,会通过以下接口告知合作商户拒付预警信息
Request Payload
1. ETHOCA预警通知
Field Name
Field Type
Required
Example
Description
Validation
id
string
Required
902f4dc650ac4da48a138bfb2ec66703
贸御系统预警单唯一 id
32位的英文、数字组合
alertId
string
Required
5FWS6ZMJ72BF5C9LKBAHGAGJU
争议记录 id,Ethoca返回的唯一预警 id
不超过 50位的英文、数字组合
preAlertTypestring
Required
Ethoca
预警推送类型,固定值 Ethoca
Ethoca
age
string
Required
786
预警时间间隔,指交易日期/时间(授权日期/时间) 与预警创建时间之间的小时数
不超过 50位的数字组合
alertTime
string
Required
2024-05-03 17:54:48
预警创建时间,UTC标准时间:YYYY-MM-DD hh:mm:ss
不超过 50位的数字组合
alertType
string
Required
dispute
争议类型: dispute or fraud
不超过 50位的英文
amount
string
Required
5000
交易金额
不超过 50位的数字组合
currency
string
Required
USD
交易币种,ISO 4217三位大写字母代码
ISO 4217三位大写字母代码
descriptor
string
Required
SP KIVAS.COM
ETHOCA返回的descriptor
不超过 50位的英文
alertSource
string
Optional
VISA
预警来源
不超过 50位的英文
arn
string
Optional
72231884092900061779028
收单行参考号ARN,它只适用于已结算的交易
不超过 50位的英文
authCode
string
Optional
031710
授权码
不超过 50位的英文
cardBin
string
Optional
10293800
卡bin前 8位
不超过 8位的英文
cardNumber
string
Optional
031710
卡号,可以为全卡号或前6后4 (当“alertType”值为 dispute时,不一定提供该值;当值为 fraud时,总会提供该值)
不超过 50位的英文
chargebackCode
string
Optional
REFUND
拒付原因代码
不超过 50位的英文
disputeAmount
string
Optional
5000
争议金额,可以与交易金额不同
不超过 50位的英文
disputeCurrency
string
Optional
USD
争议币种,ISO 4217标准
不超过 30位的英文
initiatedBy
string
Optional
issuer
交易由谁确认: issuer 发卡行, cardholder 持卡人, not_available 未提供值
不超过 50位的英文
issuer
string
Optional
OCBC
发卡号名称
不超过 50位的英文
liability
string
Optional
yes
是否是3D安全交易责任方: yes 发卡行, no 商户, not_available 未提供值
不超过 50位的英文
merchantCategoryCode
string
Optional
02918
商户类别代码
不超过 50位的英文
transactionId
string
Optional
104877299
卡组织分配的交易ID(当“alertType”值为 dispute时,才有可能传输此字段的值)
不超过 50位的英文
transactionTime
string
Optional
2024-04-01 00:00:00
交易的日期,UTC标准时间:YYYY-MM-DDThh:mm:ss
不超过 50位的英文
transactionType
string
Optional
keyed
交易类型或POS类型
不超过 50位的英文
alertStatus
string
Optional
COMPLETED
状态:
PENDING(待处理)
CREATED (已创建)
COMPLETED (已完成)
TIMEOUT (超时未完成)
(*20250805新增)
不超过 50位的英文
timeOut
string
Optional
2024-04-01 00:00:00
处理截止时间
(*20250805新增)
不超过 50位的数字+空格
reasonCode
string
Optional
10.4
拒付原因码
(*20250805新增)
不超过 50位的英文
2. RDR预警通知
Field Name
Field Type
Required
Example
Description
Validation
id
string
Required
902f4dc650ac4da48a138bfb2ec66703
贸御系统预警单唯一 id
32位的英文、数字组合
alertId
string
Required
5FWS6ZMJ72BF5C9LKBAHGAGJU
争议记录 id,Ethoca返回的唯一预警 id
不超过 50位的英文、数字组合
preAlertTypestring
Required
RDR
预警推送类型,固定值 RDR
RDR
alertTime
string
Required
2024-05-03 17:54:48
预警创建时间,UTC标准时间:YYYY-MM-DD hh:mm:ss
不超过 50位的数字组合
alertType
string
Required
dispute
争议类型: dispute or fraud
不超过 50位的英文
amount
string
Required
5000
交易金额
不超过 50位的数字组合
currency
string
Required
USD
交易币种,ISO 4217三位大写字母代码
ISO 4217三位大写字母代码
descriptor
string
Required
SP KIVAS
VISA返回的descriptor
不超过 50位的英文
descriptorRegisterstring
Required
SP KIVAS 123
注册时填写的descriptor
cardBin
string
Required
019248
收单银行 BIN
不超过 50位的英文
caid
string
Required
342411
CAID:银行商户号
不超过 50位的英文
cardNumber
string
Optional
01847291838
卡bin
不超过 50位的英文
acquirerBin
string
Optional
10384
收单银行 BIN
不超过 50位的英文
acquirerReferenceNumber
string
Optional
01847291838
收单银行参考号
不超过 50位的英文
alertSource
string
Optional
VISA
预警来源
不超过 50位的英文
authCode
string
Optional
102030
授权码
不超过 50位的英文
chargebackCode
string
Optional
REFUND
拒付原因代码
不超过 50位的英文
descriptorContact
string
Optional
Even
描述联系人
不超过 50位的英文
disputeAmount
string
Optional
500
争议金额,可以与交易金额不同
不超过 50位的英文
disputeCurrency
string
Optional
USD
争议币种,ISO 4217标准
不超过 50位的英文
merchantCategoryCode
string
Optional
Code
商户类别代码
不超过 50位的英文
ruleName
string
Optional
RULE_NAME
规则名称
不超过 50位的英文
ruleType
string
Optional
RULE_TYPE
规则类型
不超过 50位的英文
transactionTime
string
Optional
2024-05-03 17:54:48
交易的日期,交易所在地的时区时间
不超过 50位的英文
alertStatus
string
Optional
PENDING
状态:
PENDING(待处理)
CREATED (已创建)
COMPLETED (已完成)
TIMEOUT (超时未完成)
(*20250805新增)
不超过 50位的英文
timeOut
string
Optional
2024-04-01 00:00:00
处理截止时间
(*20250805新增)
不超过 50位的字符串
reasonCode
string
Optional
10.4
拒付原因码
(*20250805新增)
不超过 50位的字符串
merchantOrderId
string
Optional
VB2019032008321890000003
商户订单号
(*20250805新增)
不超过 50位的字符串
outcome
string
Optional
ACCEPTED
预警结果(*20250805新增)
不超过 50位的英文
Response Payload
Field Name
Field Type
Required
Example
Description
Validation
status
boolean
Required
true
表示是否正常接收预警
message
string
Optional
System Error
若无法消费预警,可返回错误信息
2. ETHOCA预警反馈
Path: /rest/third/predictor/merchant/outcome
Request Payload
Field Name
Field Type
Required
Example
Description
Validation
predictorId
string
Required
902f4dc650ac4da48a138bfb2ec66703
贸御系统预警单唯一 id
32位的英文、数字组合
refunded
string
Required
refunded
必须填写以下枚举值:
refunded (已匹配到交易并退款)
ignore (已匹配到交易但不做处理)
notfound (未匹配到对应交易)
chargeback_beforealert(原交易预警前已拒付)
refunded_beforealert(原交易预警前已退款)
transaction_failed(原交易状态为失败)
duplicate_alert(重复预警)
必须是列出的枚举值
comments
string
Conditional Required
补充意见
仅在【refunded】字段为duplicate_alert时为必填,填写重复预警的原预警【alertId】
不超过 50位的英文、数字组合
isFraud
string
Optional
yes
是否为欺诈
不超过 50位的英文、数字组合
matchOrderNo
string
Optional
102493717192
匹配的流水订单号
不超过 50位的英文、数字组合
refundNo
string
Optional
TY12345567
退款单号
当 refunded = ‘refunded’时,必填
不超过 50位的英文、数字组合
refundDate
string
Optional
2024-04-23 23:06:53
退款日期
当 refunded = ‘refunded’时,必填
不超过 50位的英文、数字组合
refundAmount
string
Optional
128.12
退款金额
当 refunded = ‘refunded’时,必填
不超过 50位的数字
refundCurrency
string
Optional
USD
退款币种
当 refunded = ‘refunded’时,必填
3位数
Response Payload
Field Name
Field Type
Required
Example
Description
status
boolean
Required
true
当状态为 true表示系统正常接受,false表示接受数据异常(参数值校验失败等)
message
string
Optional
System Error
错误信息,当 status为 false时传送
data
object
Required
data.predictorId
string
Required
82n1xcjaffflxoxnm8119
拒先知预警唯一id
data.outcomeStatus
string
Required
处理欺诈结果状态 success成功处理,failed处理失败
data.errorCode
string
Optional
当预警处理失败时,返回预警失败状态码
data.errorDesc
string
Optional
错误描述
3. 商户卡账单报备
Path: /rest/third/predictor/merchant/alert/add
Request Payload
Field Name
Field Type
Required
Description
Example
Validation
notifyUrl
string
Required
通知地址,处理结果通过该 URL 反馈,
请务必确保该 URL 可正常访问
https://mer.tradefensor.com/rest/alert/callback
alertType
string
Required
报备类型,可选值
- Ethoca
- RDR
Ethoca
descriptor
string
Required
字段含义:
Descriptor 是信用卡交易中客户账单上显示的描述信息,通常用于帮助客户识别这笔交易是从哪个商户发起的。
如何获取:
• 由支付服务商、PF 或商户在接入收单时设置。
• 在对账单上能看到这个字段(也叫 "statement descriptor")。
• 也可在清算报文或交易响应中看到。
• QUICKBUY*BOOKSTORE
• PAYNOW123.COM
cardBin
string
Conditionally required
当 alertType 为 RDR时必填,为ethoca时可以不填
字段含义:
BIN 是银行卡前 6 或 8 位号码,用于识别收单机构
如何获取:
• 向你的收单银行、支付网关或 PF 申请。
• VISA PF 或收单方分配并备案在系统中。
• 有时一个收单方有多个 BIN(代表不同产品/服务线)。
• 430123(某银行的收单 BIN)
• 489564(某跨境收单 BIN)
caid
string
Conditionally required
当 alertType 为 RDR时必填,为ethoca时可以不填
字段含义:
CAID 是 Card Acceptor ID,即“商户识别号”或“终端商户编号”,由收单银行或支付机构分配,用于在VISA网络中唯一标识一个商户实体。
如何获取:
• 由收单银行或第三方支付公司为每个商户分配。
• 可通过商户的收单协议、商户管理平台(如VISA Portal、CyberSource、Adyen、Worldpay等)查看。
• 在交易报文或清算报文中也会包含CAID字段
123456789012345(长度通常为15位)
某跨境电商的CAID:810000112233445
dba
string
Optional
字段含义:
DBA 是商户对外展示的名称(“以…名称经营”),即顾客在对账单或交易凭证上看到的商户名称。
如何获取:
• 商户注册时自行申报。
• 由支付机构、PF或收单方记录在商户资料中。
• VISA网络或清算平台中也会有备案。
• 客户对账单上出现的商户名称也通常是DBA。
QuickBuy.com
QuickBuy HK Store
mcc
string
Optional
字段含义:
MCC 是商户类别代码,用于表示商户所属的业务类型。
如何获取:
• 在商户接入收单机构时,由收单方或支付机构分配。
• 可以在 VROL、RDR 报备或对账平台看到。
• 一些典型行业可根据 VISA 公布的 MCC 列表选定。
• 5815:数字商品(Digital Goods)
• 6012:金融服务
• 5734:电子商品
• 4722:旅行社/在线旅游预订
• 5999:其他零售商品
website
string
Optional
商户网站地址
www.abc.com
arn
string
Optional
ARN 全称是 Acquirer Reference Number,即收单方参考号。常见为 23~24 位的纯数字,例如74843812345678901234567
它是 VISA 系统为每一笔交易生成的唯一编号,用于在整个清算网络中追踪和识别该笔交易,无论是原始支付、退款、还是争议处理(包括RDR)。
特点:
全球唯一,由 VISA 生成。
用于追踪交易的生命周期(授权 → 清算 → 拒付 → RDR → 退款)。
支付机构、收单银行、商户、VISA、发卡银行均可用其检索交易。
如何获取 ARN
以下是几种常见方式:
收单银行/支付机构,在交易清算完成后,收单方会生成并分配ARN,通常可在后台系统或清算对账单中获取。
商户平台/服务商系统,例如 Stripe、Adyen、PayPal、Worldpay 等支持通过API或后台查看ARN。
交易凭证/报文,在清算报文(如 TC33 或 VisaNet settlement file)中查看 ARN 字段。
74843812345678901234567
Response Payload
Field Name
Field Type
Required
Example
Description
Validation
status
boolean
Required
true
表示系统是否正常接收请求
message
string
Optional
System Error
若无法报备,则返回错误
data
object
Optional
data.status
string
Required
WAITING
-WAITING: 等待预警开通中
-EFFECTED:已生效
-CLOSING:关闭中
-CLOSED:已关闭
4. 商户卡账单状态结果通知
Request Payload
Field Name
Field Type
Required
Example
Description
Validation
status
string
Required
EFFECTED
-WAITING: 等待预警开通中
-EFFECTED:已生效
-CLOSING:关闭中
-CLOSED:已关闭
message
string
Optional
报备失败
报备失败时,卡组返回的失败原因
alertType
string
Required
Ethoca
报备类型,可选值
- Ethoca
- RDR
dba
string
Required
dba
descriptor
string
Required
www.descriptor.com
卡账单
mcc
string
Optional
当 alertType 为 RDR时,必填
cardBin
string
Optional
当 alertType 为 RDR时,必填
caid
string
Optional
当 alertType 为 RDR时,必填
website
string
Optional
当 alertType 为 RDR时,必填
arn
string
Optional
当 alertType 为 RDR时,必填
Response Payload
Field Name
Field Type
Required
Example
Description
Validation
status
boolean
Required
true
表示系统是否正常接收请求
message
string
Optional
System Error
若无法正常接收,则返回错误
5. 商户卡账单报备关闭
Path: /rest/third/predictor/merchant/alert/close
Request Payload
Field Name
Field Type
Required
Description
Example
Validation
notifyUrl
string
Required
通知地址,处理结果通过该 URL 反馈,
请务必确保该 URL 可正常访问
https://mer.tradefensor.com/rest/alert/callback
alertType
string
Required
报备类型,可选值
- Ethoca
- RDR
Ethoca
descriptor
string
Required
字段含义:
Descriptor 是信用卡交易中客户账单上显示的描述信息,通常用于帮助客户识别这笔交易是从哪个商户发起的。
如何获取:
• 由支付服务商、PF 或商户在接入收单时设置。
• 在对账单上能看到这个字段(也叫 "statement descriptor")。
• 也可在清算报文或交易响应中看到。
• QUICKBUY*BOOKSTORE
• PAYNOW123.COM
cardBin
string
Conditionally required
当 alertType 为 RDR时必填,为ethoca时可以不填
字段含义:
BIN 是银行卡前 6 或 8 位号码,用于识别收单机构
如何获取:
• 向你的收单银行、支付网关或 PF 申请。
• VISA PF 或收单方分配并备案在系统中。
• 有时一个收单方有多个 BIN(代表不同产品/服务线)。
• 430123(某银行的收单 BIN)
• 489564(某跨境收单 BIN)
caid
string
Conditionally required
当 alertType 为 RDR时必填,为ethoca时可以不填
字段含义:
CAID 是 Card Acceptor ID,即“商户识别号”或“终端商户编号”,由收单银行或支付机构分配,用于在VISA网络中唯一标识一个商户实体。
如何获取:
• 由收单银行或第三方支付公司为每个商户分配。
• 可通过商户的收单协议、商户管理平台(如VISA Portal、CyberSource、Adyen、Worldpay等)查看。
• 在交易报文或清算报文中也会包含CAID字段
123456789012345(长度通常为15位)
某跨境电商的CAID:810000112233445
Response Payload
Outcome Status Enum
Enum | Description | Remark |
stopped | 通过退款/稍后退款阻止争议 | |
partially_stopped | 通过预警停止部分交易 | alertType 为 fraud 时可选 |
previously_cancelled | 收到预警前已发起退款 | |
missed | 预警过晚,已经被拒付 | |
notfound | 预警交易无法在商户系统找到 | |
account_suspended | 持卡人账户被冻结 | alertType 为 fraud 时可选 |
shipper_contacted | 需要进一步联系物流公司其并截止物流处理 | alertType 为 fraud 时可选 |
other | 其他处理结果 |
联系方式
- 如果您在API集成过程中有任何疑问,请通过以下方式联系我们
support@tradefensor.com.