Skip to content

Prowide Integrator Validation - CHANGELOG

10.1.26 - August 2024

  • (PW-1928) Change org.apache.derby:derby dependency to optional in the distribution pom.xml

10.1.25 - August 2024

  • (PW-1893) Added BizMsgIdr format validation to RITS (HVCS) validation engine

10.1.24 - July 2024

  • (PW-1893) Added cross element validation to RITS (HVCS) validation engine
  • (PW-1893) Added missing rules to RITS (HVCS) validation engine
  • Added exit-on-first-error logic to the validation engine for RITS, CBPR+ and cross-element rules

10.1.23 - June 2024

  • (PW-1893) Added new RITS (HVCS) validators for camt.029 and camt.056

10.1.22 - June 2024

  • (PW-1893) Added new RITS (HVCS) validators for pacs.008, pacs.009 CORE and pacs.009 COV

10.1.21 - June 2024

  • (PW-1845) Added an option in the RITS (HVCS) validation engine to opt-in strict mode validation (rules not checked by the HVCS portal)

10.1.20 - May 2024

  • (PW-1845) Added new RITS (HVCS) validator for pacs.004
  • (PW-1809) Added a new optional SchemaCache to the validation engine configuration to optimize the MX validation process

10.1.19 - April 2024

  • (PW-1833) Fixed base64 encoding handling for jakarta.xml.bind-api:4.0.2 compatibility

10.1.17 - April 2024

  • (PW-1809) Added a new optional SchemaCache to the validation engine configuration to optimize the MX validation process
  • (PW-1842) Remove System.exit() call from deprecated class to avoid false positive vulnerability report

10.1.16 - February 2024

  • (PW-1761) Fixed error message for E92 on MT 545 and 547
  • Replaced generic KNN errors with specific codeword errors for designated fields such as T03, T04, T20, T35, etc...

10.1.15 - January 2024

  • (PW-1752) Added new API method 'validateTag' in order to allow to validate singe tags/fields without the need to build a full message
  • (PW-1743) Remove usage of deprecated SafeXMLUtils methods
  • Added field validation rule for pattern used in MT 097 field 109

10.1.14 - January 2024

  • (PW-1739) Modified the validation of field 23 in order to match the specification for MT102/MT103/MT305/MT601

10.1.13 - January 2024

  • Disabled 'Missing checksum field CHK (Z04)' block 5 validation because the checksum algorithm is proprietary by SWIFT and not available in the library API

10.1.12 - December 2023

  • (PW-1732) Enhanced the semantic 292 to also report the error for MT541 when the sequence E3 is missing

10.1.11 - December 2023

  • (PW-1666) Updated T13 validation logic in order to avoid false positives when validating MTs n92/n95/n96

10.1.10 - December 2023

  • (PW-1708) Fix concurrency issue with BICDirectory in semantic 257 and 5 implementations
  • Added missing implementation for SCORE UG rules in MT798<700>

10.1.9 - November 2023

  • (PW-1697) Changed field 29O validation to be compatible with the field model changes
  • (PW-1691) CBPR+: NPE fix in the validation of the specific business service for each message type
  • Minor fix in the validation of field 29O

10.1.8 - November 2023

  • (PW-1691) CBPR+ fixed validation of specific business service for each message type (version could vary depending on the specific message type)

10.1.7 - November 2023

  • (PW-1675) Fixed specific validations for SCORE messages in SRU2023

10.1.6 - October 2023

  • Updated the default ISO 20022 external code set XSD resource to the 2Q2023_ExternalCodeSets_v1.xsd release

10.1.5 - October 2023

  • (PW-1653) MT671 message is now verified to have a size less than 10,000
  • MT370 and MT670 messages are now verified to have a size less than 10,000

10.1.4 - September 2023

  • (PW-1613) fixed validation of field 44J narrative to enable 65 characters after the mandatory starting slash
  • (PW-1628) fixed validation of new Field 44A, 44B, 44E and 44F enabling multilines since they now use character 'z'

10.1.3 - September 2023

  • (PW-1478) fixed validation of new Field 44J

10.2.1 - September 2023 (invalid release number, should have been 10.1.2)

  • (PW-1480) More accurate implementation of semantic rule C25 (MTn92): field 79 or at least any fields from the original message (or both) must be present

10.1.1 - August 2023

  • (PW-1472) Fixed validation of 23X in MT767
  • (PW-1431) CBPR+: Implemented UG validation for CBPR+ 2023 messages
  • (PW-1448) Fixed size validation for field 24G
  • (PW-1431) CBPR+: Implemented UG validation for CBPR+ 2023 messages
  • Added CROSS RULES validation for new CBPR+ 2023 messages

10.1.0 - June 2023

  • Migration to Java 11
  • Migration to Jakarta EE 10
  • ValidationEngine add explicit API to validate the MX Business Application Header version 3

