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 |

相关推荐
coooliang4 天前
【iOS】SwiftUI状态管理
ios·swiftui·swift
席子哥哥的代码库6 天前
自制简单的图片查看器(python)
开发语言·python·swift
打工人你好7 天前
Swift 的 KeyPath 是什么?
swift
struggle20257 天前
Ollmao (OH-luh-毛程序包及源码) 是一款原生 SwiftUI 应用程序,它与 Ollama 集成,可在 Mac 上本地运行强大的 AI 模型
ios·swiftui·swift
神仙别闹9 天前
基于Swift实现拼图游戏
开发语言·搜索引擎·swift
神仙别闹10 天前
基于Swift实现仿IOS闹钟
ios·cocoa·swift
ctf_022614 天前
echarts 3d中国地图飞行线
3d·echarts·swift
没头脑的ht14 天前
UITableView的复用原理
ios·swift
自不量力的A同学17 天前
苹果公司宣布正式开源 Xcode 引擎 Swift Build145
swift
SchneeDuan17 天前
iOS--SDWebImage源码解析
ios·缓存·swift·第三方库·sdwebimage