You are on page 1of 12

XDO file name: Mapping of Payment Format: Date: 7/23/2007

IBYDE_S103_en.rtf Swift MT 103 Format

Format Setup:

Hint: Define formatting options

<TEMPLATE TYPE> DELIMITER_BASED

<OUTPUT CHARACTER SET> ISO-8859-1


<NEW RECORD CHARACTER> Carriage Return
<CASE CONVERSION> UPPER

Format Data Records:


Hint: This is the body of the format. Define your format records here.
Create one table for each record or group of records that are at the same level.

<LEVEL> OutboundPaymentInstruction
<MAXIMUM <FORMAT> <DATA> <TAG> <COMMENTS>
LENGTH>
<NEW RECORD> BASIC_HEADER_BLOCK
1 Alpha { Block delimiter
2 Alpha 1: Block ID
1 Alpha F Application ID: FIN
2 Alpha 01 Service ID. 01 = FIN/GPA
12 Alpha PaymentInstructionInfo BIC or BEI who pushes the message onto SWIFT
/PaymentSystemAccount/ Network.
AccountSettings[Name= For SCORE/MA-CUG this is the first party who
SWIFT_MT_SENDER_ADDR] initiates the payment order (debtor or payer);
/Value for EDI this is the bank of the first party. It
would actually push the message onto SWIFT Net.
4 Alpha 0000 Session number.
This must be replaced by the valid SWIFT Session
number before the message is pushed onto the

1
SWIFT Net.
6 Alpha 000000 Sequence number.
This must be replaced by the valid SWIFT Sequence
number before the message is pushed onto the
SWIFT Net.
1 Alpha } Block delimiter
<NEW RECORD> APPLICATION_HEADER_BLOCK
1 Alpha { Block delimiter
2 Alpha 2: Block ID
1 Alpha I Input message flag
3 Alpha 103 Message type
12 Alpha PaymentInstructionInfo BIC of the receiver.
/PaymentSystemAccount/ For SCORE/MA-CUG this is the bank of the first
AccountSettings[Name= party; for EDI this is the bank of the third
SWIFT_MT_RECEIVER_ADDR party payee.
]/Value
1 Alpha NVL(PaymentInstruction Message Priority
Info/PaymentSystemAcco
unt/AccountSettings[Na
me=SWIFT_MT_MSG_PRIOR
ITY]/Value, N)
1 Alpha NVL(PaymentInstruction Monitoring Option
Info/PaymentSystemAcco
unt/AccountSettings[Na
me=SWIFT_MT_MONITOR_O
PTION]/Value, 3)
3 Alpha IF Obsolescence Period
NVL(PaymentInstruction
Info/PaymentSystemAcco
unt/AccountSettings[Na
me=SWIFT_MT_MSG_PRIOR
ITY]/Value, N) =
N THEN
020
ELSE
003
END IF
1 Alpha } Block delimiter
<NEW RECORD> USER_HEADER_BLOCK

2
1 Alpha { Block delimiter
2 Alpha 3: Block ID
1 Alpha { Block delimiter
4 Alpha 108: Block ID
16 Alpha PaymentInstructionInfo Message User Reference for reconciliation with
/InstructionReferenceN ACK
umber
1 Alpha } Block delimiter
1 Alpha } Block delimiter