9.4.0 - May 2023

  • SWIFT Standard release update 2023 (live 19 November 2023)
  • Yearly revision of deprecation phase (see https://dev.prowidesoftware.com/SRU2022/getting-started/deprecation/)

9.3.18 - June 2023

  • Fixed field 79 /REJT/ or /RETN/ validation of lines containing /TEXT/ narrative

9.3.17 - May 2023

  • (PW-1373) Minor fix in semantic validation for MT 798<720>

9.3.16 - May 2023

  • (PW-1377) Fixed NPE validating semantic rule 2 in MT 798_750

9.3.15 - May 2023

  • (PW-1373) MT SCORE 798<720>: Fixed codewords and rules for fields 40B and 41a
  • (PW-1367) Added MT SCORE 798 sub-message types: 722_LC_C2B, 726_LC_C2B, 735_LC_C2B, 770_LC_C2B, 772_LC_C2B
  • (PW-1359) Added missing T47 problem properties

9.3.14 - April 2023

  • MX validation: Added a general rule to check the maximum bytes allowed for the message

9.3.13 - February 2023

  • (PW-1206) Added message model for the MT SCORE subtypes 707/708/710/711/720/721/732/734/750
  • (PW-1198) Added validation for MT SCORE subtype 767 - Sequence B optional for 22A ISCA or ICCA

9.3.12 - January 2023

  • (PW-1154) Enhanced block 2 input validation; when priority is "S" (System) delivery monitoring and obsolesce period are not allowed
  • (PW-1150) Added validation for MT SCORE subtypes 731/736/748/753/755/757/771/773

9.3.11 - December 2022

  • Removed the org.mozilla:rhino dependency

9.3.10 - November 2022

  • Minor backward compatibility fix in the ValidationConfiguration IBICDirectory initialization

9.3.9 - November 2022

  • Updated Apache Commons Text dependency to 1.10 to fix reported CVE
  • (PW-1097) Fixed BIC validation against directory in CBPR+ messages
  • (PW-1090) Enhanced validation of field 11T in SCORE messages, with specific check for the allowed sub-message type
  • (PW-1085) Moved the custom BIC directory implementation setter from the SDK singleton configuration to the ValidationConfiguration

9.3.8 - October 2022

  • Code enhancements review

9.3.7 - October 2022

  • (PW-1074) MT568: fixed typo in qualifier name "PTNI"
  • (PW-1071) MX cross-element rules are not applied when validating a custom schema, such as SIC4
  • (PW-1064) Fallback option to system classloader in resource loading
  • SRU2022 update review: MT540 Removed field 99C
  • SRU2022 update review: MT548 Added field 98C::SCTS
  • SRU2022 update review: Field 35C changed validation to

9.3.6 - September 2022

  • Added support for MUG validations (CLSB and AU/PDS)

9.3.5 - September 2022

  • MT structure validation: enhanced report of missing required fields, adding the path of sequences when applicable
  • MT structure validation: enhanced report of unexpected fields, when the possible cause is the fields ordering

9.3.4 - August 2022

  • Permanently replaced the legacy ValidationEngine.Configuration inner class by the ValidationConfiguration
  • MT structure validation refactor to decommission the need for the Rhino dependency

9.3.3 - August 2022

  • (PW-1015) Added validation for sub-message types 700, 701 and 774 (SCORE)
  • (PW-1007) Changed the AppHdr message definition against Document namespace validation to be more flexible, allowing subtypes such as "CORE"

9.3.2 - August 2022

  • PW-1007: Changed the AppHdr message definition against Document namespace validation to be more flexible, allowing subtypes such as "CORE"
  • Implemented cross-element rules for pacs.004.001.10 and 11
  • Implemented cross-element rules for pain.001.001.10 and 11
  • Implemented cross-element rules for pain.002.001.10, 11 and 12
  • Implemented cross-element rules for camt.029.001.10 and 11
  • Added internal loops API to MTs: 110, 201, 203, 210, 410, 412, 420, 422, 450, 456, 604, 605, 801, 920, 973
  • (PW-968) Field 72: fixed validation of optional text after INSTR codes, that cannot be a complete set of blanks

9.3.1 - July 2022

  • (PW-968) Field 72: fixed validation of optional text after INSTR codes, that cannot be a complete set of blanks
  • (PW-963) Fixes message length validation rule to compute also CRLF characters
  • (PW-931) Added a field check for unexpected slash separator, in fields having an optional second component separated by slash
  • (PW-867) Enhanced validation of party fields starting with /C/ or /D/ to avoid false negative errors on /D /C prefixes in the account
  • Fixed SRU2022 changes in semantic rules 258 and 267
  • MT semantic validations minor fixes and enhancements
  • Implemented cross-element rules for newer versions of camt.052
  • Implemented cross-element rules for newer versions of camt.053
  • Implemented cross-element rules for newer versions of camt.054
  • Implemented cross-element rules for newer versions of camt.056
  • Implemented cross-element rules for newer versions of camt.057
  • Implemented cross-element rules for newer versions of camt.060
  • Implemented cross-element rules for newer versions of pacs.010
  • Implemented cross-element rules for: Pacs.008 v9 & v10 (standard and STP), pacs.009 v9 & v10

9.3.0 - May 2022

  • SWIFT Standard release update 2022 (live 20 November 2022)
  • Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)

9.2.31 - May 2022

  • (PW-813) Internal enhancement to fix CVE
  • Deprecation API review

9.2.30 - May 2022

  • MT semantic rules review and minor fixes
  • MX cross-element checks review and enhancements

9.2.29 - May 2022

  • MX cross-element checks review and enhancements

9.2.28 - April 2022

  • Fixed MX cross-element checks
  • Changed the ValidationResult to have the valid flag as transient field, set dynamically depending on the problems list size
  • Added missing validations for CBPR+ pacs.009

9.2.27 - April 2022

  • CBPR+ UG validation fixes

9.2.26 - March 2022

  • (PW-882) SCORE 798_760 fixed validation of sequence B which is optional if purpose of message is ICCO or ISCO
  • MT104: Fixed validation problem description in semantic rule 96

9.2.25 - March 2022

  • CBPR+ validation: apply schema from Document namespace when AppHdr message type does not match
  • pacs.002.001.10: Implemented cross-element rules, and CBPR+ UG rules
  • pain.002.001.10: Implemented cross-element rules, and CBPR+ UG rules

