将付款关联到收款单
概述
绝大多数情况下,买家会把收款单标明的金额分毫不差地付到商户的加密钱包。但买家偶尔会出错,支付的金额与预留的不同。此时服务无法自动把付款关联到收款单并将其标记为已支付。遇到这种情况,只要确定自己在等待哪笔付款,商户就可以手动把付款关联到收款单——在控制台或通过 API。
关联条件
只有同时满足所有条件,关联才会完成:
- 收款单状态——
unpaid或expired。已取消和已支付的收款单无法关联。取消不可逆。 - 付款尚未关联到其他收款单。一笔付款只能绑定一张收款单。
- 付款到达的是该收款单涉及的钱包。
- 付款落在可用的付款窗口内——收款单创建前 24 小时到创建后 24 小时。在收款单创建之前到达的付款可以关联;窗口之外的不行。
如果收款单属于其他项目且密钥限定到项目,方法返回 Restricted project。其他任一条件不满足时,返回不带原因的通用错误——请在自己一侧检查条件。
关联之后会发生什么
- 收款单转为已支付。
- 通知发往邮箱、Telegram 机器人和 Webhook URL——与自动关联时一样。
- 收款单金额
invoice.amountFiatUSD被实际收到的金额覆盖,按关联时刻的汇率折算成 USD。invoice.amountFiat中的原始金额不变。 - 服务费按项目费率对实际收到的金额重新计算。多付时高于创建收款单时算出的值,少付时低于它。
请求
curl -X POST https://api.bitsby.app/invoices/bindPayment \
-H "Authorization: Token MSvL2ltaDZdWVjmZURURMVWhqSJLT2NURjhL2Fla1Z1T1IxQTltKs1T3Ay" \
-F "invoiceId=ade9550d-3dc7-4fd3-b94e-3b4c12aaaa0c" \
-F "paymentId=a4c9e2ee-9a03-43e5-a1a1-00caf679d16a"
请求参数
| 参数 | 数据类型 | 说明 | 示例 | 是否必填 |
|---|---|---|---|---|
invoiceId | UUID | 收款单 ID,UUID 格式 | ade9550d-3dc7-4fd3-b94e-3b4c12aaaa0c | 是 |
paymentId | UUID | 付款 ID,UUID 格式 | a4c9e2ee-9a03-43e5-a1a1-00caf679d16a | 是 |
响应示例
{
"result":"success",
"data":"Invoice binded to payment"
}