第二章:SWIFT的运行机制

发布日期:2022-12-20 11:45
SWIFT 制定了金融机构间的通讯标准,那它的消息模板(报文)支持哪些场景呢?经过抽象和沉淀主要有9大类:
客户汇款 Customer Transfer
银行头寸调拨 Financial Institution Transfers
外汇买卖和存放款 Foreign Exchange
托收 Collections,Cash Letters
证券 Securities
贵金属和辛迪加 Precious Metals and Syndication
跟单信用证和保函 Documentary Credits and Guarantees
旅行支票 Traveler’s Cheque
银行帐务 Bank Statement

每一大类报文下面又分很多小类,每一类报文都有严格的格式要求、互斥条件等等等等,有兴趣的可以研究研究。本文中我们只聊客户汇款(MT1XX)这一个场景,也是 SWIFT 网络最重要的使用场景。
一个典型的 MT103(客户汇款) 报文如下图所示:
简单来讲,你可以把每一个 SWIFT 的报文想象成一封邮件,但是邮件的格式是定好的:谁发出的、谁收、中途要中转给谁、交易的类型是什么、交易的明细(金额、币种、清算信息、收付款人信息、费用)等等,上面的每一个字段都可以对照 SWIFT 的文档找出其语义(比如 71A 表示 Details of Charges,即收费方式,上图就有注释,SHA表示收付款人共同承担),有兴趣的小伙伴们可以翻译出来看下。
我们知道银行间 Fund Transfer 是一个特别复杂的问题(如果还涉及到不同国家、不同币种、不同时区那就更复杂了)。而一笔资金要想正确的发生流转,有两个条件(这俩核心条件缺一不可):
信息流:也就是我怎么告诉你我要给你钱。SWIFT 就是专门干这个的,但并不是所有银行的所有信息流都会走 SWIFT,只是部分场景会用。
资金流:也就是我怎么真实地把钱给你。理论上来说,只要是银行间的通讯,都可以走 SWIFT 网络,不仅仅是跨境场景(只不过跨境场景下用的最多),同一个国家内的银行间通讯也可以走 SWIFT 网络。下面我们就由浅入深,分别看一下 SWIFT 在几种场景上的具体流程(暂且只讨论汇款的场景)。 

场景1
假设 A、B 两家银行是在一个国家(时区相同),transfer 的是同一种货币,而且两家银行可以通过同一个清算系统进行资金清算,这是最简单的模式,两家可以直接通讯、直接清算。

场景2
假设 A、B 两家银行是在不同的国家(时区同不同无所谓),transfer 的是同一种货币,但是 AB 两家银行之间并没有直接的合作关系,A 银行的客户 x 要汇款给 B 银行的客户 y。
A、B 没有直接的合作就意味着两家之间没办法直接打通“资金流”,这时候就需要双方借助“代理行”或者“中转行”来完成。
“代理行”啥意思呢?就是找一家和对手方在同一个国家的银行做自己的代理行,在代理行开个户,来和对方进行资金的交收。这时候你可能会奇怪,都找当地的银行做代理行了,为什么不直接合作呢?其实找一家代理行的主要目的是为了能够和对手方银行在同一个地方、用同一个清算系统去做实际资金的交收, A 银行也是可以找 B 银行做代理行的。
通常呢,对于不差钱的银行来说,最简单的代理行就是自己去对方的国家开个分行,让分行和对手行缔约。而差钱的银行通常找自己关系好的,信得过的同行来做代理行。如此一来,通过引入代理行,资金清算在付款行/收款行本地用当地的清算系统就搞定了,两家的资金流就打通了。
“中转行”又是啥意思呢?其实原理和作用上和代理行差不多,但是有时候代理行方式是搞不定的,比如说 A、B 两家银行所在的两个国家之间并没有金融上的合作关系(比如没建交甚至是敌对关系),这时候你有钱去开分行人家都不让你去,也不允许你到人家国内来搞什么代理行,这时候怎么办呢?有办法,到一个第三方国家找一家银行 C,也就是所谓的中转行,A、B 银行都在 C 偷偷摸摸的开户、交收资金,这样也能打通资金流。现实中的场景会复杂很多,这里只是举一个例子而已。
当资金流打通,我们再说回信息流。银行找“代理行”或者“中转行”就会多出来一个银行进行通讯,链路就变得复杂起来了。一笔 transfer,是 A 和 B 直接通讯呢?还是 A -> 代理行 -> B 呢?答案是 :SWIFT 都支持,这就涉及到 SWIFT汇款报文发送的两种模式:Serial 模式和 Cover 模式。
Serial 模式字面的意思就是串行消息,在汇路上的银行间一个个传递下去,资金交收处理完了传给下一个,最终到达收款行,简单的流程如下图所示(图中我们假设是收款行使用了代理行去收款,其实,付款行用代理行去付款也是一样的原理,当然现实中的情况会复杂很多,比如双方都用代理行,代理行还不行又加中间行等等,图为简化后的模型):

Cover 模式简单理解就是并行消息,A 先给 B 发一个提醒消息(MT103 报文,即客户汇款)说我已经给你打钱了,但是 B 这时候还没有真的收到钱,等汇路上的其他银行处理完了,B 又会收到代理行发来的一条消息(MT202 COV 报文,即银行头寸划拨)说钱我已经给你拨过去了,这时候 B 才会真正的给 y 客户入账。
当然实际操作中 B 有可能在收到 A 的提醒消息后马上就给 y 客户入账了,这牵涉到很多因素,比如 B 很信任 A,再比如说如果这笔汇款反正也没多少钱,就先入账给客户算了,提高提高客户满意度。 
Cover 模式的简单流程如下图所示
但是 Cover 模式也会给收款行带来一些困扰,因为它不像 Serial 模式一镜到底,大家发的都是 MT103 报文,报文内自带清算信息。Cover 模式下,有的代理行不按 SWIFT 定下的套路出牌,最后给你不是发的 MT202 COV 报文,他给你来个 MT910(贷记证实)或者 MT950(对帐单),这时候还得进行核对。 

场景3
假设 A、B 两家银行是在不同的国家(时区同不同无所谓),transfer 的是不同的货币,但是 AB 两家银行之间并没有直接的合作关系,A 银行的客户 x 要汇出 α 币种给 B 银行的客户 y 交收 β 币种。
套路和场景2差不多,这里就略过了。