开始前
开始第 1 步前,请确认以下 4 项已就绪(详见 前置准备):- API Key / Secret Key 已领取。
- 出口 IP 已提供给 DCS(接口启用了 IP 白名单)。
- Webhook 回调地址已配置:开卡、入金、消费的结果都通过 Webhook 送达。
- 请求签名已调通:每个请求都要带
X-DAPI-API-KEY/X-DAPI-TIMESTAMP/X-DAPI-NONCE/X-DAPI-SIGN,规则见 鉴权指南。
沙盒地址为https://api.thedecard-sandbox.com(生产为https://api.thedecard.com)。下文示例省略了鉴权头,示例值均为脱敏占位。 所有接口的响应结构都是{code, message, messageDetail, data},code = SYS_SUCCESS表示成功。下文每一步只列data里要用到的字段。
📄 正文
步骤一览
一、注册
步骤 1: 发送短信验证码
为持卡人的手机号下发注册验证码。data 为空字符串,验证码通过短信发到持卡人手机。
注意:
behavioral填REGISTER;新用户还没有externalUserId,留空。mobileCode是国家码(ISO 2 位,如SG),mobile不加区号。
步骤 2: 注册用户
用持卡人收到的验证码完成注册。data 就是 externalUserId(如 "4dc3e854-xxxx-xxxx-xxxx-91a98b3d832c"),后续所有接口都用它标识用户,请保存。
注意:
mobileCode、mobile、smsCode三者必须同时提供。- 也可以用邮箱注册(
email+emailCode),但不能和手机号同时用,见 用户注册。
二、开卡
步骤 3: 获取开卡引导链接
KYC 与开卡都在 DCS 托管页完成,持卡人的证件、人脸等材料直接提交给 DCS,不经过您的后端。data 是一次性托管页链接,交给持卡人在浏览器打开。
注意:
- 链接 5 分钟内有效。请在持卡人在线时即时生成、即时跳转,不要通过邮件等方式异步发送。
- 该用户 KYC 已是
PASS或PENDING时会返回OPERATION_UNSUPPORTED,不能重复发起。
步骤 4: 接收开卡结果
持卡人在托管页提交后,DCS 通过 WebhookCARD_APPLY 把结果推给您。
关键返回(data 内):
注意:
- 收到 Webhook 后请在 2 秒内返回
2xx,先存储再异步处理,否则会被判超时并重复投递。 status = PENDING且needExtraInfo = true时,需要持卡人补件,见下方。
applyId 获取补件链接,交给持卡人;补完后 DCS 会再推一次 CARD_APPLY。
三、卡管理
步骤 5: 查卡详情
cardStatus(NORMAL / FROZEN / BLOCKED / CANCELLED)、cardNo(脱敏卡号)、physicalCardStatus(实体卡状态)。
注意:
cardId可选,不传则返回该用户的全部卡。BLOCKED是发卡行侧封锁,持卡人不能自助解冻,原因见statusReason,详见 卡管理。
步骤 6: 查看卡信息
完整卡号、CVV、有效期不会通过 API 返回给您的后端,由持卡人在 DCS 托管页直接查看。data 是一次性托管页链接,交给持卡人打开。
注意:cardId 必填。
步骤 7: 冻结 / 解冻
data 为布尔值,true 表示操作成功。
注意:block = true 冻结、false 解冻。解冻还需要传 smsCode 或 emailCode,先用步骤 1 的接口以 behavioral = CARD_UNFROZEN 下发验证码。
实体卡与 PIN(可选):同样用 POST /redirect/v2/guidance-link,请求体与步骤 6 相同,只换 action。
详见 申请卡 与 管理卡片 PIN。
四、入金与模拟消费
步骤 8: 获取入金地址
address(入金地址)、status(PENDING 分配中 / SUCCESS 已分配 / FAILED 分配失败)。
注意:
- 首次获取时地址可能还在分配中(
PENDING),请轮询到SUCCESS再使用。 - 沙盒只支持
TRON+USDT与Ethereum+USDC两组;生产支持的链与币种见 加密货币充值。
步骤 9: 入金
沙盒用模拟接口造一笔链上到账;生产环境下由持卡人向步骤 8 的地址链上转账。data.txHash(本次模拟到账的交易哈希)。到账后推 Webhook ORDER_STATUS(transStatus = SUCCESS)。
注意:需要给持卡人展示余额时,用 GET /user-asset/v1/balance,见 用户余额。
步骤 10: 消费
沙盒用模拟接口发起一笔卡授权;生产环境下由持卡人刷卡触发。data.approved(是否批准)。每笔消费推 Webhook CARD_TRANSACTION:response = A 为批准、D 为拒绝,拒绝原因在 rejectReason。
注意:authType 还可以填 REFUND(退货)、REVERSAL(冲正),见 模拟交易。
五、查询与对账
步骤 11: 查询充值记录
debitCreditIndcator(C 入账 / D 出账)、transactionAmount、transferDetails(链上充值明细,含 txHash)。
步骤 12: 查询账单
statementId(步骤 13 要用)、statementDateStart / statementDateEnd(账期)。
步骤 13: 查询账单详情
transactionType(R 消费 / C 取现 / P 还款 / Q 备忘)、debitCreditIndcator(借贷方向)、postIndicator(1 已入账 / 0 未入账)。
字段与分页规则详见 交易管理 · 概述。
至此,第一张卡已发出、完成入金和一笔消费,也能查到对应的充值记录与账单。
下一步
- 完整 KYC 流程与状态机 → 合规
- 引导页全部 action 与参数 → H5 KYC 与开卡引导页
- 卡的全生命周期(实体卡、换卡、PIN) → 卡管理
- 加密货币充值 → 加密货币充值
- 沙盒模拟全部交易类型 → 模拟交易
- 签名与鉴权 → 鉴权指南
- 全部推送事件的数据结构 → Webhook 与 WebSocket