<LEVEL> OutboundPayment
<MAXIMUM <FORMAT> <DATA> <TAG> <COMMENTS>
LENGTH>
<NEW RECORD> TEXT_BLOCK
1 Alpha { Block delimiter
2 Alpha 4: Block ID
<NEW RECORD> 20_Senders_reference
1 Alpha : Data Element Delimiter
2 Alpha 20 Field Tag Number
1 Alpha : Data Element Delimiter
16 Alpha PaymentNumber/PaymentR Senders Reference. This field specifies the
eferenceNumber reference to the entire message.
<NEW RECORD> 23B
1 Alpha : Data Element Delimiter
3 Alpha 23B Field Tag Number
1 Alpha : Data Element Delimiter
4 Alpha CRED Bank Operation Code
CRED = message contains a credit transfer where
there is no SWIFT Service Level involved
<NEW RECORD> 32A
1 Alpha : Data Element Delimiter
3 Alpha 32A Field Tag Number
1 Alpha : Data Element Delimiter
6 Date, PaymentDate Settlement Date
YYMMDD NETWORK VALIDATED RULES
Date must be a valid date expressed as YYMMDD.
3 Alpha PaymentAmount/Currency Currency Code

3
/Code NETWORK VALIDATED RULES
Currency must be a valid ISO 4217 currency code.
11 Number, PaymentAmount/Value Settlement Amount
Integer The amount to be booked/reconciled at interbank
level.
NETWORK VALIDATED RULES
The integer part of Amount must contain at least
one digit. A decimal comma is mandatory and is
included in the maximum length.
1 Alpha , SWIFT Decimal Point. Required.
3 Number, PaymentAmount/Value Settlement Amount, decimal part
Decimal
<NEW RECORD> 50K_CompanyBankAccountNumber
1 Alpha : Data Element Delimiter
3 Alpha 50K Field Tag Number
1 Alpha : Data Element Delimiter
1 Alpha / Required Character for this tag number
34 Alpha BankAccount/BankAccoun Payer Bank Account Number
tNumber
<NEW RECORD> 50K_CompanyName
35 Alpha Payer/LegalEntityName Payer name. This field specified the originator
of the transfer.
<NEW RECORD> 50K_CompanyAddress1
35 Alpha Payer/Address/AddressL Payer Address Line1
ine1
<NEW RECORD> 50K_CompanyAddress2
<DISPLAY CONDITION> Payer/Address/AddressLine2 IS NOT NULL
35 Alpha Payer/Address/AddressL Payer Address Line2
ine2
<NEW RECORD> 50K_CompanyAddress3
<DISPLAY CONDITION> Payer/Address/City IS NOT NULL OR
Payer/Address/State IS NOT NULL OR
Payer/Address/PostalCode IS NOT NULL
35 Alpha Payer/Address/City || Payer City, State and Zip Code.
, ||
Payer/Address/State ||
, ||
Payer/Address/PostalCo
de

4
<NEW RECORD> 57A_PayeeBank
<DISPLAY CONDITION> PayeeBankAccount/SwiftCode IS NOT NULL AND
DeliveryChannel/FormatValue NOT IN (CHIPS_UID, CHIPS_PID) AND
(PayeeBankAccount/BranchNumber IS NOT NULL OR
(PayeeBankAccount/BranchNumber IS NULL AND
(DeliveryChannel/FormatValue IN (RT, FWT))))
1 Alpha : Data Element Delimiter
3 Alpha 57A Field Tag Number
1 Alpha : Data Element Delimiter
2 Alpha // Required Character for this tag number
2 Alpha IF Payee bank identification info
PayeeBankAccount/BankA
ddress/Country = AT To request the bank to deliver the payment by
AND Fedwire or some other RTGS system, set the
LENGTH(PayeeBankAccoun corresponding value for the delivery channel of
t/BranchNumber) = 6 the payment (document payable) regardless the
THEN AU Payee bank (branch) SWIFT code is set or not.
ELSIF
PayeeBankAccount/BankA
ddress/Country = DE
THEN BL
ELSIF
PayeeBankAccount/BankA
ddress/Country = CA
THEN CC
ELSIF
PayeeBankAccount/BankA
ddress/Country = UK
THEN SC
ELSIF
PayeeBankAccount/BankA
ddress/Country = CH
THEN SW
ELSIF
DeliveryChannel/Format
Value = FWT
THEN FW
ELSIF
DeliveryChannel/Format
Value = RT

5
THEN RT
ELSE
PayeeBankAccount/BankA
ddress/Country
END IF
32 Alpha IF Payee bank identification info
DeliveryChannel/Format
Value IN (FWT, RT)
THEN

ELSE
PayeeBankAccount/Branc
hNumber
END IF
<NEW RECORD> 57A_PayeeSwiftCode
<DISPLAY CONDITION> PayeeBankAccount/SwiftCode IS NOT NULL AND
DeliveryChannel/FormatValue NOT IN (CHIPS_UID, CHIPS_PID) AND
(PayeeBankAccount/BranchNumber IS NOT NULL OR
(PayeeBankAccount/BranchNumber IS NULL AND
(DeliveryChannel/FormatValue IN (RT, FWT))))
11 Alpha PayeeBankAccount/Swift Swift Code
Code
<NEW RECORD> 57A_PayeeBank_SwiftCode_Only
<DISPLAY CONDITION> PayeeBankAccount/SwiftCode IS NOT NULL AND
(PayeeBankAccount/BranchNumber IS NULL AND
(DeliveryChannel/FormatValue NOT IN (RT, FWT))
OR DeliveryChannel/FormatValue IN (CHIPS_UID, CHIPS_PID))
1 Alpha : Data Element Delimiter
3 Alpha 57A Field Tag Number
1 Alpha : Data Element Delimiter
11 Alpha PayeeBankAccount/Swift Swift Code
Code
<NEW RECORD> 57C_PayeeBank
<DISPLAY CONDITION> PayeeBankAccount/SwiftCode IS NULL AND
PayeeBankAccount/BranchNumber IS NOT NULL AND
PayeeBankAccount/BankAddress/AddressLine1 IS NULL
1 Alpha : Data Element Delimiter
3 Alpha 57C Field Tag Number
1 Alpha : Data Element Delimiter

6
2 Alpha // Required Character for this tag number
2 Alpha IF Payee bank identification info
PayeeBankAccount/BankA
ddress/Country = AT
AND
LENGTH(PayeeBankAccoun
t/BranchNumber) = 6
THEN AU
ELSIF
PayeeBankAccount/BankA
ddress/Country = DE
THEN BL
ELSIF
PayeeBankAccount/BankA
ddress/Country = CA
THEN CC
ELSIF
PayeeBankAccount/BankA
ddress/Country = UK
THEN SC
ELSIF
PayeeBankAccount/BankA
ddress/Country = CH
THEN SW
ELSIF
DeliveryChannel/Format
Value = CHIPS_UID
THEN CH
ELSIF
DeliveryChannel/Format
Value = CHIPS_PID
THEN CP
ELSIF
DeliveryChannel/Format
Value = FWT
THEN FW
ELSIF
DeliveryChannel/Format
Value = RT
THEN RT

7
ELSE
PayeeBankAccount/BankA
ddress/Country
END IF
32 Alpha PayeeBankAccount/Branc Payee bank identification info
hNumber
<NEW RECORD> 57D_PayeeBank
<DISPLAY CONDITION> PayeeBankAccount/SwiftCode IS NULL AND
PayeeBankAccount/BranchNumber IS NOT NULL AND
PayeeBankAccount/BankAddress/AddressLine1 IS NOT NULL
1 Alpha : Data Element Delimiter
3 Alpha 57D Field Tag Number
1 Alpha : Data Element Delimiter
2 Alpha // Required Character for this tag number
2 Alpha IF Payee bank identification info
PayeeBankAccount/BankA
ddress/Country = AT
AND
LENGTH(PayeeBankAccoun
t/BranchNumber) = 6
THEN AU
ELSIF
PayeeBankAccount/BankA
ddress/Country = DE
THEN BL
ELSIF
PayeeBankAccount/BankA
ddress/Country = CA
THEN CC
ELSIF
PayeeBankAccount/BankA
ddress/Country = UK
THEN SC
ELSIF
PayeeBankAccount/BankA
ddress/Country = CH
THEN SW
ELSIF
DeliveryChannel/Format
Value = CHIPS_UID

8
THEN CH
ELSIF
DeliveryChannel/Format
Value = CHIPS_PID
THEN CP
ELSIF
DeliveryChannel/Format
Value = FWT
THEN FW
ELSIF
DeliveryChannel/Format
Value = RT
THEN RT
ELSE
PayeeBankAccount/BankA
ddress/Country
END IF
32 Alpha PayeeBankAccount/Branc Payee bank identification info
hNumber
<NEW RECORD> 57D_PayeeBankName
<DISPLAY CONDITION> PayeeBankAccount/SwiftCode IS NULL AND
PayeeBankAccount/BankAddress/AddressLine1 IS NOT NULL
35 Alpha PayeeBankAccount/BankN Beneficiary Bank Name
ame
<NEW RECORD> 57D_PayeeBankAddress1
<DISPLAY CONDITION> PayeeBankAccount/SwiftCode IS NULL AND
PayeeBankAccount/BankAddress/AddressLine1 IS NOT NULL
35 Alpha PayeeBankAccount/BankA Address Line1
ddress/AddressLine1
<NEW RECORD> 57D_PayeeBankAddress2
<DISPLAY CONDITION> PayeeBankAccount/SwiftCode IS NULL AND
PayeeBankAccount/BankAddress/AddressLine1 IS NOT NULL AND
PayeeBankAccount/BankAddress/AddressLine2 IS NOT NULL
35 Alpha PayeeBankAccount/BankA Address Line2
ddress/AddressLine2
<NEW RECORD> 57D_PayeeBankAddress3

9
<DISPLAY CONDITION> PayeeBankAccount/SwiftCode IS NULL AND
(PayeeBankAccount/BankAddress/AddressLine1 IS NOT NULL AND
(PayeeBankAccount/BankAddress/City IS NOT NULL OR
PayeeBankAccount/BankAddress/State IS NOT NULL OR
PayeeBankAccount/BankAddress/PostalCode IS NOT NULL))
35 Alpha PayeeBankAccount/BankA City, State and Zip Code.
ddress/City || , ||
PayeeBankAccount/BankA
ddress/State || ,
||
PayeeBankAccount/BankA
ddress/PostalCode
<NEW RECORD> 59
1 Alpha : Data Element Delimiter
2 Number 59 Field Tag Number
1 Alpha : Data Element Delimiter
1 Alpha / Required Character for this tag number
34 Alpha PayeeBankAccount/BankA The bank account number of the beneficiary.
ccountNumber
<NEW RECORD> 59_PayeeName
<DISPLAY CONDITION> Payee/Name IS NOT NULL
35 Alpha Payee/Name Third Party Name (Beneficiary)
<NEW RECORD> 59_PayeeAddress1
<DISPLAY CONDITION> Payee/Name IS NOT NULL AND
Payee/Address/AddressLine1 IS NOT NULL
35 Alpha Payee/Address/AddressL Address Line1
ine1
<NEW RECORD> 59_PayeeAddress2
<DISPLAY CONDITION> Payee/Name IS NOT NULL AND
Payee/Address/AddressLine2 IS NOT NULL
35 Alpha Payee/Address/AddressL Address Line2
ine2
<NEW RECORD> 59_PayeeAddress3
<DISPLAY CONDITION> Payee/Name IS NOT NULL AND
(Payee/Address/City IS NOT NULL OR
Payee/Address/State IS NOT NULL OR
Payee/Address/PostalCode IS NOT NULL)
35 Alpha Payee/Address/City || City, State and Zip Code.
, ||

10
Payee/Address/State ||
, ||
Payee/Address/PostalCo
de
<NEW RECORD> 70_INV
<DISPLAY CONDITION> PaymentDetails IS NOT NULL
1 Alpha : Data Element Delimiter
2 Number 70 Field Tag Number
1 Alpha : Data Element Delimiter
5 Alpha /INV/ Required Character for this tag number
30 Alpha PaymentDetails Invoice
<NEW RECORD> 70_RFB
<DISPLAY CONDITION> PaymentDetails IS NULL AND
RemittanceMessage[1] IS NOT NULL
1 Alpha : Data Element Delimiter
2 Number 70 Field Tag Number
1 Alpha : Data Element Delimiter
5 Alpha /RFB/ Required Character for this tag number
30 Alpha RemittanceMessage[1] Reference for the beneficiary customer
<NEW RECORD> 70_FreeForm
<DISPLAY CONDITION> PaymentDetails IS NULL AND
RemittanceMessage[1] IS NULL AND
PaymentTextMessage[1] IS NOT NULL
1 Alpha : Data Element Delimiter
2 Number 70 Field Tag Number
1 Alpha : Data Element Delimiter
35 Alpha PaymentTextMessage[1] Reference for the beneficiary customer
<NEW RECORD> 71A_BankChargeBearer
1 Alpha : Data Element Delimiter
3 Alpha 71A Field Tag Number
1 Alpha : Data Element Delimiter
3 Alpha BankCharges/BankCharge Details of Charges (Bank Charge Bearer)
Bearer/Code
BEN Beneficiary Customer (Payee)
OUR Ordering Customer (Payer)
SHA - Transaction charges on the sender's side
are to be borne by the ordering customer,
transaction charges on the receiver's side are to

11
be borne by the beneficiary customer.
<NEW RECORD> TEXT_BLOCK_END
2 Alpha -} Block delimiter
<END LEVEL> OutboundPayment

12

You might also like