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 |

相关推荐
smallcatlei20 小时前
ios 快捷指令扩展(Intents Extension)简单使用 swift语言
ios·swift
HH思️️无邪2 天前
iOS AVAudioSession 详解【音乐播放器的配置】
ios·音频·swift
今天也想MK代码2 天前
基于swiftui 实现3D loading 动画效果
ios·swiftui·swift
pk_xz1234562 天前
Swift 是一种由苹果公司开发的强大而直观的编程语言,主要用于开发 iOS、macOS、watchOS 和 tvOS 等苹果平台的应用程序。
macos·ios·swift
Adam.com2 天前
#Swift The difference between Parameter and Agrument
服务器·ssh·swift
zuguorui2 天前
XCode16中c++头文件找不到解决办法
开发语言·c++·xcode·swift
concisedistinct2 天前
在macOS的多任务处理环境中,如何平衡应用的性能与用户体验?这是否是一个复杂的优化问题?如何优化用户体验|多任务处理|用户体验|应用设计
macos·swift
淡暗云之遥3 天前
XCode16.0 Command PhaseScriptExecution failed with a nonzero exit code 的错误
ios·bug·xcode·swift
胖虎13 天前
SwiftUI(五)- ForEach循环创建视图&尺寸类&安全区域
ios·swiftui·swift·foreach·安全区域
HH思️️无邪4 天前
iOS MPNowPlayingInfoCenter 通知栏、锁屏 显示当前播放的媒体信息
ios·swift·媒体