9.2.24 - March 2022

  • pacs.010.001.03: Implemented cross-element rules, and CBPR+ UG rules
  • camt.060.001.05: Implemented cross-element rules, and CBPR+ UG rules
  • pain.001.001.09: Implemented cross-element rules, and CBPR+ UG rules

9.2.23 - March 2022

  • Fixed error description in MX validation (cross element checks and CBPR+ rules)
  • MX cross element validation fixes (X00420)

9.2.22 - March 2022

  • Enhanced the CBPR+ AppHdr validation with constraints from CBPR+ restricted BAH v2 schema

9.2.21 - March 2022

  • (PW-861) Fixed validation of fields 23X, 21H, 77B (MT734) and 98K that was too strict; slash character is allowed in the component using x character set

9.2.20 - February 2022

  • (PW-856) GPI: Fixed misleading error description in field 111 validation
  • (PW-835) GPI: Field 111 is optional in MT199 even for GPI members
  • Fixed inconsistency in the ValidationResult valid flag returned by the CbprValidationEngine
  • Fixed MX cross-element validations when too elements cannot be present together, but may both be absent

9.2.19 - February 2022

  • Updated the default ISO 20022 external code set XSD to the February 2022 update
  • camt.029.001.09: Implemented cross-element rules, and CBPR+ UG rules
  • camt.052.001.08: Implemented cross-element rules, and CBPR+ UG rules
  • camt.053._001.08: Implemented cross-element rules, and CBPR+ UG rules
  • camt.056.001.08: Implemented cross-element rules, and CBPR+ UG rules
  • camt.057.001.06: Implemented cross-element rules, and CBPR+ UG rules
  • pacs.002.001.10: Implemented cross-element rules, and CBPR+ UG rules
  • pacs.004.001.09: Implemented cross-element rules, and CBPR+ UG rules
  • Completed UG rules for CBPR+ pacs.008 and pacs.009 variants (COV, STP, ADV)

9.2.18 - February 2022

  • (PW-837) In MT message length validation, remove line CRLF when computing the message size

9.2.17 - January 2022

  • (PW-835) Fixed validation of GPI field 111 (block3) expected values per message type

9.2.16 - January 2022

  • (PW-833) Fixed mandatory field 77E in MTn98
  • Added UG implementation for CBPR+ pacs.008 STP and pacs.009 ADV/COV

9.2.15 - January 2022

  • SCORE messages semantic validations review

9.2.14 - January 2022

  • (PW-819-820) SCORE message MT798_760 validation fixes
  • Added UG implementation for CBPR+ camt.054
  • Implemented cross-element rules for camt.054.001.08
  • Added validation for MX match between AppHdr message identifier and Document namespace

9.2.13 - January 2022

  • (PW-815) Fixed validation of field 12H (SCORE) where narrative is optional
  • MT530 validation: Fixed semantic 237 rule, where subsequence C1 is repetitive
  • Added UG implementation for CBPR+ pacs.009
  • Implemented cross-element rules for pacs.009.001.08

9.2.12 - December 2021

  • Added a specific CbprValidationEngine class to validate CBPR+ messages
  • Added UG implementation for CBPR+ pacs.008
  • Implemented cross-element rules for pacs.008.001.08
  • Added com.prowidesoftware.integrator.validation as automatic module name in the MANIFEST for JPMS support

9.2.11 - December 2021

  • (PW-799) fixed validation of semantic rule 199 in MT564

9.2.10 - December 2021

  • (PW-780) Added ValidationConfiguration#setGpiMember to override the general static SdkConfiguration#setGpiMember
  • (PW-764) Fixed error description in field 119 (block 3) validation

9.2.9 - November 2021

  • (PW-772) Enable empty lines in MT568 field 70F as it is exceptionally allowed in the ISO 15022 usage guidelines
  • In Mx IBAN validation added specific error code D00003

9.2.8 - November 2021

  • (PW-764) Reviewed validation of field 119 (block 3)
  • (PW-703) Clearer validation results for MT block 2 with invalid identifier
  • Added IBAN validation (including local account format) for MX elements containing IBAN numbers
  • Added optional IBAN validation for MT messages, for specific fields where IBAN validation is explicitly requested by configuration
  • MX validation: renamed proprietary error codes for invalid currency and country codes by standard codes D00004 and D00005
  • Fixed validation of letter options in B/98a

9.2.7 - October 2021

  • Added validation of block 2 Output (only Input was validated before, while Output was ignored)
  • Fixed validation of value for Field 26A ()

9.2.6 - October 2021

  • (PW-705) Added validation of mandatory CHK in block 5 when the trailer block is present
  • (PW-703) More verbose MT headers validation
  • (PW-677) MT670, MT671: fixed implementation of semantic check 112 (D12)

9.2.4 - September 2021

  • (PW-664) Parser enhancement to detect LF before block identifier as validation problem (not exception)

9.2.3 - August 2021

  • Added german translation for validation problems

9.2.2 - August 2021

  • (PW-599) MT564: Minor scheme fix, 92a TAXR and WITL can be repeated in CASHMOVE (E2)
  • MT548: Minor scheme fix, added letter option "C" in field "98C:SCTS" in sequence "C1a1B1"
  • (PW-578) Fixed SAX logging with misleading parse errors

9.2.1 - June 2021

  • (PW-536) Replaced deprecated API in the MX validation
  • (PW-536) Fixed misleading typo in semantic E94 error description
  • (PW-517) Removed the actual licensed BICs information from the unlicensed error description in the validator

