Prowide Integrator Validation - CHANGELOG
9.6.7 - November 2025
- (PW-2907) Fixed validation logic for Field 31W updated format
- Fix: MxXsdValidationEngine to properly report message ID in missing schema errors
- Fix: AU/PDS MUG MT202 validation exception fix
- Feat: Enhanced BusinessServiceXsdRegistry to fallback to null business service schemas when exact match not found
- (PW-2798) Fixed validation logic for Field 332
9.6.6 - October 2025
- (PW-2796) Fixed validation logic for Semantic Rule 230, for codeword INTA.
- Fix: MT544-547 Tag19 NTWK Option added.
- Feat: Revamped CBPR+/IAP/SIC validation engine with implementation of Business Service registries
- Added dispose method to the MxValidationEngine interface to release resources when the engine is no longer needed
- Fixed javadoc links in validation documentation to use correct API path format
- (PW-2631) StructureProblem.H10 X in position 9 check is removed.
- Feat: Updated Cross-rules for SRU2025
9.6.5 - September 2025
- (PW-2719) Fixing error in Semantic Rule 50 for MT564 regarding typo in the specs
- Updated CBPR+ rules for SRU2025
- Enhance RITS Validator to isolate Market type validation problems from CBPR+
- Feat: Updated IAP validation engine with implementation of the IAP 1.2 and HVPS+ UG rules
- Feat: Added IAP validation engine with implementation of the IAP 1.2 and HVPS+ UG rules
- Feat: Revamped validation engines model with interfaces and a common ground for extensions implementations (clearings, MI, RGTS, UG, etc)
9.6.4 - August 2025
- (PW-2638) Fixed validation logic for currency on Pain.001 messages.
- (PW-2623) Updated the RITS camt.029/056, pacs.004 validation logic for SRU2025
- (PW-2594) Fixed validation logic for Fields 60, 62, 64, and 65 to ensure the DC mark component is mandatory.
9.6.3 - July 2025
- (PW-2566) Updated the RITS BizSvc validation logic for SRU2025
9.6.2 - July 2025
- The 'ExternalCodeSets.xsd' resource default location moved to the Prowide Integrator SDK jar
9.6.1 - June 2025
- Added Cross Rules Validator for camt.105.001.02 and camt.106.001.02
- Added CBPR Validator for camt.105.001.02, camt.106.001.02, camt.105.001.02_MultipleCharges and camt.106.001.02_MultipleCharges
- Enhance CBPR Validator error messages when the header business service is incorrect
9.6.0 - June 2025
- SWIFT Standard release update 2025 (live 22 November 2025)
- Yearly revision of deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
- Updated the default ISO 20022 external code set XSD resource to the 4Q2024_ExternalCodeSets_v2.xsd release
- Implemented the ICM (ISO contingency measures) checks, enabled by default in the
ValidationConfiguration.
9.5.16 - May 2025
- (PW-2392) Fixed error in Semantic Rule 294 (36a must not be present in E1, but can be present in E1A)
- (PW-2388) Do not validate decimal digits for currencies that does not exist in Currency.getAvailableCurrencies()
9.5.15 - April 2025
- (PW-2358) Updated MT568 schema to fix typo in field 22F
- (PW-2339) Updated CBPR Validator for pacs.009 (End To End Identification rule)
9.5.14 - April 2025
- (CU-86b4jtnp0) Added Cross Rules and CBPR Validator for camt.106.001.02
9.5.13 - February 2025
- (PW-2215) Fixed Cross Rules Validator X00050 error detection for Pacs008 and Pacs008 STP
9.5.12 - February 2025
- Updated the SUB6 validation logic to allow the 100 value as per specs
- Added new method to get the details of a ValidationProblem as a single string
- Added validation for the allowed decimal places for amount values based on ISO 4217 currencies for pacs messages
9.5.11 - January 2025
- Updated the default ISO 20022 external code set XSD resource to the 3Q2024_ExternalCodeSets_v1.xsd release
9.5.10 - December 2024
- (PW-2099) Fixed MT field validation for fields 47B and 71E
- Clean up useless MIR parsing log warning when validating MT fields
9.5.9 - December 2024
- (PW-2092) Fixing error in Semantic Rule 30 (adding Field50)
9.5.8 - November 2024
- (PW-2063) Adding new logic to validate empty optional tags that only contains optional tags children
9.5.7 - November 2024
- (PW-2064) Adding new validation for Field 77E in MT 798 message
9.5.6 - October 2024
- (PW-2056) MX CBPR+ and ISO CrossElementValidator fix: retrieve Document node in xml with DataPDU and multiple node structure
9.5.5 - September 2024
- MxValidatorException refactored to
ProwideValidationExitExceptionthat extendsProwideException
9.5.4 - August 2024
- (PW-1928) Change org.apache.derby:derby dependency to optional in the distribution pom.xml
9.5.3 - August 2024
- (PW-1893) Added BizMsgIdr format validation to RITS (HVCS) validation engine
- Added validation of BAH version 4 (head.001.001.04)
9.5.2 - August 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
9.5.1 - June 2024
- (PW-1893) Added new RITS (HVCS) validators for pacs.008, pacs.009 CORE, pacs.009 COV, camt.029 and camt.056
- (PW-1845) Added an option in the RITS (HVCS) validation engine to opt-in strict mode validation (rules not checked by the HVCS portal)
9.5.0 - May 2024
- SWIFT Standard release update 2024 (live 16 November 2024)
- Yearly revision of deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
9.4.23 - May 2024
- (PW-1845) Added new RITS (HVCS) validator for pacs.004
9.4.22 - April 2024
- (PW-1809) Added a new optional SchemaCache to the validation engine configuration to optimize the MX validation process
9.4.21 - April 2024
- (PW-1842) Remove System.exit() call from deprecated class to avoid false positive vulnerability report
9.4.20 - 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...
9.4.19 - 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
9.4.18 - January 2024
- (PW-1739) Modified the validation of field 23 in order to match the specification for MT102/MT103/MT305/MT601
9.4.17 - 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
9.4.16 - December 2023
- (PW-1732) Enhanced the semantic 292 to also report the error for MT541 when the sequence E3 is missing
9.4.15 - December 2023
- (PW-1666) Updated T13 validation logic in order to avoid false positives when validating MTs n92/n95/n96
9.4.14 - 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>
9.4.13 - November 2023
- (PW-1697) Changed field 29O validation to be compatible with the field model changes
9.4.12 - November 2023
- (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
9.4.11 - November 2023
- (PW-1691) CBPR+ fixed validation of specific business service for each message type (version could vary depending on the specific message type)
9.4.10 - November 2023
- (PW-1675) Fixed specific validations for SCORE messages in SRU2023
9.4.9 - October 2023
- Updated the default ISO 20022 external code set XSD resource to the 2Q2023_ExternalCodeSets_v1.xsd release
9.4.8 - October 2023
- MT370 and MT670 messages are now verified to have a size less than 10,000
9.4.7 - October 2023
- (PW-1653) MT671 message is now verified to have a size less than 10,000
9.4.6 - September 2023
- (PW-1613) fixed validation of field 44J narrative to enable 65 characters after the mandatory starting slash
9.4.5 - September 2023
- (PW-1628) fixed validation of new Field 44A, 44B, 44E and 44F enabling multilines since they now use character 'z'
9.4.4 - September 2023
- (PW-1478) fixed validation of new Field 44J
9.4.3 - September 2023
- (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
9.4.2 - 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
9.4.1 - June 2023
- 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