SWIFT Payment

SWIFT stands for Society for Worldwide Interbank Financial Telecommunication

SWIFT------环球银行金融电信协会

|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ISO 20022 | https://www.iso20022.org/https://www.swift.com/standards/iso-20022 |
| MT and MX Equivalence Tables | https://www2.swift.com/knowledgecentre/rest/v1/publications/stdsmt_mt_mx_eq_tbl/_latest/stdsmt_mt_mx_eq_tbl.pdf |
| Funds MT to MX Mapping | https://www2.swift.com/knowledgecentre/publications/stdsmt_funds_mt_mx_map |
| Standards MT | https://www2.swift.com/knowledgecentre/products/Standards%20MT |
| Standards MX | https://www2.swift.com/knowledgecentre/products/Standards%20MX |
| Specific Message Example | Format Spec: https://www2.swift.com/knowledgecentre/publications/us1m_20220722/?topic=mt101-format-spec.htm Field Spec: https://www2.swift.com/knowledgecentre/publications/us1m_20220722/?topic=mt101-field-spec.htm Message Example: https://www2.swift.com/knowledgecentre/publications/us1m_20220722?topic=mt101-example-2.htm |
| ISO15022 and ISO 20022 (MT & MX Basic Knowledge , The Structure Of A SWIFT Message) | https://www.sepaforcorporates.com/swift-for-corporates/read-swift-message-structure/ |
| | |
| BIC | https://www2.swift.com/knowledgecentre/publications/usgi_20220722/2.0?topic=con_31411.htm |

Notes: 内部可以使用 SWIFT Translator & SWIFT Validator。

MT Overview

https://www2.swift.com/knowledgecentre/products/Standards%20MT/publications

  • Category 1 - Customer Payments and Cheques
  • Category 2 - Financial Institution Transfers
  • Category 3 - Treasury Markets - Foreign Exchange, Money Markets and Derivatives
  • Category 4 - Collections and Cash Letters
  • Category 5 - Securities Markets
  • Category 6 - Reference Data
  • Category 6 - Treasury Markets - Commodities
  • Category 7 - Documentary Credits and Guarantees/Standby Letters of Credit
  • Category 8 - Travellers Cheques
  • Category 9 - Cash Management and Customer Status
  • Category n - Common Group Messages

MX Overview

https://www2.swift.com/knowledgecentre/products/Standards%20MX/publications

  • Collateral Management
  • Corporate Actions
  • Cross-Border Payments and Reporting Plus (CBPR+)
  • Funds
  • General Meeting
  • Securities Clearing
  • Settlement and Reconciliation
  • Shareholders Identification Disclosure
  • Technical
  • Total Portfolio Valuation Report
  • Triparty Collateral Management

XSD (XML Schema Definition)

XML Schema Definition or XSD is a recommendation by the World Wide Web Consortium (W3C) to describe and validate the structure and content of an XML document.

ISO 20022 Message Definition: https://www.iso20022.org/iso-20022-message-definitions

Securities: https://www.iso20022.org/iso-20022-message-definitions?business-domain=6

Swift Message Structure ISO 15022 and ISO 20022

SWIFT Message types are the format or schema used to send messages to financialinstitutions on the SWIFT network.

The original message types were developed by SWIFT and retrospectively made into an ISOstandard, ISO 15022.

This was later supplemented by a XML based version under ISO 20022

SWIFT MT Message

A SWIFT MT message consists of the following blocks or segments:

  • {1:} Basic Header Block
  • {2:} Application Header Block
  • {3:} User Header Block
  • {4:} Text Block
  • {5:} Trailer Block

No data is included any data at this point, just the Swift message shell;

{1:}{2:}{3:}{4:

-}

{5:}

SWIFT Message Structure: Basic Header Block

The Basic Header Block provides information about the logical originator of the message