9.2.0 - May 2021

  • SWIFT Standard release update 2021 (live 21 November 2021)
  • Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)
  • More accurate structure problems reporting, with a customizable lookahead for sequence resynchronization after a field partial match
  • Enhanced unexpected fields problem reporting, in some situations it used to trigger also misleading errors about the unexpected field repetitions

9.1.16 - April 2021

  • Added support for ISO 20022 external code set validations
  • Externalized the validation engine configuration into a ValidationConfiguration class
  • (PW-517) Removed the actual licensed BICs information from the unlicensed error description in the validator

9.1.15 - April 2021

  • (PW-460) Divided the internal schemas package into packages by category to allow trimming the jar by use

9.1.14 - April 2021

  • (PW-500) Fixed validation of qualifiers when the component is optional
  • Fixed qualifier error reporting in fields 41A and 41D
  • Replaced generic error code KNN with specific code for each field, such as K41, K23, K92

9.1.13 - April 2021

  • (PW-508) Fixed validator pattern in field 98K

9.1.12 - April 2021

  • Enhanced MT structure error detection and reporting (missing and unexpected fields)
  • Fixed validation of fields 12 and 27A in MT SCORE messages

9.1.11 - March 2021

  • Added semantic validation for available SCORE messages
  • (PW-499) Fixed schemes for MT513, MT564 and MT566: invalid qualifier in field 69D

9.1.10 - March 2021

  • (PW-494) Fixed schemes for MT565 (sequence B can be repeated up to 1) and MT568 (sequence B is optional, not mandatory)

9.1.9 - March 2021

  • (PW-493) Fixed scheme for MT671, missing :22H::PRCD//PREF in Other Details sequence
  • Added mtInSequenceResyncLookAhead parameter in the ValidationEngine#Configuration to control the error reporting accuracy
  • Added mtEnhancedRepetitionProblemReportingMode parameter in the ValidationEngine#Configuration to switch off redundant field repetition related errors
  • Removed T13 rule from MTn98 proprietary messages validation (only kept for n92, n95 and n96)
  • Changed default toString in ValidationProblem to use the human-friendly error description

9.1.8 - December 2020

  • (PW-424) Fixed validation of mandatory field 111
  • (PW-398) Added check for expected values in field 111 (U14 error code)

9.1.7 - December 2020

  • License check review

9.1.6 - November 2020

  • Field validation changes in 83J, 86J, 50F and 59F are now parked until SRU2021 (only cat 5 changes are in force in SRU2020)

9.1.5 - November 2020

  • (PW-413) 564 added qualifier option SRDC in field 17B in sequence D
  • 530 added qualifiers options BYIY and BDEF in field 22 in sequence B
  • 530 added optional fields 90[A,B] and 19A BCAM in sequence C
  • 565 minor fix in conditional qualifier check in field 92K in sequence C

9.1.4 - September 2020

  • In MTs 300, 305, 306, 320, 330, 340, 341 and 350 added a missing network rule validating the reference number in fields 22 and 22C against the message rate field
  • Added internal BIC validation skip for SWIFT special BIC codes such as: TRCKCHZZ (GPI) and TRGTXEPM (Target)
  • Fixed semantic check 254 to handle 23E field repetitions properly

9.1.3 - September 2020

  • Minor fix in semantic 204, 209 and 210 checks when the party identifier is only slashes

9.1.2 - August 2020

  • (PW-325) Added ValidationEngine.Configuration#addRegisteredBic to programmatically register valid BICs not available in the embedded BIC directory
  • (PW-325) Enhanced de BIC directory validation to avoid false error for Test & Training BIC codes (query will match any equivalent production BIC)

9.1.1 - Jun 2020

  • Removed a false positive deprecation warning when configuring ignored validation codes

9.1.0 - May 2020

  • SWIFT Standard release update 2020 (live 22 November 2020)
  • Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)

9.0.2 - May 2020

  • Added validation of ISO business header version 2 (head.001.001.02) when found in a message
  • Added a configuration in the ValidationEngine.Configuration to optionally disable ERI validation
  • Added validation for ERI in fields 61, 72, 77A, 79 and 86, when ERI is present and depending on the message type
  • Fixed amount validation when the whole number part is not present

9.0.1 - May 2020

  • Fixed validation of field 72 in MT760

9.0.0 - May 2020

  • Validation module extracted to its own jar in the distribution, with its own version from now on

8.0.9 - May 2020

  • Fixed scheme for 564, typo in MET2 and MET3 qualifiers

8.0.8 - April 2020

  • Fixed validation of field 50F party line, was accepting up to 34 characters instead of the 35 allowed limit for the field
  • Enabled presence of field 121 in all payment messages (category 1 and 2)
  • Added support to validate restricted ISO20022 for CBPR+
  • (PW-259) Fixed semantic 157 check, when amount is zero with decimals
  • Fixed schemes for MT537 adn 458, in sequence PENDET required field is 99A and not 99B
  • Enhanced error reporting for semantic checks: 41, 131, 132, 146 and 147

8.0.7 - March 2020

  • Added support to validate restricted ISO20022 for SIC (Swiss RTGS)
  • MT548: Fixed repetitions of field 94 in sequence C1a1A1
  • MT537: Fixed structure for D1a1A1
  • MT537: Fixed sequence B2b where field 98 option EXSE is mandatory
  • Fixed semantic check 256 affecting validation for message 535 and 536

8.0.6 - February 2020

  • Fixed T96 check in SB-LC function (affecting fields 22 and 22C) where alphanumeric order must give precedence to letters over numbers

8.0.4 - December 2019

  • Fixed resource bundle for MX messages when retrieved for specific locale
  • Added convenient toJson with preformatted validaiton problem messages, to the ValidationResult DTO
  • Fixed detection of invalid trailing empty lines in MT field values

