每个用户、每种资产,一个查询拿全
在 DeCard 托管模式下,每个终端用户都持有一份由 DCS 托管、按币种隔离的独立钱包余额,您用一个查询即可拿到该用户每种资产的可用 / 冻结 / 总额。作为持牌发卡机构、自有 BIN,DCS 替您托管这份用户级账本,授权与清算都直接作用于该用户的独立余额——本接口就是这套模型的查询入口。 一个用户可同时持有多种资产,余额接口按币种逐项返回每种资产的可用 / 冻结 / 总额。 本页只聚焦余额查询。资金的进出与流转分布在同组其他页,互不重复:余额模型:free / freeze / total
DCS 在托管下为每个用户、每种资产维护三个量:一笔授权发生时:free减少、freeze增加、total不变;清算(实际扣款)时从freeze中扣减,total随之减少。授权 / 清算如何改写这三个量,见 授权 与 清算;DCS 托管边界见 账户与资产模型。
术语对齐:概念性资料中提到的「availableBalance / frozenBalance」即本接口的
free / freeze。集成时一律以接口字段名 free / freeze / total 为准,availableBalance / frozenBalance 仅作概念别名。前置条件
- 用户已通过 创建用户 / 用户状态管理 注册,您持有其
externalUserId。 - 通常需用户已完成 KYC 并已有资产入账(充值 / 划拨)后,余额才非零;新用户可能返回空数组或全 0。
- 调用方为已开通 DeCard 托管方案的接入机构,按全站统一鉴权方式携带请求头(见 快速开始)。
接口契约
user-asset 模块还提供 credit / debit / transactions / transaction-detail / transfer-query 等接口,分布于本组的 交易查询概述 与 账户与资产模型。本页仅展开余额查询接口。
GET /user-asset/v1/balance
仅此一个查询参数;无路径参数、无请求体。本接口不使用路径参数,也不存在tenant概念——余额始终以externalUserId为维度查询单个用户。
请求示例
示例中 usr_xxxxxxxx、密钥与签名全部为占位值。请勿在任何文档 / 日志 / 工单中粘贴真实用户 ID、API Key 或 secret。
响应
响应套用全站统一结构{ code, message, messageDetail, data };data 为数组,用户持有几种资产就有几项,每项描述一种币种的余额。
data[] 元素字段:
错误处理
- 用户不存在 /
externalUserId无效:code非成功值,message/messageDetail给出原因,data不返回有效余额。请先确认该externalUserId已通过创建用户接口注册。 - 缺少必填参数:未传
externalUserId将被拒绝。 - 鉴权失败:鉴权头(
X-DAPI-API-KEY/X-DAPI-SIGN/X-DAPI-TIMESTAMP/X-DAPI-NONCE)缺失 / 签名错误 /X-DAPI-NONCE重放,按统一鉴权错误返回(见 Quickstart)。 - 空账户:用户存在但尚无任何资产时,
data可能为空数组[]或各项均为 0,这不是错误。
关于「独立账户 / DeCard 托管」模型(为什么余额查得到)
DeCard 托管方案下,DCS 在内部按externalUserId 维度托管每个用户的资金,并按币种隔离子账户——这正是本接口能返回每用户、每币种余额的前提。与之对照:
- 合作伙伴自管:额度与授权决策由接入机构掌握,DCS 侧无用户级独立余额接口。
- DeCard 托管(本套):DCS 托管用户独立余额,授权在系统内完成、直接作用于该用户的
free/freeze——本接口即该模型的余额查询入口。
free 可用余额是否足额与用户交易状态是否被禁,详见 授权。
余额变动实时推送(WebSocket BALANCE_CHANGE)
当授权、清算、充值(credit)、扣款(debit)或内部划拨导致用户的 free / freeze 发生变动时,DCS 会通过 WebSocket 实时推送 BALANCE_CHANGE 事件,包含 freeDelta(可用变动)与 freezeDelta(冻结变动)以及变动后的 free / freeze 绝对值。接入机构无需轮询 /user-asset/v1/balance 来跟踪余额变化——订阅 WebSocket 通道后即可接收推送。详见 Webhook 与 WebSocket 实时通知。
下一步
- 充值 / 扣款(
credit/debit)与 DCS 托管账户模型:账户与资产模型 - 授权如何改写
free/freeze:授权 - 清算如何从
freeze实际扣减:清算 - 资产流水 / 变动历史(
transactions/transaction-detail/transfer-query):交易查询概述 - 用户状态与交易限制(
forbidCardTransaction):创建用户 / 用户状态管理

