QR Crypto POS 面向已启用
pos 服务的已验证企业账户。每笔收款使用
专属地址(来自通用收款链接
引擎的临时钱包):不同收款之间的支付绝不会串单。端到端流程
1. 注册商户(每个客户一次)
每个商户都必须绑定一份已批准的第三方 KYC/KYB 验证 — 商户身份来自验证,绝不手工申报。可以为商户配置信息性佣金 (fee_percent + fee_fixed):不移动资金,但 API 会在每笔已支付收款上
计算,汇总接口告诉你应分配的净额。
GET /v1/pos/merchants(分页)和 GET /v1/pos/merchants/{id} 查询。
PATCH /v1/pos/merchants/{id} 可修改 status(active/disabled —
停用的商户无法生成新收款)、佣金和 external_ref。身份不可编辑:以验证
为准。
2. 生成收款(每笔交易一个)
契约与通用收款链接一致:金额以你的settlement_asset 计价(缺省时用
账户默认值),顾客支付的应付额在创建收款时按二维码的加密货币报价 —
若顾客支付的资产与你的不同,兑换成本已包含在应付额中(你收到精确的
目标金额)。
crypto:tron:usdt、eth:usdt、eth:usdc或btc:btc。expires_in:300–86400 秒(默认 900)。涉及 BTC 的报价冻结 15 分钟 (quote_expires_at)。idempotency_key必填:用同一键重试返回同一笔收款和同一地址 (idempotency_hit: true)— POS 重试绝不会开出第二笔收款。- 二维码是裸地址(兼容 Binance 及所有钱包);把
due打印在旁边。
3. 检测支付(轮询或 webhook)
POS 轮询:每隔几秒GET /v1/pos/charges/{charge_id}。入账刚出现在
链上(通常 2-3 秒,早于确认),响应即带早期检测:
confirming 是 UX 信号(“已检测到支付,确认中…”)— 真正的入账只在链上
确认后发生:status 变为 paid,received 反映累计金额,paid_at
被记录。
Webhook(推荐用于结单):payin_credited 附带归属块:
收款状态
部分支付会累加(
received)直到达标;只有完成时才 paid。
迟到支付:到期后到账的资金仍会记入你的账户(地址持续有效)并发出
webhook — 过期收款的 received 会反映出来供你对账,真实支付绝不丢失。
超额支付(小费)同样入账。
4. 按商户对账与分账
GET /v1/pos/charges?from=…&to=…&merchant_id=… 列出每个商户的收款
(merchant_id、status 筛选;标准分页)。
GET /v1/pos/summary?from=…&to=… 返回按商户的汇总 — 与每个客户
结算的视图:
gross 是收款总额(已支付收款的目标金额),processor_fee 是你在商户
上配置的佣金,net_for_merchant 是应分配给商户的净额(同资产的退款已
扣除)。分账走现有通道:内部转账、
法币出金或加密货币提现。
5. 退款
POST /v1/pos/charges/{charge_id}/refund 把(部分)已收资金退还给付款
人,作为一笔从你余额发出的普通加密货币提现 — 带持有、提现手续费和
该通道的全部合规控制。
- **
to_address必须显式提供。**我们绝不自动退回入账来源地址:那可能 是交易所的热钱包,你的顾客并不掌控该地址(资金会丢失)。请向顾客索取 并确认退款地址;已收到的from_address保留在收款详情中作参考。 - 硬上限:一笔收款的退款总额绝不能超过其已收金额
(
422 refund_exceeds_received),并发请求下同样成立。 - 适用于任何已收到资金的收款 — 包括收到迟到支付的过期收款(最常见 的退款场景)。
- 退款以收款的加密货币发出:由于支付已兑换为你的结算资产,你需要
该加密货币的余额(不足时先兑换回来;错误码为
insufficient_funds)。 - 状态跟随提现生命周期(
pending→processing→completed/failed;失败的提现会退回你的扣款并释放上限)。用GET /v1/pos/charges/{id}/refunds查询。
产品错误
常见问题
POS 上确认支付要多久?
POS 上确认支付要多久?
早期检测(
confirming: true)2-3 秒内出现。最终确认取决于网络:TRON
约 1 分钟,Ethereum 数分钟,Bitcoin 约 30 分钟。由你决定是在
confirming 时放行交易(风险自担)还是等 paid。POS 场景推荐
TRON/USDT。可以把二维码打印在纸上吗?
可以把二维码打印在纸上吗?
可以 —
qr_png_base64 可直接打印,qr_payload 是裸地址,供你的 POS
本地生成二维码。请把 due 和网络打印在旁边:顾客必须通过正确的网络
发送精确金额。顾客付少了、付多了或付晚了怎么办?
顾客付少了、付多了或付晚了怎么办?
付少:收款保持
pending,累计(received)直到达标。付多(小费):
超额同样入账。付晚(过期后):仍会入账并发出 webhook — 过期收款的
详情显示 received 供对账。真实支付绝不丢失。资金记在餐厅名下吗?
资金记在餐厅名下吗?
不 — 全部记入你(处理商)的账户,并兑换为你的结算资产。按商户的归属
(收款、webhook 和汇总)准确告诉你每个商户对应多少,之后你可以用任意
通道分账。
有哪些费用?
有哪些费用?
每笔入账支付你账户的
funding 费(百分比 + 固定),且当支付资产与你
的结算资产不同时收取自动兑换的点差。按商户的佣金
(fee_percent/fee_fixed)是你与你客户之间的:仅供参考,我们不收取。POS 终端可以直接向 CBPay 查询状态吗?
POS 终端可以直接向 CBPay 查询状态吗?
当前版本中 POS 与你的后端通信,你的后端用你的 API key 查询(实体终端
绝不应保存你的 key)。如果你需要无后端的 POS 终端,请告诉我们:按收款
签发的只读公共轮询令牌已在路线图中。