- 加密货币转账
- Off-Ramp 对接
- 从您的某个虚拟账户提现法币到银行账户
本页的事件
payment.payout.updated
资金转出的主事件。
事件触发条件
该笔资金转出的status 每变化一次发一条事件。
Pending 和 Preparing 也可能直接变为 Failed。事件可能不按顺序送达,参见事件顺序。
事件内容
失败原因
请根据failed_reason.code 决定如何处理。
示例事件
以下示例只展示data 对象。外层结构所有事件都一样,参见事件结构。
转出请求已受理
记录本次转出,不要重复提交。requested_target 与您创建转出时提交的内容一致,请核对。
转出完成
在您的系统中将该笔转出标记为已完成。这表示 Cobo 已完成转账,不表示收款方平台已经入账。转出部分完成
按failed_amounts 的金额另建一笔新的转出,不要重发已成功的部分。
本例请求转出两种币种,其中一种在转出交易上失败,因此对象级和条目级的原因都有。
转出失败
⚠️ 转出项也可能在任何转出交易产生之前就失败。本例在资金归集过程中失败,因此failed_amounts 有金额,但 transactions 为空。
Off-Ramp 转出被银行拒绝
这不是终态。 链上那一段已经完成(transactions 里的条目是 Completed),是收款银行退回了法币入账,所以 failed_amounts 为空。联系 Cobo 处理,并等待该笔转出的后续事件:重试成功时,您会先收到一条 Transferring,再收到 Completed。
payment.bank_withdrawal.status.updated
银行提现到达 Completed 或 Failed 时触发;Pending 和 Processing 不发事件。银行提现把法币从您的某个虚拟账户转出到目标银行账户,通过 Create bank withdrawal 创建。
事件内容:
data 对象的 data_type 为 PaymentBankWithdrawal,并包含:
bank_withdrawal_id(必填)—— Cobo 生成的银行提现 ID。request_id(必填)—— 您创建银行提现时提供的请求 ID。source_bank_account_id(必填)—— 来源银行账户 ID,必须是虚拟账户(标记为VA)。target_bank_account_id(必填)—— 接收本次提现的目标银行账户 ID。source_bank_account(必填)—— 来源银行账户的完整信息。target_bank_account(必填)—— 目标银行账户的完整信息。currency(必填)—— 银行提现的法币币种,例如USD。amount(必填)—— 银行提现金额,以该币种展示单位的十进制字符串表示,例如100.00。bank_tx_fee(选填)—— 本次银行提现收取的银行交易手续费。status(必填)—— 当前状态,取值为Pending、Processing、Completed、Failed之一。remark(选填)—— 银行提现备注。failed_reason(选填,字符串)—— 银行提现失败的原因文本,没有code,仅当status为Failed时有值。timeline(必填)—— 银行提现的状态时间线。每一项包含一个status和进入该状态的timestamp,Unix 时间戳(秒)。created_timestamp(必填)—— 创建时间,Unix 时间戳(秒)。
银行提现的 payload 不携带
updated_timestamp。要确定它何时进入当前状态,请读取 timeline 的最后一项。高级事件
需要资金转出的链上交易细节时,可订阅高级事件payment.payout.status.updated,参见高级事件。