It can be identified by the starting tag {1:

It will typically consist of something like: {1:F01MYXXCODEZABC1234567890} where:

  • {1: -- Identifies the Block (always 1) -- i.e. the Basic Header Block
  • F -- Indicates the Application Id -- in this case, FIN
    • F = FIN (financial application)
    • A = GPA (general purpose application)
    • L = GPA (for logins, and so on)
  • 01 -- Indicates the Service Id
    • 01 = FIN/GPA
    • 21 = ACK/NAK
  • MYXXCODE-- The Logical Terminal Address -- which is typically your BIC 8 (MYXXCODE) + Logical Terminal Code (Z) + Branch Code(ABC)
    • Logical terminal (LT) address. It is fixed at 12 characters; it must not have X in position 9.
    • MYXXCODE is an invalid BIC -- the real BIC must be used
  • 1234 -- Session Number -- It is generated by the user's computer and is padded with zeros
  • 567890 -- Sequence Number -- Sequence number that is generated by the user's computer. It is padded with zeros.
  • } -- Indicated the end of the Basic Header Block

SWIFT Message Structure: Application Header Block

The Application Header Block is identified by starting tag {2:

There are two types of application headers: Input and Output. Both are fixed-length and continuous with no field delimiter

And will look something like: {2:I101 MYXXBANKXJKLU3003} where:

  • {2: -- Indicates the start of the Application Header block
  • I -- Informs you that you're in Input mode (i.e. the Sender), O would indicate Output mode -- so you would be the recipient of the message
  • 101 -- Message type -- in this case, an MT101
  • MYXXBANKXJKL -- The recipients BIC address, consisting of their BIC (MYXXBANK) + Recipients Logical Terminal Code (X) + Recipients Branch Code (JKL)
    • U = the message priority as follows
      • S = System
      • N=Normal
      • U=Urgent
  • 3 -- Delivery Monitoring -- Ask your SWIFT contacts or Service Bureau how you should populate this, if at all -- Optional
    • 3 = Delivery monitoring field is as follows:

      • 1 = Non delivery warning (MT010)
      • 2 = Delivery notification (MT011)
      • 3 = Both valid = U1 or U3, N2 or N
  • 003 -- Non-delivery notification period -- again, ask your SWIFT contacts how to populate this, if at all -- Optional
    • 003 = Obsolescence period. It specifies when a non-delivery notification is generated as follows:

      • Valid for U = 003 (15 minutes)
      • Valid for N = 020 (100 minutes)
  • } -- Indicated the end of the Application Header Block

SWIFT Message Structure: User Header Block

The User Header Block will always starts {3:

And will look something like: {3:{113:SEPA}{108:ILOVESEPA}} where:

  • {3: -- Block ID (always 3)Indicates the start of the User Header Block
  • {113:SEPA} This is an optional 4 alphanumeric bank priority code
  • {108:ILOVESEPA} -- Indicates the Message User Reference (MUR) value, which can be up to 16 characters, and will be returned in the ACK
  • } -- Indicated the end of the User Header Block

SWIFT Message Structure: Text Block

The Text Block will always starts {4:

And will look something like: {4:

Followed by the details of the message you're sending. In this case, it is a MT101 -- as indicated in Application Header Block message type. For this piece, I strongly recommend that you find and read the appropriate SWIFT message specification -- in this instance SWIFT MT101 Format Specifications -- and then work with your bank(s) to understand their specific message requirements.

The format, which is variable length and requires use of CRLF as a field delimiter, is as follows:

复制代码
{4:CRLF
复制代码
:20:PAYREFTB54302 CRLF
复制代码
:32A:970103BEF1000000,CRLF
复制代码
:50:CUSTOMER NAME CRLF
复制代码
AND ADDRESS CRLF
复制代码
:59:/123-456-789 CRLF
复制代码
BENEFICIARY NAME CRLF
复制代码
AND ADDRESS CRLF
复制代码
-}

Finally ending with -}

The example above is of type MT100 (Customer Transfer) with only the mandatory fields completed. It is an example of the format of an ISO 7775 message structure. Block 4 fields must be in the order specified for the message type in the appropriate volume of the SWIFT User Handbook.

The format of block 4 field tags is:

:nna:

nn = Numbers

a = Optional letter, which may be present on selected tags

For example:

:20: = Transaction reference number

:58A: = Beneficiary bank

SWIFT Message Structure: Trailer Block

The Trailer Block will always starts {5:

This is usually automatically added by the systemand specified in the proprietary SWIFT implementation

And ends with }

A message always ends in a trailer with the following format:

{5: {MAC:12345678}{CHK:123456789ABC}

This block is for SWIFT system use and contains a number of fields that are denoted by keywords such as the following:

MAC

Message Authentication Code calculated based on the entire contents of the message using a key that has been exchanged with the destination and a secret algorithm. Found on message categories 1,2,4,5,7,8, most 6s and 304.

CHK

Checksum calculated for all message types.

PDE

Possible Duplicate Emission added if user thinks the same message was sent previously

DLM

Added by SWIFT if an urgent message (U) has not been delivered within 15 minutes, or a normal message (N) within 100 minutes.

Overview of SWIFT MT Categories:

|------------------|--------------------------------------------|
| Message Type | Description |
| MT0xx | System Messages |
| MT1xx | Customer Payments and Cheques |
| MT2xx | Financial Institution Transfers |
| MT3xx | Treasury Markets |
| MT4xx | Collection and Cash Letters |
| MT5xx | Securities Markets |
| MT6xx | Treasury Markets - Metals and Syndications |
| MT7xx | Documentary Credits and Guarantees |
| MT8xx | Travellers Cheques |
| MT9xx | Cash Management and Customer Status |

All SWIFT messages include the literal "MT" (Message Type). This is followed by a three-digit number that denotes the message category, group and type. Consider the following example, which is an order to buy or sell via a third party:

The first digit (3) represents the category. A category denotes messages that relate to particular financial instruments or services such as Precious Metals (6), Treasury (3), or Travellers Cheques (8). The category denoted by 3 is Treasury Markets.

The second digit (0) represents a group of related parts in a transaction life cycle. The group indicated by 0 is a Financial Institution Transfer.

The third digit (4) is the type that denotes the specific message. There are several hundred message types across the categories. The type represented by 4 is a notification.

The first digit (1) represents the category. A category denotes messages that relate to particular financial instruments or services such as Cash Transfer(1), Treasury (3), or Cash Management (9). The category denoted by 1 is Cash Transfer.

The second digit (0) represents a group of related parts in a transaction life cycle. The group indicated by 0 is a Financial Institution Transfer.

The third digit (3) is the type that denotes the specific message. There are several hundred message types across the categories. The type represented by 3 is a notification.

ISO 20022 MX

A new message type expressed in XML syntax, which is more flexible and easier to implement than the previous generation of message types (MT). These message types are developed in accordance with ISO 20022 standard.

Current syntax is as following: xxxx.nnn.aaa.bb, where

  • xxxx is an alphabetic code in four positions (fixed length) identifying the Business Process,
  • nnn is an alphanumeric code in three positions (fixed length) identifying the Message Functionality,
  • aaa is a numeric code in three positions (fixed length) identifying a particular flavour (variant) of Message Functionality,
  • bb is a numeric code in two positions (fixed length) identifying the version.

Consider the following example: TREA.001.001.02

  • TREA refers to 'Treasury'
  • 001 refers to 'NDF opening (notification)'
  • 001 refers to the variant
  • 02 refers to the version message format, in this case version 2 of 'NDF opening' type.

SWIFT Standards for MX Messages:

|-------------------|----------------------------------|
| MX Identifier | Description |
| acmt.xxx.xxx.xx | Account Management |
| admi.xxx.xxx.xx | Administration |
| camt.xxx.xxx.xx | Cash Management |
| defp.xxx.xxx.xx | Derivatives |
| pacs.xxx.xxx.xx | Payments Clearing and Settlement |
| pain.xxx.xxx.xx | Payments Initiation |
| reda.xxx.xxx.xx | Reference Data |
| seev.xxx.xxx.xx | Securities Events |
| semt.xxx.xxx.xx | Securities Management |
| sese.xxx.xxx.xx | Securities Settlement |
| setr.xxx.xxx.xx | Securities Trade |
| trea.xxx.xxx.xx | Treasury |
| tsmt.xxx.xxx.xx | Trade Services Management |

相关推荐
2501_915106329 小时前
不依赖 Mac 也能做 iOS 开发?跨设备开发流程
ide·vscode·macos·ios·个人开发·swift·敏捷流程
2501_915921431 天前
VSCode 写 Swift 运行到 iPhone?快蝎 IDE 开发实战体验
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
东坡肘子1 天前
我的 App 审核被卡了? -- 肘子的 Swift 周报 #128
人工智能·swiftui·swift
奶糖的次元空间3 天前
iOS 学习笔记 - SwiftUI 和 简单布局
ios·swift
2501_915918414 天前
有没有Xcode 替代方案?在快蝎 IDE 中完成 iOS 开发的过程
ide·vscode·ios·个人开发·xcode·swift·敏捷流程
songgeb5 天前
Compositional layout in iOS
ios·swift·设计
1024小神5 天前
记录xcode项目swiftui配置APP加载启动图
前端·ios·swiftui·swift
wjm0410067 天前
ios学习路线-- swift基础2
学习·ios·swift
游戏开发爱好者87 天前
如何使用Instruments和Keymob进行Swift应用性能优化分析
开发语言·ios·性能优化·小程序·uni-app·iphone·swift
游戏开发爱好者88 天前
新的 iOS 开发工具体验,在快蝎 IDE 里完成应用开发与真机调试
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程