Credit transfer workflow

December 27, 2021

简单来说,Credit transfer 就是将一笔钱从一个账号体系的某账户转移到另一个账号体系的某账号,这就是支付最本质最精髓的东西 —— money movement,也就是所有权的转移。

ISO 20022 精准的定义了这个过程,以下是 WalletsNet 的实践,从信息流的角度看,一次 Credit transfer / money movement 的过程中一般会出现这么几种情况:

1. 正常流程

一个正常的 Credit transfer 完整的流程如下图所示:

 

2. 被 WalletsNet 驳回

如果遇到以下情况,参与者发送给 WalletsNet 的消息会被驳回:

3.交易超时

⚠️ 收款方必须在 10秒内(自交易发起时开始计时)反馈是否接受交易,若收款方未能在规定的时间(10秒)内向 WalletsNet 返回交易处理的报文,则 WalletsNet 认为交易已经超时,然后会主动向交易的双方发送交易被取消的报文,交易结束,交易双方应当各自在自己的系统内撤销交易(如下图)。

下图只是交易超时的一种场景,实际上交易超时会在很多情况下出现,比如,在下图中,可能2这一步直接就失败了,即 B 的服务可能已经中断了, WalletsNet 即使经过几次重试也无法将消息发送给B,那么也会造成交易超时。

 

4. 对方机构拒绝交易

对方机构收到 credit transfer 的交易请求(即 pacs.008)后,如果想拒绝这笔交易,则发送 Negative 的反馈消息就行了,WalletsNet 收到 Negative 的反馈消息后什么也不做,直接转发给付款方FI。

 

完结

本文详细介绍了 Credit Transfer 的基本交易流程,了解了该流程就可以轻松构建出很多互联互通的交易场景了,比如 P2P 跨境汇款、跨境电商收款、面对面付款等等。

实际上 Credit Transfer 还有很多更高级的玩法,比如:

各种场景千变万化,看似异常复杂,其实基本原理都是一样的, WalletsNet 也都是完美的支持的,这些复杂场景我们以后以案例的形式慢慢再分享吧。

附录(报文样例)

pacs.008 报文样例

pacs.008 报文使用场景:

编号发出方收到方备注
1付款方 FIWalletsNet付款方发出付款报文
2WalletsNet收款方 FI转发付款方的付款指令给收款方

以下 pacs.008 message sample 对应的场景为「编号-1」

 

pacs.002 报文样例

pacs.002 报文使用场景:

编号发出方收到方备注
1WalletsNet付款方 FIWalletsNet 通知付款方 FI 最终交易结果
2WalletsNet付款方 FIWalletsNet 驳回收款方 FI 提交的付款交易
3收款方 FIWalletsNet收款方 FI 向 WalletsNet 反馈交易处理状态(接受/拒绝)
4WalletsNet收款方 FIWalletsNet 通知收款方 FI 最终交易结果

以下 pacs.002 message sample 对应的场景为「编号-3」

📝 当 WalletsNet 以 pacs.002 驳回时,TxSts 为 DS0H,即 Signer is not allowed to sign for this account.

admi.002 报文样例

admi.002 报文使用场景:

编号发出方收到方备注
1WalletsNet付款方 FIWalletsNet 驳回付款方 FI 提交的报文,如格式有误、业务无法处理等

以下 admi.002 message sample 对应的场景为「编号-1」

💡 admi.002 的 Reject Reason Code 如下:

Reason Code说明ISO Description
AC14收款方账号错误Creditor account type missing or invalid
AG01不允许的交易类型Transaction forbidden on this type of account (formerly NoAgreement)
AG09未找到引⽤的消息报文Original payment never received.
AGNT未知的参与⽅Agent in the payment workflow is incorrect
AM01交易⾦额为0Specified message amount is equal to zero
AM06交易⾦额为负数Specified transaction amount is less than agreed minimum.
AM09交易⾦额错误Amount received is not the amount agreed or expected
AM11交易币种错误Transaction currency is invalid or missing
AM13交易⾦额超出上限Transaction amount exceeds limits set by clearing system
CURR不允许的交易币种Currency of the payment is incorrect
DT02时间格式错误Invalid creation date and time in Group Header (eg, historic date)
DS0H参与⽅不存在或者签名错误Signer is not allowed to sign for this account.
DU01MessageId 重复Message Identification is not unique.
FF06未知的枚举类型Category Purpose code is missing or invalid
HD02Member Id 未找到 
IN01业务流程错误 

 

camt.056 报文样例

camt.056 报文使用场景:

编号发出方收到方备注
1WalletsNet付款方 FIWalletsNet 通知交易被取消
2WalletsNet收款方 FIWalletsNet 通知交易被取消

以下 camt.056 message sample 对应的场景为「编号-1」或者「编号-2」