8.0.3 - September 2019

  • (PW-185) Replaced custom error codes with SWIFT standard FIN error codes such as Hnn and Tnn
  • Added new validation entry points for MX messages to use specific XSD schemas (useful to validate SEPA messages)
  • Added missing field validations: T14, T49, T70, T75, T88
  • Fixed validation of conditional qualifier in field 93C in MT566

8.0.2 - August 2019

  • Fixed validation of conditional qualifier in field 93C in MT566
  • Fixed bin/validator CLI app that stopped reading input on the first line break
  • Fixed occasional BIC truncation validating large MX messages

8.0.1 - July 2019

  • Enhanced the configuration to enable ignoring validation problems by specific key, by name or by type
  • Fixed validation of BIC codes in MX when the BIC directory is disabled
  • Fixed BIC not registered error reporting when validating MX messages
  • Fixed semantic check 196 affecting MTs 362

8.0.0 - May 2019

  • JRE requirement increased to Java 1.8
  • SWIFT Standard release update 2019 (live 17 November 2019)
  • Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)
  • Fixed semantic check 157 affecting MTs 320, 330 adn 620

7.10.9 - May 2019

  • Fixed SB-LC validation, affecting fields 22 and 22C (common reference); added the missing alphabetic sort check in the parties code and location
  • Fixed lines count check in multiline fields with optional party identifier in first line (ex: 58D)

7.10.8 - March 2019

  • Updated dependencies: apache-commons-lang 3.7 -> 3.8.1
  • Updated dependencies: apache-text 1.3 -> 1.6
  • Fixed obfuscation to keep directories in jar

7.10.7 - January 2019

  • Added missing path when reporting invalid country code in MX
  • Fixed duplicated error reporting when validating MX messages
  • Added the XsdRegistry interface to allow overwriting the default schemas when validating MX messages
  • Enhanced the MX error reporting to include the repetitive element index in the validation problem xPath
  • Added support for custom MX validation rules
  • Enhanced validation and error reporting for fields 50F and 59F
  • Minor performance enhancement for validation process with exit on first error
  • Added support in MX validation to optionally ignore XSD ERROR

7.10.6 - November 2018

  • Added ISO country code validation for CountryCode elements in MX messages
  • Fixed GPI validation to NAK non-GPI messages with fields 121 or 111
  • Fixed GPI validation to NAK GPI-message with field 111 when the institution is not a GPI member
  • Fixed error description for structure validation problem TOO_BIG
  • Enabled the UETR validation for any message type, it is still mandatory for GPI messages only though
  • (PW-103) Activated the UETR format validation also for output messages (received from SWIFT)
  • Fixed semantic validation 201 affecting MT564

7.10.4 - September 2018

  • Bugfix validating empty first line in fields value
  • Enhanced error reporting in BIC validation, including details of the BIC subfield where the validation problem is found
  • Enhanced the BIC validation checking the country code within the BIC is a valid ISO country
  • MX: Added BIC validation using the BIC directory (optional by configuration) for elements containing BIC codes
  • MT: Added BIC validation using the BIC directory (optional by configuration) for the sender and receiver address in the headers

7.10.3 - July 2018

  • Added a specific PARSE_ERROR validation problem to report when the message has an invalid block structure
  • Prevention of IllegalArgumentException when the hyphen is missing in the closing bracket of block 4
  • Added MX currency validation using ISO currencies from ISOUtils

7.10.2 - July 2018

  • Fixed spanish description of semantic E45 check
  • Fixed component size check in validation of Field 59F

7.10.1 - May 2018

  • Added field 434 in block 3 validation

7.10.0 - April 2018

  • SWIFT Standard release update 2018
  • JRE requirement increased to Java 1.7
  • Dependencies: updated apache commons-lang from 2.6 to 3.7
  • Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)

7.9.8 - April 2018

  • Enhanced validation of IBAN numbers verifying the check digits and the custom account number per country (BBAN)
  • MT306: message scheme fix, added the missing 57 ADJ optional field at the end of sequence L
  • Minor fixes in semantic validation rule 40 and rule 122

7.9.7 - January 2018

  • Changes in the distribution package:
  • Command line tools in the bic directory changed from jar files to wrapper scripts
  • Dependencies directory renamed to lib
  • Removed the BUILD id timestamp from the jar files
  • Removed the BaseTestCase class from the public API to avoid Junit dependency
  • Added ValidationProblem#printout to generate a human friendly printout of a validation problem list
  • Updated dependency: org.mozilla🦏1.7R4 -> org.mozilla🦏1.7.7.2

7.9.6 - December 2017

  • Minor fix in semantic27 affecting malformed MT942

7.9.4 - November 2017

  • JRE requirement backported to Java 1.6
  • Fixed validation for field 77J: 50x[’CRLF’50x]0-69

7.9.3 - October 2017

  • Added support to validate MX system messages (xsys category)
  • Fixed currency validation (T52) in fields 60F, 62F, 64, 65 and 33B

7.9.2 - August 2017

  • Fixed T26 validation in fields 13B, 22W, 94B, 95a and 98K
  • MT537 fixed qualifier validation for field 98a in transaction details sequence (C2)
  • MT524 fixed implementation for rule 208 when several LINK sequences are present in the message
  • MT545 and MT547: fixed validation for field set 98a in Trade Details sequence (B), qualifier ESET is mandatory while SETT is optional
  • Fixed error code and message throw by semantic rule 267
  • Added more details when reporting semantic rule 266 errors.
  • Added IsoUtils singleton to allow customization and exceptions for currency and country codes validation
  • Currency and Country codes validation is now implemented using data from Java Currency and Locale
  • Validation of maximum fraction digits per currency (semantic rule 3) is now implemented using data from Java Currency

