Skip to main content
本页带您在沙盒环境走完一条最短路径:注册用户、发出第一张虚拟卡、入金、完成一笔消费,并查到对应的记录与账单。全程 5 个模块、13 步,每一步调用一个接口。 DeCard 托管模式下,KYC、查看卡信息等敏感操作由持卡人在 DCS 托管页面完成;您调 API 发起,并通过 Webhook 和查询接口拿到结果。

开始前

开始第 1 步前,请确认以下 4 项已就绪(详见 前置准备):
  1. API Key / Secret Key 已领取。
  2. 出口 IP 已提供给 DCS(接口启用了 IP 白名单)。
  3. Webhook 回调地址已配置:开卡、入金、消费的结果都通过 Webhook 送达。
  4. 请求签名已调通:每个请求都要带 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–13)快速开始全流程(步骤 1–13)

一、注册

步骤 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,不能重复发起。
语言、主题等其他参数见 H5 KYC 与开卡引导页。

步骤 4: 接收开卡结果

持卡人在托管页提交后,DCS 通过 Webhook CARD_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 未入账)。 字段与分页规则详见 交易管理 · 概述。 至此,第一张卡已发出、完成入金和一笔消费,也能查到对应的充值记录与账单。

下一步