Validation Rules for Incoming SWIFT Electronic Funds Transfer Reports (EFTSI)
On this page
- FINTRAC header
- Basic header
- Application header (Output from SWIFT)
- Tag 13C
- Tag 20
- Tag 23B
- Tag 23E
- Tag 26T
- Tag 32A
- Tag 33B
- Tag 36
- Tag 50
- Tag 50K
- Tag 53
- Tag 54
- Tag 55
- Tag 56
- Tag 57
- Tag 59
- Tag 59F
- Tag 71A
- Tag 71F
- Tag 71G
Date - March 15, 2021
The purpose of this document is to provide reporting entities with the validation specifications of Incoming SWIFT Electronic Funds Transfer Reports (EFTSI) submitted to the Financial Transactions and Reports Analysis Centre of Canada (FINTRAC).
FINTRAC header
EFTSI.0.1: Report sequence number
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not between 0 and 99999.
EFTSI.0.2: Reporting entity's report reference number
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided text that did not contain only alpha character, numbers, dashes or underscores up to 20 characters.
Reject this report if the report has been segregated.
Reject this report if the previous version of this report (should it exist) is more than 7 years old.
EFTSI.0.3: Action type
Reject this report if the user did not provide a value into this field.
EFTSI.0.4: Reporting entity's identifier number
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not between 0 and 9999999.
EFTSI.0.5: Reporting entity's location number
Reject this report if the user did not provide a value into this field.
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided text that is not between 1 and 15 characters, containing only alpha and numeric characters.
Reject this report if the user provided a branch location that is invalid for the reporting entity given the constraint ' None '.
- None: check to make sure this is a valid branch.
- CAOnly: check to make sure this branch is in Canada.
- ValidCA: check to make sure this branch is valid and is in Canada.
- PortCode: check to make sure this branch is valid or a valid port code.
EFTSI.0.6: 24-hour rule indicator
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not a whole number between 0 and 1.
Basic header
EFTSI.1.1: Application identifier
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided text that is not between 1 and 1 characters, containing only alpha characters.
Reject this report if the user provided a value that does not equal F.
EFTSI.1.2: Service identifier
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not a whole number between 1 and 1.
Reject this report if the user provided a value that does not equal 01.
EFTSI.1.3: Canadian SWIFT LT
Reject this report if the user did not provide a value into this field.
EFTSI.1.4: Session number
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not a whole number between 0 and 9999.
EFTSI.1.5: Sequence number
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not a whole number between 0 and 999999.
Application header (Output from SWIFT)
EFTSI.2.1: SWIFT I/O code
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided text that is not between 1 and 1 characters, containing only alpha characters.
Reject this report if the user provided a value that does not equal O.
EFTSI.2.2: Message type code
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not a whole number between 0 and 999.
Reject this report if the user provided a value that does not equal 103.
EFTSI.2.3: Input time
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not a whole number between 0 and 2359.
EFTSI.2.4: Input date
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not in the format 'yyMMdd' that is a valid calendar date.
EFTSI.2.5: Sender SWIFT LT
Reject this report if the user did not provide a value into this field.
EFTSI.2.6: Input session number
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not a whole number between 0 and 9999.
EFTSI.2.7: Input sequence number
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not a whole number between 0 and 999999.
EFTSI.2.8: Receiver output date
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not in the format 'yyMMdd' that is a valid calendar date.
EFTSI.2.10: Message priority
Reject this report if the user did not provide a value into this field.
Tag 13C - Time indication
EFTSI.13C.1: Time indication code
Reject this report if the user provided text that is not between 1 and 8 characters, containing only alpha characters.
EFTSI.13C.2: Time indication time
Reject this report if the user provided a value that is not one of the following formats:
- HH:mm
- HHmm
EFTSI.13C.3: Time indication offset sign
Reject this report if the user provided a value that does not equal ["+","-"].
EFTSI.13C.4: Time indication offset time
Reject this report if the user provided a value that is not one of the following formats:
- HH:mm
- HHmm
Tag 20 - Transaction reference number
EFTSI.20: Transaction reference number
Reject this report if the user did not provide a value into this field.
Tag 23B - Bank operation code
EFTSI.23B: Bank operation code
Reject this report if the user did not provide a value into this field.
Tag 23E - Instruction code
EFTSI.23E.1: Instruction code
Reject this report if the user provided text that is not between 1 and 4 characters, containing only alpha and numeric characters.
Tag 26T - Transaction type code
EFTSI.26T: Transaction type code
Reject this report if the user provided text that is not between 1 and 3 characters, containing only alpha and numeric characters.
Tag 32A - Value date/Currency/Interbank settlement amount
EFTSI.32A.1: Value date
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not in the format 'yyMMdd' that is a valid calendar date.
Reject this report if the user provided a date that is not after or equal to 2002-06-12.
EFTSI.32A.2: Currency
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided text that is not between 3 and 3 characters, containing only alpha characters.
Reject this report if the user provided a value not in the list:
- All ISO Currencies
EFTSI.32A.3: Interbank settlement amount
Reject this report if the user did not provide a value into this field.
Reject this report if the user provided a value that is not a valid swift dollar amount. A comma as the decimal separator, allow up to 2 digits after the comma, and the comma optional.
Reject this report if the 24-hour rule indicator is off , EFTSI.32A.2 is CAD , and the transaction amount is below $ 10000 CAD on the date of one of EFTSI.32A.1.
Reject this report if the 24-hour rule indicator is off , EFTSI.32A.2 is not CAD , and the transaction amount is below $ 9000 CAD on the date of one of EFTSI.32A.1.
Reject this report if the 24-hour rule indicator is on , EFTSI.32A.2 is CAD , and the transaction amount is above $ 10000 CAD on the date of one of EFTSI.32A.1.
Reject this report if the 24-hour rule indicator is on , EFTSI.32A.2 is not CAD , and the transaction amount is above $ 11000 CAD on the date of one of EFTSI.32A.1.
Tag 33B - Currency code, instructed amount
EFTSI.33B.1: Currency
Reject this report if the user provided text that is not between 3 and 3 characters, containing only alpha characters.
Reject this report if the user provided a value not in the list:
- All ISO Currencies
EFTSI.33B.2: Instruction amount
Reject this report if the user provided a value that is not a valid swift dollar amount. A comma as the decimal separator, allow up to 2 digits after the comma, and the comma optional.
Tag 36 - Exchange rate
EFTSI.36: Exchange rate
Reject this report if the user provided a value that is not a number with decimal places. The decimal delimiter can either be a '.' or ','.
Tag 50 - Ordering customer
EFTSI.50.option: Option
Send a warning if the user provided a value that equals A.
Tag 50K - Ordering customer (Option K)
EFTSI.50K.1: Account number
Reject this report if the value starts with 'XXXX/' and contains extra characters after the slash. 'XXXX/' indicates that there was a code word present in the original 50K line.
Tag 53 - Sender's correspondent
EFTSI.53.option: Option
Send a warning if the user provided a value that equals B.
Tag 54 - Receiver's correspondent
EFTSI.54.option: Option
Send a warning if the user provided a value that equals B.
Tag 55 - Third reimbursement institution
EFTSI.55.option: Option
Send a warning if the user provided a value that equals B.
Tag 56 - Intermediary
EFTSI.56.option: Option
Send a warning if the user provided a value that equals C.
Tag 57 - Account with institution
EFTSI.57.option: Option
Send a warning if the user provided a value that equals B.
Send a warning if the user provided a value that equals C.
Tag 59 - Beneficiary customer
EFTSI.59.option: Option
Send a warning if the user provided a value that equals A.
Tag 59F - Beneficiary customer (Option F)
EFTSI.59F.2-5: Name and address
Send a warning if the user provided a value for the first line 3 that is not in the list:
- All ISO Countries
Tag 71A - Details of charges
EFTSI.71A.1: Charge code
Reject this report if the user provided text that is not between 1 and 3 characters, containing only alpha characters.
Tag 71F - Sender's charges
EFTSI.71F.1: Sender's charge currency
Reject this report if the user provided text that is not between 3 and 3 characters, containing only alpha characters.
Reject this report if the user provided a value not in the list:
- All ISO Currencies
EFTSI.71F.2: Sender's charge amount
Reject this report if the user provided a value that is not a valid swift dollar amount. A comma as the decimal separator, allow up to 2 digits after the comma, and the comma optional.
Tag 71G - Receiver's charges
EFTSI.71G.1: Receiver's charge currency
Reject this report if the user provided text that is not between 3 and 3 characters, containing only alpha characters.
Reject this report if the user provided a value not in the list:
- All ISO Currencies
EFTSI.71G.2: Receiver's charge amount
Reject this report if the user provided a value that is not a valid swift dollar amount. A comma as the decimal separator, allow up to 2 digits after the comma, and the comma optional.
- Date Modified: