常见问题 FAQ

签名失败、401/403、余额不足等常见问题排查

常见问题 FAQ

签名 / 认证

返回 401 或签名失败怎么办?

  1. 确认 Access Key 正确且凭证未停用
  2. 服务器时间与标准时间差是否在 ±5 分钟 内(建议开 NTP)
  3. 签名 PATH 是否为 /v1/...,且不含 query
  4. GET 请求 body 哈希是否为空串的固定 SHA-256
  5. POST 的 body 是否与发送字节完全一致(不要二次序列化)
  6. 私钥是否为 PKCS#8 格式(与 SDK 示例一致)

Nonce 相关错误?

每个请求使用新的 UUID;5 分钟内不可重复。

假密钥疯狂请求会怎样?

同一 IP 约 20 次/分钟后返回 429(请求过于频繁),请勿对生产做爆破测试。

权限 / 网络

403 开发者权限?

管理端为该商户开通 API 接入 后重试。

403 IP 不在白名单?

把调用服务器出口公网 IP 配进控制台白名单(注意 NAT / 代理真实出口)。

连接超时?

先用沙箱 Base URL:https://uat-openapi.cafinx.com/v1/ping;检查防火墙是否放行 HTTPS 出站。

业务

42201 余额不足?

USD 不足且自动兑币后仍不足。请先充值 USD 或数字货币后重试。

42202 BIN 不可用?

bin 必须来自 GET /card-products 当前可开列表。

是不是所有开卡都要做 KYC?

不是。 以 GET /card-products 返回的 requireThirdPartyKyc 为准:

目录字段是否要 KYC开卡怎么做
requireThirdPartyKyc: true要控制台一键认证,或请求带 kycProvider + kycReferenceId
requireThirdPartyKyc: false不要正常 POST /cards,不必传 KYC 字段

完整分支说明见 卡产品与身份认证。

开卡提示须完成身份认证?

仅当该 bin 在目录中为 requireThirdPartyKyc=true 时才会出现。两种方式:

  1. 控制台一键认证 通过后,平台自动附带凭证;或
  2. 开卡请求透传(对接方自有 KYC,不限 Didit):
POST /cards
{
  "bin": "46651711",
  "creditLimit": "20",
  "kycProvider": "DIDIT",
  "kycReferenceId": "your-vendor-session-or-applicant-id"
}
kycProvider说明
DIDITDidit(平台控制台默认)
SUMSUBSumsub
MyInfoMyInfo
JumioJumio
ShuftiShufti

请求级凭证 优先于 控制台落库。只接 Didit 时固定 DIDIT 即可;其他服务商换枚举 + 其 Reference。

持卡人不能跨卡段复用?

是。holderId 须与当前 bin 的产品线匹配;不同产品线持卡人档案隔离。
建议:开卡前用与 bin 对应的持卡人列表(商户后台按卡段筛选),或省略 holderId 由平台按 holderName 自动建档。

40302 操作状态不允许?

例如对 CLOSED(已销卡)再充值、对 ACTIVE(正常)再解冻。按当前 status 选择合法操作。

写接口提示缺幂等键?

所有 POST 写接口必须带 X-Idempotency-Key(建议业务单号)。

同幂等键第二次结果不一样?

同键必须同 body;否则返回 40901(幂等冲突)。需要新业务请换新键。

钱包流水里出现 chargeback_fee / auth_fee?

type含义
chargeback_fee交易授权拒绝后的拒付费(平台配置的固定金额)
auth_fee授权相关费用(按平台/商户费率从钱包扣除;可高于成本加价)

二者均为出账(amount 为负),余额不足时仍可能记负,不自动兑数字货币。
已开通开放 API 的商户:拒付费连续不足不会因此自动限制账户;未开通 API 的个人账户可能按平台规则被限制。详见 变更日志 v1.8。

Webhook

收不到回调?

  1. 控制台是否启用 Webhook 且 URL 公网可达
  2. 是否被 SSRF 规则拒绝(内网地址不可用)
  3. 事件是否在订阅列表内
  4. 控制台投递记录是否 FAILED(可手动重发)

验签总是失败?

必须用原始 body 字节验签;Express 等框架勿先 JSON.parse 再 stringify。

文档与规范

如何拿到 OpenAPI?

  • 文档站 API Reference(自动生成)
  • 或请求:GET https://openapi.cafinx.com/v1/openapi.json?locale=zh-CN(沙箱将域名换成 uat-openapi)

SDK 怎么装?

参考仓库 docs/developer-sdk/ 下各语言源码,按文件头注释安装依赖(Java 无三方依赖;Python 需 cryptography 等)。当前为示例源码形态,非强制 npm/Maven 中央仓库版本。

技术支持?

请通过商户控制台工单 / 客户成功经理或平台约定邮箱联系;请附带 requestId、时间戳与脱敏请求路径。


Did this page help you?