7.9.1 - June 2017

  • Fixed semantic 167 for MT103 plan (not STP and not REMIT)
  • MT801 first loop can be repeated
  • Fixed semantic 282 affecting MT535
  • Fixed scheme for MT940 field 60[F,M] is now required

7.9 - May 2017

  • SWIFT Standard release update 2017 (live 19 November 2017 for MT and 18 November for MX)
  • MT536: fixed false positive semantic 252 check, fixed qualifiers check in field 98a (sequence B1a2)
  • MT575: transaction details sequence C2, field 98 with SETT or TRAD set as optional
  • MT537: fixed false positive semantic 285 check
  • MT576: additional information sequence C set as optional
  • Fixed semantic rule 259 affecting MT517 link sequence check
  • MT569: fixed incorrect definitions in sequence C1a1 (valuation details)
  • MT506, 569 and 575: field 28E mandatory
  • MT513; sequence A added TRAD qualifier to field 22F, sequence B1 (partial fill details) fields 98 and 94 are optional
  • MT513 and 514: fixed letter option from H to F in field 22F:SETR in settlement details

7.8.9 - May 2017

  • Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)
  • Fixed validation of fields 72 and 79 of a Rejected/Return message
  • Renamed FieldProblem.REJT_RETN_0n to more specific errors: REJT_RETN_LINE_n, REJT_RETN_REASON_CODE, REJT_RETN_MREF, REJT_RETN_TREF, REJT_RETN_CHGS, REJT_RETN_TEXT
  • Enhanced validation of user block 3, checking all fields are expected for the message type and checking fields order.
  • Fixed NPE in semantic 119 affecting MTs 102 and 103 STP when IBAN component was not present
  • Added a common type ValidationProblemKey implemented by all problem key enumerations
  • Fixed false positive error validating field 59F when multiple address lines (line label 2) are defined
  • Fixed false positive restriction field 37a second component
  • Fixed scheme for MT505, added missing field 98A:AGRE in sequence A1
  • Enhanced MX validation to allow MX messages with bank-to-bank namespace declaration
  • Fixed false positive semantic 293 validation for MT507 when sequence B1a1 was not present
  • Fixed letter option in scheme for MT506, sequence D (Collateral Details) field 19 A -> B
  • Fixed qualifier in scheme for MT506, sequence D (Collateral Details) DEAL-> COLL
  • Fixed scheme for MT506, sequence B (Summary) field 95 is mandatory and field 19B only mandatory with qualifier COVA
  • Fixed Semantic 82 implementation affecting MT104 and MT107
  • Fixed false positive case in Semantic 75, affecting MT104
  • Fixed validation of leading characters, colon (':') not allowed in second and subsequent lines except for fields 77E and 77T
  • Fixed semantic 103 affecting MT535

7.8.8 - March 2017

  • Added support for nested Document elements when validating MX messages
  • Removed invalid fields following linkages in GENL sequence
  • Cleaner log in semantic rule 3 validation

7.8.7 - December 2016

  • Added check for validation flag (STP, REMIT, COV) in user header block
  • Fixed missing semantic associations to MTs 700, 705, 707, 710, 720, 730, 732, 734, 740, 742, 747, 750, 752, 754, 756, 768, 768, 769, 800, 801, 802, 824
  • MT518 fixed fieldset for Field 70
  • MT330 fixed qualifier in Field 22
  • MT513 and MT514 Field 11 moved outside previous fieldset
  • MT541 to MT547 Field 90[A,B] changed to fieldset.
  • MT564 fixed fieldset items in Field93[B,C]
  • MT565 to MT567 Sequence D, fixed field 13
  • MT609 and MT798_763 fixed qualifiers in Field 29

7.8.6 - November 2016

  • JRE requirement increased to Java 1.7 (only for Integrator SDK and modules, Core still works on 1.5)
  • semantic 175 minnor fix affecting MT104 and MT107 when multiple sequence B are present

7.8.5 - October 2016

  • Minor fixes in semantic validations: 206 (used in MTs: 103, 564, 566), 279 (used in MTs: 549, 564, 565)
  • MT564: Minor fixes in semantic validations: 199, 211, 224
  • MT564: field 93 UNBA instead of UMBA
  • MT564: CAOPT sequence, field 92 INTP, missing conditional qualifier NILP
  • MT564: SECMOVE sequence, field 90 PRPP, missing letter option K
  • MT564: SECMOVE sequence, field 92 NEWO, missing letter option M
  • MT564: CASHMOVE sequence, field 92 ESOF, missing letter options F and M
  • MT564: CASHMOVE sequence, field 92 TXIN, missing letter option F
  • MT564: CASHMOVE sequence, field 92 WITL, missing letter option R and its conditional qualifier eval
  • MT564: fixed field 92J subfield ACTU INDI validation
  • MT565: CAINST sequence, field 90 OFFR, missing letter option L
  • MT566: CADETL sequence, field 92 BIDI missing letter option P
  • MT566:CACONF sequence, field 69, removed invalid letter option J
  • MT566: Fixed qualifier in field 13a to allow UNS
  • MT566:SECMOVE sequence, field 90 OFFR, missing letter option L
  • MT566:SECMOVE sequence, field 90 PRPP, missing letter option K
  • MT566:SECMOVE sequence, field 92 NEWO, missing letter option M
  • MT566:SECMOVE sequence, field 92 TAXC, removed invalid letter option K
  • MT566:CASHMOVE sequence, field 92 TXIN, missing letter option F
  • MT566:CASHMOVE sequence, field 90 PRPP, missing letter option K
  • MT566:fixed field 92J subfield ACTU INDI validation
  • MT567: CADETL sequence, field 35B, removed invalid qualifier check SAFE
  • MT567: field19 changed to fieldset

