支付失败错误码接口文档

面向接入商户。交易失败时,响应中的 refusalReasonCode 返回统一错误码 FP-xx,商户可据此判断后续处理方式。 错误码为平台统一定义,不随后端路由变化。同一种失败原因始终返回同一个码,商户无需为此调整代码。

1. 响应字段

下单失败时的响应示例(省略无关字段):

{
  "code": "0",
  "msg": "success",
  "success": true,
  "data": {
    "resultCode": "FAILED",
    "refusalReason": "Your card was declined.",
    "refusalReasonCode": "FP-32",
    "merchantReference": "B7B53455CBE749F58ABED6844D4721BD",
    "pspReference": "2101556997748031488",
    "amount": { "currency": "USD", "value": 200 }
  }
}
字段类型说明
resultCodeString交易结果。失败为 FAILED,处理中为 PENDING,成功为 SUCCEED
refusalReasonCodeString统一错误码,形如 FP-32。失败时返回,覆盖范围见第 8 节
refusalReasonString失败原因文案,仅供展示或记录日志

注意:外层 code / success 表示的是接口调用是否成功,与交易结果无关。
下单被拒时外层仍是 code: "0"success: true,交易结果要看 data.resultCode

请以 refusalReasonCode 做程序判断。
refusalReason 的文案内容可能随时调整,请勿对其做字符串匹配。

2. 号段规则

看号段即可决定处理方式,无需查全表:

号段含义处理方式
FP-01 ~ FP-29硬拒:卡或账户本身的问题不要重试,引导用户更换支付方式
FP-30 ~ FP-59软拒:可重试,或修正信息后重试提示用户重试或修正卡信息
FP-60 ~ FP-79风控与受理拦截逐条判断,多数不应重试
FP-80 ~ FP-89请求参数或配置错误不要重试,属于对接问题,请联系我们
FP-90 ~ FP-99系统异常退避后重试

各号段留有预留空位,后续新增原因取新号;已发布的码不会改变含义,可放心硬编码。

3. 硬拒 FP-01 ~ FP-29

卡或账户本身的问题,同一张卡重试无意义。

英文中文建议动作
FP-01Card reported stolen卡被举报盗刷引导更换支付方式。不要向持卡人透露具体原因
FP-02Card reported lost卡被举报遗失引导更换支付方式。不要向持卡人透露具体原因
FP-03Card must be retained by issuer发卡行要求没收该卡引导更换支付方式
FP-04Payment flagged as fraudulent被判定为欺诈交易引导更换支付方式。不要向持卡人透露具体原因
FP-05Blocked by block list命中拦截名单引导更换支付方式。不要向持卡人透露具体原因
FP-06Card or account invalid卡或关联账户无效提示核对卡号,或联系发卡行
FP-07Card replaced, update card details卡已换号,需更新卡信息提示使用新卡重新绑定
FP-08Authorization revoked by cardholder持卡人已撤销本商户授权停止对该卡发起扣款
FP-09All authorizations revoked持卡人已撤销全部授权停止对该卡发起扣款
FP-10Stop payment order placed持卡人已止付停止对该卡发起扣款
FP-11Security violation安全违规引导更换支付方式
FP-12Card restricted受限卡,不可用于本次支付引导更换支付方式
FP-13Card does not support this purchase type该卡不支持此类交易提示联系发卡行或换卡
FP-14Card does not support this currency该卡不支持此币种更换币种或换卡
FP-15Transaction type not allowed该交易类型不被允许引导更换支付方式
FP-16Payment not permitted该笔支付不被允许引导更换支付方式
FP-17Service not allowed该服务不被允许引导更换支付方式
FP-18PIN attempts exceededPIN 错误次数超限引导更换支付方式
FP-19Test card used in production生产环境使用了测试卡号使用真实卡号
FP-20Issuer requests no retry发卡行要求勿重试停止对该卡发起扣款
FP-21Payment method restricted支付方式被限制引导更换支付方式

4. 软拒 FP-30 ~ FP-59

可重试,或用户修正信息后重试。

4.1 发卡行原因 FP-30 ~ FP-39

英文中文建议动作
FP-30Insufficient funds余额不足提示换卡或充值后重试
FP-31Declined by issuer发卡行拒绝,未给出具体原因提示联系发卡行
FP-32Generic decline通用拒绝提示联系发卡行或换卡
FP-33Processing error处理过程中出错可稍后重试
FP-34Issuer unavailable发卡行暂时不可达可稍后重试
FP-35Re-enter transaction请重新发起该笔交易可立即重试一次
FP-36Cannot authorize, retry无法授权,可重试可重试;仍失败则提示联系发卡行
FP-37Contact card issuer需持卡人联系发卡行提示联系发卡行
FP-38No action taken by issuer发卡行未做处理提示联系发卡行
FP-39Try again later稍后再试退避后重试

4.2 限额相关 FP-40 ~ FP-44

英文中文建议动作
FP-40Card velocity or limit exceeded超出卡的额度或交易频次限制提示换卡或联系发卡行
FP-41Withdrawal count limit exceeded超出取现或交易次数限制提示换卡
FP-42Invalid amount金额无效或超出该卡允许范围核对金额,或提示联系发卡行
FP-43Card decline rate limit exceeded该卡被拒次数过多24 小时内不要再用该卡重试
FP-44Duplicate transaction短时间内重复的同额交易先查证是否已有成功订单,避免重复扣款

4.3 卡信息填写 FP-45 ~ FP-53

这一组均为用户输入问题,修正后即可成功。

英文中文建议动作
FP-45Incorrect card number卡号错误提示核对卡号
FP-46Incorrect CVC安全码(CVC)错误提示核对安全码
FP-47Invalid expiry month有效期月份错误提示核对有效期
FP-48Invalid expiry year有效期年份错误提示核对有效期
FP-49Card expired卡已过期提示更换有效的卡
FP-50Incorrect postal code账单邮编不匹配提示核对账单邮编
FP-51Incorrect billing address账单地址不匹配提示核对账单地址
FP-52Incorrect PINPIN 错误提示重新输入 PIN
FP-53PIN required需要输入 PIN引导按终端提示输入 PIN

4.4 认证相关 FP-55 ~ FP-59

英文中文建议动作
FP-55Authentication required需完成 3DS 认证引导完成 3DS 认证
FP-56Authentication not handled未执行必需的认证流程走完整 3DS 流程后重试
FP-57Authentication failed3DS 认证失败提示重新认证或换卡
FP-58Mobile device authentication required需在移动设备上重新完成认证引导在移动设备上重新操作
FP-59Customer declined the payment用户放弃或拒绝授权提示重新发起支付

5. 风控与受理拦截 FP-60 ~ FP-79

这类失败在受理阶段被拦下。

英文中文可重试建议动作
FP-60Card temporarily blocked该卡已被风控锁定引导更换支付方式
FP-61Card BIN not accepted卡 BIN 不在允许范围内引导更换支付方式
FP-62Too many failed attempts with this card该卡连续失败次数超限引导更换支付方式,或稍后再试
FP-63No available acquiring channel无可用受理通道稍后重试;持续出现请联系我们
FP-64Daily limit exceeded超出单日限额次日重试,或联系我们调整额度
FP-65Payment method not enabled未开通该支付方式联系我们开通
FP-66Amount exceeds merchant limit订单金额超出单笔限额调整金额,或联系我们调整额度

6. 请求参数或配置错误 FP-80 ~ FP-89

这一组不是持卡人的问题,重试无用。请检查对接实现或联系我们。

英文中文说明
FP-80Amount below minimum金额低于下限调整金额
FP-81Amount above maximum金额高于上限调整金额
FP-82Invalid or missing parameter请求参数缺失或非法检查请求报文
FP-83Payment method not supported不支持此支付方式联系我们确认支持范围
FP-84Currency does not match payment method币种与支付方式不匹配核对币种
FP-85Account configuration error受理账户配置错误联系我们处理
FP-86Order state does not allow this operation订单状态不允许该操作先查单确认当前状态
FP-87Resource missing or duplicated资源不存在或已存在核对订单号与请求幂等性

7. 系统异常 FP-90 ~ FP-99

英文中文建议动作
FP-90System error系统异常退避后重试
FP-91Rate limited请求过于频繁退避后重试
FP-92Request timed out请求超时先查单确认最终状态,再决定是否重试,避免重复扣款
FP-93Concurrent request conflict并发冲突稍后重试
FP-99Unclassified failure未识别的失败原因持续出现请联系我们

8. 覆盖范围

并非所有失败场景都会返回 refusalReasonCode 请按下表编写代码,不要假设该字段一定存在。

场景是否返回错误码
未开启 3DS 的卡支付,当场被拒
代扣 / 订阅扣款失败
绑卡(零元授权)失败
风控或参数拦截
请求参数、配置错误
3DS 认证流程中失败
查单接口
异步通知

开启 3DS 时,下单接口先返回跳转指引,最终结果由查单与异步通知给出,这两条链路当前版本尚未携带错误码,将在后续版本补齐。

9. 接入示例

建议按号段处理,并兼容字段缺失:

String code = response.getRefusalReasonCode();

if (code == null) {
    // 当前版本尚未覆盖的场景,退回按 refusalReason 展示
    showMessage(response.getRefusalReason());
} else if (code.compareTo("FP-30") < 0) {
    // FP-01 ~ FP-29 硬拒:不要重试,引导更换支付方式
    promptChangePaymentMethod();
} else if (code.compareTo("FP-60") < 0) {
    // FP-30 ~ FP-59 软拒:提示重试或修正卡信息
    promptRetryOrFixCardInfo(code);
} else if (code.compareTo("FP-80") < 0) {
    // FP-60 ~ FP-79 风控与受理拦截:多数不应重试
    promptChangePaymentMethod();
} else if (code.compareTo("FP-90") < 0) {
    // FP-80 ~ FP-89 对接或配置问题:不要重试,记录并告警
    alertIntegrationIssue(code);
} else {
    // FP-90 ~ FP-99 系统异常:退避后重试;FP-92 需先查单
    retryWithBackoff(code);
}

FP-xx 按字符串比较即可,号段边界与第 2 节一致。

10. 变更记录

日期版本变更
2026-09-20v1.0首版。新增 refusalReasonCode 字段

Did this page help you?