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 |

相关推荐
RyanGo3 小时前
iOS断点下载
ios·swift
杂雾无尘6 小时前
掌握生死时速:苹果应用加急审核全攻略!
ios·swift·apple
HarderCoder6 小时前
Swift 6.2 中的 `@concurrent`
ios·swift
YungFan9 小时前
iOS26适配指南之通知
ios·swift
大熊猫侯佩10 天前
消失的它:摆脱 SwiftUI 中“嵌入视图数量不能超过 10 个”限制的秘密
swiftui·swift·apple
大熊猫侯佩10 天前
Swift 抛砖引玉:从数组访问越界想到的“可抛出错误”属性
swift·apple
大熊猫侯佩10 天前
ruby、Python 以及 Swift 语言关于 “Finally” 实现的趣谈
python·ruby·swift
minos.cpp10 天前
从厨房到代码台:用做菜思维理解iOS开发 - Swift入门篇①
ios·蓝桥杯·swift
山水域10 天前
Meta之 AMM 数据获取详解
swift
杂雾无尘10 天前
开发者必看,全面解析 iOS 架构,探索 iOS 背后的秘密!
ios·swift·apple