7.8.4 - Oct 2016

  • Fixed JS expression in schemes for 564, 565, 566 and 620
  • Important enhancement in MX validation problem reporting, including full XPATH, line and column of errors.
  • Fixed semantic 291 (affecting 540, 541, 544, 545)
  • Fixed semantic 112 (affecting MTs 670 and 671)
  • Fixed semantic 113 (affecting MTs 380, 381, 503, 504, 506, 670, 671)

7.8.3 - Jul 2016

  • Added support for changed currency in Belorussia from 974 (BYR) to 933 (BYN).
  • Fixed semantic 210 affecting messages 103, 102, 104 and 107

7.8.2 - Jul 2016

  • Fixed schemes: definition of field 12A in FIA subsequences of MTs 54x
  • Semantic 283 bugfix (used in MTs 307,503,504,505,506,536,537,548,578,586)

2016 June

  • Added field repetition validation in block 3

2016 April

  • Added detection of extra data in message content or blocks when validating a message

2016 February

  • Fixed validation of min and max repetition in fieldsets, when the attributes are set only in the items

2016 January

  • Fixed scheme 307, typo in semantic rules attribute
  • Added API in SchemeField to retrieve qualifiers information from parsed scripting expressions

2015 December

  • Fixed schemes for 600, 601, 604, 605, 606, 607, 608, 609, 620, wrong qualifier for field 26C

2015 November

  • Fixed validation of repetitive sequence in MT940

2015 October

  • Fixed validation for fields 129, 12A, 13B, 20E, 23A, 26N, 26P, 92C and 94D; removed restriction on amount of slashes because components use charset x where slash is allowed
  • Fixed validation for fields 14G, 27A, 27, 28[D,E], 29[L,N], 38[G,H], 39[A,P], 68C, 69C, 70[C,D,E,G], 90F, 92R, 93B, 94E, 94G 95[Q,T,U,V] and 98F; added restriction on amount of slashes

2015 September

  • Fixed scheme for MT567, removed invalid 25D field in sequence A

2015 August

  • Fixed qualifiers validation scripting in xml schemas for MTs: 306, 360, 361, 362, 364, 365, 500, 501, 535, 564, 565, 566
  • Enhanced validation patterns naming for better consistency

2015 April

  • Enhanced structure validation error reporting, when JS expressions are used to check conditional qualifiers. The new scheme validation rule generates a proper message indicating the expected and found qualifiers instead of a generic fail expression error.

2015 March

  • Bugfix Field validations, new restriction, start of line character cannot be '-'.
  • Bugfix MT535 subsequence B1a, it can be at most one and the scheme was allowing multiple repetitions

2015 February

  • ValidationEngine enhancement in the default scheme to use, detecting automatically if a 102/103 is STP or if a 202/205 is COV
  • Fixed validation for field 22S, was requiring a 35 characters fixed length for component 2, while the correct validation is up to 35 characters (not fixed)
  • Added more restrictive party field validation when a slash is followed by a blank content, affecting fields 42a, 50a, 51a, 52a, 53a, 54a, 55a, 56a, 57a, 58a, 59a, 81a, 82a 83a, 84a, 85a, 86a, 87a, 88a, 89a, 91a, 96a
  • SchemeValidationRule version 2: new version of structure validation for MT, with several enhancements and bug fixes over the previous version.
  • Important performance enhancement in MT structure validation (30% in average, reaching a 60% for some message structures).
  • Important enhancement in structure error reporting, errors are now more specific and detailed with more details.
  • Better error localization, avoiding duplicated error field validation in some situations.
  • Improvement in scheme's scripting validations, isolating script compile errors from unsatisfied logic conditions.
  • Fixed scheme validation for MT300 that was throwing a false problems for some combination of subsequences E, E1 and E1a.

2015 January

  • RuleManager: fixed loading of field rules, that was skipping incorrectly field validation to fields derived from fieldsets

2014 December

  • Better error message format in BaseTestCase
  • Fixed error message for E73
  • Review of semantic rules 85,86,198
  • ValidationEngine: Added API to validate from AbstractMT
  • ValidationEngine: Added exclusive API to use when validating messages in strings or files (with swift format, not parsed objects) therefore detecting more error conditions
  • AbstractTagValidationRule: Fixed validation that had a bug in special conditions, Output messages (received from swift) and with sender and receiver within the same institution

2014 November

  • Bugfix in schemas 515, 536
  • Enhanced MT expression validation reporting, diferenciating invalid expressions, from runtime errors or failed expression evaluation.
  • Bugfix. Fixed expressions in schemes xml for MT576 and MT568, replacing deprecated function call addQuaifiers by qualifier
  • Bugfix. Added validation of T13 rule to MTs n98

2014 September

  • Bugfix. Missing resource bundle for invalid BIC validation problem
  • Added addVariable method to ValidationProblem
  • Bugfix. Fields 95Q and 70C were restricted to maximum 3 lines, while 4 lines are compliant as well.
  • Bugfix. Fixed XML for MT537, field 22H conditional qualifier STAN changed to STAT

2014 July

  • Enhanced structure validation incorporating special field exceptions and required code words (standard PIII Fields Chapter 4) directly into the xml schemes configurations. Affected MTs: 102 STP, 103, 103 STP, 300, 303, 304, 305, 306, 320, 340, 341, 350, 360, 361, 362, 364, 365, 600, 601, 620, 920, 973
  • Enhanced structure validation error messages to separate unexpected fields problems reporting, from field qualifier problems or expression evaluation problems
  • Enhanced field validation to avoid repetitive checks for empty content and/or empty lines
  • Bugfix. MT306 optional field 12G changed to 12D and added missing field class
  • Bugfix. SchemeXmlReader to properly set fieldset items' qualifiers and letter options when inherited from container fieldset
  • Bugfix. Added null controls to several semantic validations to prevent NPE that would previously arise when applying semantic checks to messages with specific invalid structures
  • Bugfix. Fixed XML for MT540, field 90 changed to fieldset 90 to allow qualifier validation for items
  • Review and code clean of semantic rule 24, 52
  • SRU 2014. Affected MTs: 300, 304, 305, 306, 340, 341, 360, 361, 380, 381, 502, 506, 508, 509, 513, 514, 515, 518, 527, 530, 536, 537, 538, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 558, 564, 565, 566, 567, 568, 569, 575, 600, 601, 942
  • Added description and release attributes to Scheme
  • Minor fix in MT300 sequences structure, B1 and B2 inside B, and named D's subsequence as D1
  • Bugfix. MT300 optional field 17A changed to optional field 77A (field number was wrong)
  • Bugfix. MT514 fixed missing mandatory fields 36B and 35B between end of sequence B1 and start of sequence B2
  • Bugfix. MT515 fixed field 90[A,B] with qualifier DEAL at sequence C, changed from optional to mandatory (minRepetition was wrong)

2014 May

  • Review and code clean of semantic rule 184
  • Review and code clean of semantic rule 176
  • Review and code clean of semantic rule 152, 153, 154
  • Performance enhancements: execution speed reduced by approx 71% measured in global test suite

2014 April

  • Review and code clean of semantic rule 131, 253, 133, 135
  • Fixed semantic 116 rule incorrectly interpreting sequence C absence for MT306

2014 March

  • MT564: Added missing option K to field 90 in sequence E2 cash movements
  • Review and code clean of semantic rule 92, 95
  • Review and code clean of semantic rule 66, 67, 68 ,78, 84, 93
  • Review and code clean of semantic rule 61, 57, 58, 62
  • Added validation problems translation to Italian.
  • Bugfix. Fixed invalid check for X in 8th position for logical terminals without A, B, C identifier
  • Bugfix. Fixed Block1 validation, allowing Logical terminal without the A, B, C identifier (11 characters length)
  • Bugfix. Field validation was not accepting 999 as a valid MT number (example field 11R)

2014 February

  • Bugfix. Affected MTs:n92, n95, n96, n98. Fixed isolation of fields copied from original message from the fields of the message being validated
  • Bugfix semantic rule 31 that was throwing false positives when field 79 was included in the appended original message's fields
  • Initial addition of FieldFilter and FieldFilterUtils API
  • Maintenance review of semantic rule 71
  • Review and code clean of semantic rule 211, 221, 262
  • Added API to BaseTestCase
  • Review and code clean of semantic rule 209
  • Review and code clean of semantic rule 201, 202, 206
  • Bugfix. Affected MTs: 564. Fixed semantic rule 71 that was throwing IOB exceptions for some valid combinations of fields 93B
  • Bugfix. Affected MTs: 568, 569, 574, 575, 576, 578, 586, 670, 671. Fixed xml schemes, changing the invalid scripting method conditionalQualifiers to conditionalQualifier
  • Review and code clean of semantic rule 203, 206, 209, 221
  • Review and code clean of semantic rule 201, 202
  • Bugfix. Affected MTs: 305. Fixed false positive missing field errors when the message ends with nested optional subsequences with inner mandatory fields
  • Review and code clean of semantic rule 192, 72, 199
  • Review and code clean of semantic rule 71
  • Review and code clean of semantic rules impacting MT305
  • Added a code generation tool that can be run from command line to create custom version of Field and MT classes
  • Added a command line application to use the messages validation in standalone mode, validating messages from file system

2014 January

  • Added validation rules for fields belonging to system messages (i.e. 451)
  • Adding constants to Literals class to avoid usage of hardcoded strings and cleaner code with static imports
  • Bugfix. Affected MTs: 207. Fixed maximum repetitions of sequence B from 1 to unlimited
  • Maintenance(Review and performance updates) semantic rule #167, #54, #55
  • Maintenance(Review and performance updates) semantic rule #161
  • Maintenance(Review and performance updates) semantic rule #168, #246, #254
  • Added filter() to AbstractSemanticValidationRule
  • Maintenance(Review and performance updates) semantic rule #162, #166
  • Added BaseTestCase.assertValid(String)
  • Fixed issue in semantic rule 154 which did not consider properly B sequences
  • Maintenance(Review and performance updates) semantic rule #160, #164

2014-01-15

  • Fixed issue in semantic rule 77 affecting MTs 730, 768 and 769

2013 October

  • Maintenance(Review and performance updates) semantic rule #44, #45, #46, $47, #48, #51, #53
  • Maintenance(Review and performance updates) semantic rule #106, #108, #30, #40, #42
  • Review and performance updates on S102
  • Refactored max msg length validation to use enum in structure problem for reporting errors
  • Review and performance updates on S79

2013 September

  • SRU 2013 update
  • Fixed incomplete validation for field 77E

2013 March

  • Bugfix: fixed typo at field 22H in MT380, BUYI->BUY1

2012 June

  • Added API to specify locale on ValidationProblem.getMessage method