Validation Rules for Outgoing SWIFT Electronic Funds Transfer Reports (EFTSO)
On this page
- FINTRAC header
- Basic header
- Application header (Input to SWIFT)
- Tag 13C
- Tag 20
- Tag 23B
- Tag 23E
- Tag 26T
- Tag 32A
- Tag 33B
- Tag 36
- Tag 50
- Tag 50K
- Tag 51A
- Tag 52A
- Tag 52D
- Tag 53
- Tag 53D
- Tag 54
- Tag 54A
- Tag 54D
- Tag 55
- Tag 55A
- Tag 55D
- Tag 56
- Tag 56A
- Tag 56D
- Tag 57
- Tag 57A
- Tag 57D
- 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 Outgoing SWIFT Electronic Funds Transfer Reports (EFTSO) submitted to the Financial Transactions and Reports Analysis Centre of Canada (FINTRAC).
FINTRAC header
EFTSO.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.
EFTSO.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.
EFTSO.0.3: Action type
Reject this report if the user did not provide a value into this field.
EFTSO.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.
EFTSO.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.
EFTSO.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
EFTSO.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.
EFTSO.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.
EFTSO.1.3: Canadian SWIFT LT
Reject this report if the user did not provide a value into this field.
EFTSO.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.
EFTSO.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 (Input to SWIFT)
EFTSO.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 I.
EFTSO.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.
EFTSO.2.3: Receiver's address (SWIFT LT)
Reject this report if the user did not provide a value into this field.
EFTSO.2.4: Message priority
Reject this report if the user did not provide a value into this field.
EFTSO.2.5: Delivery monitoring code
Reject this report if the user provided a value that is not a whole number between 0 and 9.
EFTSO.2.6: Obsolescence period code
Reject this report if the user provided a value that is not a whole number between 0 and 999.
Tag 13C - Time indication
EFTSO.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.
EFTSO.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
EFTSO.13C.3: Time indication offset sign
Reject this report if the user provided a value that does not equal ["+","-"].
EFTSO.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
EFTSO.20: Transaction reference number
Reject this report if the user did not provide a value into this field.
Tag 23B - Bank operation code
EFTSO.23B: Bank operation code
Reject this report if the user did not provide a value into this field.
Tag 23E - Instruction code
EFTSO.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
EFTSO.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
EFTSO.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.
EFTSO.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
EFTSO.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 , EFTSO.32A.2 is CAD , and the transaction amount is below $ 10000 CAD on the date of one of EFTSO.32A.1.
Reject this report if the 24-hour rule indicator is off , EFTSO.32A.2 is not CAD , and the transaction amount is below $ 9000 CAD on the date of one of EFTSO.32A.1.
Reject this report if the 24-hour rule indicator is on , EFTSO.32A.2 is CAD , and the transaction amount is above $ 10000 CAD on the date of one of EFTSO.32A.1.
Reject this report if the 24-hour rule indicator is on , EFTSO.32A.2 is not CAD , and the transaction amount is above $ 11000 CAD on the date of one of EFTSO.32A.1.
Tag 33B - Currency code, instructed amount
EFTSO.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
EFTSO.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
EFTSO.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
EFTSO.50.option: Option
Send a warning if the user provided a value that equals A.
Tag 50K - Ordering customer (Option K)
EFTSO.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.
EFTSO.50K.2: Name and address 1
Reject this report if the user did not provide a value into this field.
Send a warning if the user provided a value that is only numbers.
Tag 51A - Sending institution (Option A)
EFTSO.51A.2: BIC
Reject this report if the user did not provide a value into this field.
Tag 52A - Ordering institution (Option A)
EFTSO.52A.2: BIC
Reject this report if the user did not provide a value into this field.
Tag 52D - Ordering institution (Option D)
EFTSO.52D.2: Name and address 1
Send a warning if the user provided a value that is only numbers.
Tag 53 - Sender's correspondent
EFTSO.53.option: Option
Send a warning if the user provided a value that equals B.
Tag 53D - Sender's correspondent (Option D)
EFTSO.53D.2: Name and address 1
Send a warning if the user provided a value that is only numbers.
Tag 54 - Receiver's correspondent
EFTSO.54.option: Option
Send a warning if the user provided a value that equals B.
Tag 54A - Receiver's correspondent (Option A)
EFTSO.54A.2: BIC
Send a warning if the user did not provide a value into this field.
Tag 54D - Receiver's correspondent (Option D)
EFTSO.54D.2: Name and address 1
Send a warning if the user provided a value that is only numbers.
Tag 55 - Third reimbursement institution
EFTSO.55.option: Option
Send a warning if the user provided a value that equals B.
Tag 55A - Third reimbursement institution (Option A)
EFTSO.55A.2: BIC
Send a warning if the user did not provide a value into this field.
Tag 55D - Third reimbursement institution (Option D)
EFTSO.55D.2: Name and address 1
Send a warning if the user provided a value that is only numbers.
Tag 56 - Intermediary
EFTSO.56.option: Option
Send a warning if the user provided a value that equals C.
Tag 56A - Intermediary (Option A)
EFTSO.56A.2: BIC
Reject this report if the user did not provide a value into this field.
Tag 56D - Intermediary (Option D)
EFTSO.56D.2: Name and address 1
Send a warning if the user provided a value that is only numbers.
Tag 57 - Account with institution
EFTSO.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 57A - Account with institution (Option A)
EFTSO.57A.2: BIC
Reject this report if the user did not provide a value into this field.
Tag 57D - Account with institution (Option D)
EFTSO.57D.2: Name and address 1
Send a warning if the user provided a value that is only numbers.
Tag 59 - Beneficiary customer
EFTSO.59.2: Name and address 1
Reject this report if the user did not provide a value into this field.
Send a warning if the user provided a value that is only numbers.
EFTSO.59.option: Option
Send a warning if the user provided a value that equals A.
Tag 59F - Beneficiary customer (Option F)
EFTSO.59F.2-5: Name and address
Send a warning if the user didn't provide a value for line 1.
Send a warning if the user didn't provide a value for line 2.
Send a warning if the user didn't provide a value for line 3.
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
EFTSO.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
EFTSO.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
EFTSO.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
EFTSO.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
EFTSO.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: