SWIFT Payments and Reporting
SWIFT (Society for Worldwide Interbank Financial Telecommunication) is an international, electronic communication network used by banks and corporations to exchange standardized financial messages throughout the world. The SWIFT format is the universal standardized format that has been developed for this purpose. It has 10 message categories and uses a fixed format with set codes to maintain data accuracy.
This document details the format and implementation of SWIFT messages generated by GS Bank.
Message Building Blocks
The message consists of up to 5 blocks as described below:
Basic Header
The group header consists of identification of the file as well as information that is common to all the individual transactions in the file and some additional control information. This block is mandatory and present only once.
Mandatory(M)/ Optional(O) | Field Name | Max Length | Sample Usage | Remarks |
---|---|---|---|---|
M | AppID | 1A | F | Identifies application within which the message is being sent or received. Possible Options :F, O or L |
M | Service ID | 2N | 01 | Identifies the type of message, FIN: 01 or ACK/NAK: 21 |
M | LTAddress | 12X | BICXXX99XBRC | Senders address for output messages consisting of BIC |
M | Session Number | 4N | 0000 | Identifies the session in which message was transmitted |
M | Sequence Number | 6N | 012359 | Receiver’s current output session |
Sample : {1: F01BICXXX99XBRC0000012359}
Application Header
Information about message type, sender and when it was delivered
Mandatory(M)/ Optional(O) | Field Name | Max Length | Sample Usage | Remarks |
---|---|---|---|---|
M | Input/Output ID | 1A | I | Possible options O or I |
M | Message Type | 3N | 940 | Identifies the message type |
M | Input Time local to sender of message | 4N | 0546 | The hour and minute on which sender sent the Swift Message, HHMM format |
M | Message Reference | 28X | 200507BANKFR99AXXX0000000000 | Consist of input date local to receiver(6N), Receiver’s Swift Address(12X), session number(4N) and sequence number(6N) |
M | Output Date | 6N | 200507 | Date on which message is delivered to receiver, YYMMDD |
M | Output Time | 4N | 0546 | Time in HHMM, local to receiver, when message is delivered to receiver |
M | Message Priority | 1X | N | Always N |
Sample: {2: I9400546200507BANKFR99AXXX00000000002005070546N}
User Header
An optional field that consists of processing instructions. This section is not currently used by GS Bank.
Text Block
It represents the actual data to transfer. Tags within this section are described further in block composition section.
Trailer Block
This relates to message handling or security information consisting of non-mandatory fields except the checksum. Sample: 5: {CHK:123456789123}
SWIFT Acknowledgements
The message consists of 2 blocks the {1:} basic header block and {4:} Text block as described below:
The Basic Header
The block is same as described earlier with Service ID now populated with value 21 signifying it’s for Acknowledgement/Negative Acknowledgement Sample: {1: F21BICXXX99XBRC0000012359}
The Text block
Most important information from this block beginning with {4:} is the sub field {451:} indicating whether the message is successfully accepted or not
Mandatory(M)/Optional(O) | Field Name | Sample Usage | Remarks |
---|---|---|---|
M | {177: | {177:2008241640} | Local date and time of submitting user on the SWIFT Network |
M | {451: | {451:0} | Accept/Reject Tag, if message is accepted populated with 0, if message is rejected populated with 1 |
O | {405: | {405:M60} | If the message is rejected this field will be populated with SWIFT reject reason error code (see appendix) |
M | {108: | {108: TRN0000123456789} | This is the sent reference in the outbound message |
Sample SWIFT Ack: {1: F21BICXXX99XBRC0000012359} {4: {177:2008241640} {451:0} {108: TRN0000123456789}}
Sample SWIFT Nack: {1: F21BICXXX99XBRC0000012359} {4: {177:2008241640} {451:1} {405:M60} {108: TRN0000123456789}}
Appendix
Permitted character set in SWIFT messages
- Alphabets [A-Z; a-z]
- Numerals [0-9]
- Characters: space ( ), period (.),open parenthesis ( and close parenthesis ), hyphen (-), slash (/), less than (<) plus (+), ampersand (&), dollar sign ($), asterisk (*), semi-colon (;), percent sign (%), at sign (@), equal sign (=), double quote (“), and back-slash (\).
Legend Table - Data Types
Value | Description |
---|---|
N | Numeric, Digits 0-9 |
B | Amount, used to display amount in account with ',' compulsorily |
A | Alphabetic, letters A-Z |
X | Alphanumeric, contains digits, letter and supported characters |
SWIFT Error Codes
Value | Description |
---|---|
M60 | Non-SWIFT character encountered |
T32 | An expected subfield, component, or component separator was not found. |
T54 | The format of the first line of Field 50F (Party Identifier) is invalid. This check applies to: Field 50F in MT 101 |
T50 | Date error. Either Invalid Date subfield (this check applies to all MTs with a Date subfield) OR Invalid year in a Value Date subfield of the MTs that are candidate for the Value Date Ordering process. The valid range is:00-60 for the years 2000-2060, 80-99 for the years 1980-1999 Field 30 in MT 101 |
SWIFT Transaction Codes
Transaction Type Identification Codes | Description |
---|---|
FCHG | Charges and other expenses |
FCMS | Cash management item - Sweeping |
FINT | Interest |
FODC | Overdraft charge |
FRTI | Returned item |
NCHK | Cheques |
NCMI | Cash management item - No detail |
NCMS | Cash management item - Sweeping |
NDDT | Direct Debit Item |
NRTI | Outgoing wire return |
NTRF | Transfer |
Payment Initiation
arrow_forwardTransfer payment initiation messages for send book to book, domestic wire, and/or international payments instructions
Statements and Reporting
arrow_forwardReview balances and transactions through intraday reporting and end of day reporting
Posting Advices
arrow_forwardReview cash flow and customer status through intraday reporting and end of day reporting
Was this page useful?
Give feedback to help us improve developer.gs.com and serve you better.