本页内容
获取充值
读取任意状态下的单条收款通道充值,含冻结的费率快照、总额手续费与实收金额,以及它的链上凭据。
API 密钥: Payment
按 pcd_ 标识读取单条充值,任意状态都可以。从 payment_channel.deposit.confirming webhook 拿到的 id 在这里立刻可解析,所以你不必为了以后能查而把 webhook 载荷留着。
响应 (200 OK)
{
"id": "pcd_8ScRvL4jNq2XkB7mTfZdWu",
"payment_channel_id": "pc_2QhKZv6mRt9WdA3nYpLbXf",
"project_id": "prj_xFukZuAJZR06pLVBh3uwzv",
"payment_channel_external_id": "customer-42",
"status": "confirmed",
"is_final": true,
"is_test": false,
"currency": "USDT",
"network": "TRC20",
"chain_id": 728126428,
"contract_address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"gross": "100",
"fee": "1",
"net": "99",
"applied_fee_percent": 1.0,
"customer_fee_percent": 0,
"tx_hash": "9f4c1b7e30ad52c8ef6a1d84b0c39f27a5e6d138f4b90c72ae51d63b8407fc25",
"transfer_id": "9f4c1b7e30ad52c8ef6a1d84b0c39f27a5e6d138f4b90c72ae51d63b8407fc25:41a614f803b6fd780986a42c78ec9c7f77e6ded13c:41c9f6a2b7d0138e54ca3b91f6072ed48a5c1e93b7:0",
"source_address": "TW9s4RkAqBnLpVdX2ChYzUeGm7QfKt3NbZ",
"destination_address": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
"block_height": 68421905,
"first_included_block_timestamp": 1767225900,
"explorer_url": "https://tronscan.org/#/transaction/9f4c1b7e30ad52c8ef6a1d84b0c39f27a5e6d138f4b90c72ae51d63b8407fc25",
"created_at": 1767225870,
"updated_at": 1767225930,
"confirmed_at": 1767225930
}
字段
| 字段 | 说明 |
|---|---|
id |
充值标识(pcd_…)。去重就按它 |
payment_channel_id、payment_channel_external_id |
收到这笔钱的通道,以及你给那个通道的标识 |
status |
confirming、reorged 或 confirmed |
is_final |
只有 confirmed 时为 true |
currency、network、chain_id、contract_address |
到账的是什么代币、到在哪里。contract_address 是代币的链上标识:EVM 和 Tron 上为合约地址,TON 上为 jetton master,Solana 上为 SPL mint |
gross、fee、net |
十进制字符串。net 是进入你余额的金额 |
applied_fee_percent、customer_fee_percent |
归属时为这一条充值冻结的费率 |
tx_hash、transfer_id、block_height |
链上凭据。transfer_id 是不透明值——用它匹配,不要解析它 |
source_address |
链上能给出付款人地址时出现,否则不出现 |
destination_address |
钱到达的那个通道地址 |
first_included_block_timestamp |
交易首次出现在区块中的时间 |
explorer_url |
该网络有区块浏览器时给出的链接 |
confirmed_at |
充值到达 confirmed 时一次性写入 |
contract_address 在 schema 里可为空,只有原生币才会空着。接受的资产里没有原生币,所以你能读到的每一笔充值都带着值。GET /v1/invoices/:id 对 payment.contract_address 说的是同一条规则——一套代码就能处理这两个资源。
状态
| 状态 | 说明 | 终态 |
|---|---|---|
confirming |
链上已看到,等待该网络要求的确认数 | 否 |
reorged |
交易被链重组剔除 | 否 |
confirmed |
已结算,净额已计入你的余额 | 是 |
confirmed 只进不出:充值一旦到达,没有任何东西能把它拉回去。reorged 是静止的,但不是终点——同一笔交易如果被重新打包进后续区块,同一条充值回到 confirming,并可以继续走到确认。全程保留它的 pcd_ 标识,所以一笔付款你永远不会看到第二条充值。
没有失败状态。重组之后再也没有被重新打包的充值,就停在 reorged。
金额是记录下来的,不是重算出来的
applied_fee_percent 和 customer_fee_percent 是充值归属时拍下的快照。之后改定价不会动已经存在的充值,重新读一条旧充值,拿回的还是它一直以来的 gross、fee 和 net。
正式环境下已确认的充值,这三个金额是从给你余额入账的那条记账分录里读回来的——和你对账单上看到的是同一组数字,不是重新算一遍。费率 1% 时,一笔 100 USDT 的充值给出 gross 100、fee 1、net 99。
金额是十进制字符串,末尾的零已去掉。请用十进制类型解析;二进制浮点在稳定币这个量级上会丢精度。
错误
| 错误码 | HTTP | 何时出现 |
|---|---|---|
payment_channels_disabled |
503 | 本环境下你的账户未开通收款通道 |
payment_key_required |
403 | 请求用 Payout(rk_)key 签名 |
payment_channel_deposit_not_found |
404 | 该 id 解析不到这个凭证可以看到的任何东西 |
field_invalid_format |
400 | 路径段不是合法的 pcd_ 标识 |
完整目录见错误码。