Optional Modules - Changes & Fixes
This page covers the optional module changes and fixes provided in IPF Release 2025.3.0
Scheme Packs
Deprecated Changes
-
Previous character replacer configuration is deprecated, please follow the updated documentation for defining configuration (PAY-15636)
-
Deprecated configuration will no longer be supported starting from the 2026.3.0 release
-
Please see Migration Steps for more details
Breaking Changes
-
Character replacer method to replace parts of the message removed (PAY-15636)
-
BDD test integrity checks fixed for TechnicalResponses and ValidateSchemeRuleResponses (PAY-15277)
-
All references to ValidateSchemeRulesResponseSender in scheme packs should be replaced with ValidateSchemeRulesResponseSender<ValidateSchemeRulesResponse> or ValidateSchemeRulesResponseSender<ValidateDirectDebitSchemeRulesResponse> (in case of direct debit) (PAY-15332)
-
All references to ValidateSchemeRules in scheme packs should be replaced with ValidateSchemeRules<CANONICAL, ValidationResponse> (PAY-15332)
-
All references to ValidateDDSchemeRules<CANONICAL> in scheme packs should be replaced with ValidateSchemeRules<CANONICAL, ValidationDDResponse> (PAY-15332)
-
Any class such as <SchemeName>ValidateSchemeRules that implements ValidateSchemeRules should be replaced with a concrete bean. Each overloaded method in ValidateSchemeRules must have a dedicated implementation for its corresponding CANONICAL type. Each concrete bean should implement ValidateSchemeRules<CANONICAL, ValidationResponse> (PAY-15332)
Please see Migration Steps for more details
New
-
ValidateSchemeRuleResponsenow automatically includes the key"ValidatedIsoType"in itscustomBusinessDatametadata. This identifies which ISO 20022 message type was validated. TheCSMClientValidationResponseAdapterandCSMDDClientValidationResponseAdapterdefaulthandleSchemeRulesResponse()method now automatically routes to new ISO type-specific handler methods for you to implement based on the response metadata. If you previously implemented thehandleSchemeRulesResponse()and don’t wish to migrate to the new default routing no change is required. You can retain your existing implementation without changes (PAY-15060, PAY-15075)
You must keep your CSM client and CSM service versions in sync to ensure the new default handleSchemeRulesResponse() routing works correctly. If your client is upgraded but the service is running an older version, the metadata will be missing from responses, causing the method to fail.
|
-
A new lookup table character replacer is available. See Character Replacement for further details. (PAY-15636)
SEPA CT CSM
New
-
Configuration to disable the scheduling of implicit End-Of-Day (EOD) pacs.002. See eod jobs for further details. (PAY-15290)
Fixed
-
Removed pluralisation of offending tags in validation failures. For example, "XT33 CdtTrfTxInf RmtInf Strds" will now be "XT33 CdtTrfTxInf RmtInf Strd" (PAY-14756)
-
When receiving a CVF file 'Full File Reject' (denoted by the FileRjctRsn field not being 'A00' or 'A01') a System Event of type
FileRejectedwill be raised and the 'submit' flow will remain in a passivated 'Waiting for Scheme Responses' state. (PAY-15290) -
Produced ICF and IQF files are generated with a STEP2 scheme compliant file name (PAY-15716, PAY-15742).
Breaking Changes
-
The following system events have been relocated to
sepa-commonwith their package updated (PAY-14419)-
BulkCommandFailed
-
ReceiveFromSchemeExtensionPointFailed
-
SendingSchemeResponseFailed
-
SendToSchemeExtensionPointFailed
-
SendToSchemeExtensionPointSuccess
-
Please see Migration Steps for more details
SEPA DD CSM
New
-
Add canonical schema validation for ValidateCollectAndSettleSchemeRulesRequest and CollectAndSettleRequest (PAY-15023)
-
Add pacs003 validation rule to mandate debtor postal address country code if payment involves a non-EEA country (PAY-15098)
-
Add new configuration options for enabling or disabling pacs003 validation rule to mandate debtor postal address country code if payment involves a non-EEA country. The default values are:
-
ipf.csm.sepa-dd.validation.pacs003.non-eea-debtor-address-validation-outbound.enabled = false
-
-
Add pacs003 validation rule to verify the debtor postal address must be either structured, hybrid or unstructured (PAY-11648)
-
Add new configuration options for enabling or disabling pacs003 validation rule to verify the debtor postal address must be either structured, hybrid or unstructured. The default values are:
-
ipf.csm.sepa-dd.validation.pacs003.debtor-address-structural-validation-outbound.enabled = false
-
-
Add new configuration options for enabling or disabling pacs003 validation rule to verify the creditor postal address must be either structured, hybrid or unstructured. The default values are:
-
ipf.csm.sepa-dd.validation.pacs003.creditor-address-structural-validation-outbound.enabled = false
-
-
Enabled Debulker schema validation for DVF and RSF files. (PAY-14837)
-
Added camt056 support (PAY-15649)
-
Direct Debit API now supports
ExecuteDDCancellationRequestandExecuteDDCancellationResponsefor additional details see API and Request Processing -
Direct Debit Validation API now supports
ValidateDDCancellationSchemeRulesRequestfor additional details see API and Validations -
IDF File Production now supports camt056
-
DVF Response processing supports camt056
-
-
Added pacs007 support (PAY-15649)
-
Direct Debit API now supports
ExecuteDDReversalRequestandExecuteDDReversalResponsefor additional details see API and Request Processing -
Direct Debit Validation API now supports
ValidateDDReversalSchemeRulesRequestfor additional details see API and Validations -
IDF File Production now supports pacs007
-
DVF Response processing supports pacs007
-
RSF Response processing supports pacs007
-
Fixed
-
Component processing of a DVF/RSF file will now resume after an application crash (PAY-14419)
-
Unable to process ValidateCollectAndSettleSchemeRulesRequest if scheme schema validation error (PAY-15023)
-
Remove failed transactions from bulking and raise RegisterBulkCorrelationFailed system event if saving to the correlation store fails (PAY-14833)
-
Validation now correctly rejects pacs003 requests containing more than 2 postal address lines for debtor or creditor (PAY-15049)
-
For flow validations, resume running validations on the remaining transactions even if the first one failed, so we can submit successful transactions to the bulker correctly (PAY-14884)
-
Produced IDF files are generated with a STEP2 scheme compliant file name (PAY-15741).
Changed
-
Updated to the latest XSD Schemas for the October 2025 release:
-
Pacs003 (PAY-14682)
-
Pacs002S2 (PAY-14683)
-
Breaking Changes
-
Pacs002 message processing for RSF and DVF is now contained in a subflow (PAY-14419)
-
The
technical.enabledparameter now serves as a single toggle for enabling/disabling direct debit technical responses (see configuration changes below)-
Kafka Topic Default Value change from
COLLECTANDSETTLE_TECHNICAL_RESPONSEtoDIRECTDEBIT_TECHNICAL_RESPONSE -
JMS Queue Default Value change from
collectandsettle.technical.responsetodirectdebit.technical.response
-
-
Direct Debit queues/topics are now per direction and role only (i.e. DD creditor-to-csm/DD csm-to-creditor), as opposed to per direction, role and message type (PAY-15358/PAY-15434/PAY-15360/PAY-15550)
-
Topic names and configuration keys to override them have changed. See transport reference for further details
-
The configuration below shows the change in configuration to enable/disable the various DD connectors:
Before:
csm {
direct-debit {
collect-and-settle {
creditor.enabled = true
technical.enabled = true
}
}
}
After:
csm {
direct-debit {
creditor.enabled = true
technical.enabled = true
}
}
Please see Migration Steps for more details
TIPS CSM
Breaking Changes
-
The default character replacement has been updated to use the EPC217-08 SEPA Conversion Table (PAY-15584)
-
Caveat: Multi-character replacements from the table will be replaced by
. -
Please see Migration Steps on how to maintain the legacy behaviour
-
SEPA VFG Simulator
IPF Metrics Processor
New
Updated configuration structure to support versioned pds mappings in IPF Metrics Processor.
To support IPF data versioning, the metrics processor configuration has been enhanced to handle multiple versions of a PDS object across various releases, accommodating possible schema changes.
- NOTE
-
While PDS versioning is not currently supported in IPF, these changes are in preparation for its eventual integration. Further documentation will be provided once versioning is fully supported.
This change is backwards compatible, allowing users to continue using the existing configuration without requiring immediate migration to the new format.
The following is an example configuration for some metrics labels:
ipf.business-metrics-processor.payment-metrics {
labels {
csm {
pds-type = "Csm",
path = "/value"
}
currency {
pds-type = CurrencyPdsType
path = "/amt/pmtAmt/ccy"
}
local-instrument {
pds-type = InstrumentPdsType
path = "/prcgInstrs/lclInstrm/prtry"
}
}
}
To migrate to the new configuration, the following changes are required:
-
Replace the
labelskey withversioned-labels -
Each key within
versioned-labels(E.g.csm,currency,local-instrumentetc.) now holds an array of objects rather than a single object.
Below is the updated version of the example configuration:
ipf.business-metrics-processor.payment-metrics {
versioned-labels {
csm = [
{
pds-type = "Csm",
path = "/value"
}
]
currency = [
{
pds-type = CurrencyPdsType
path = "/amt/pmtAmt/ccy"
}
]
local-instrument = [
{
pds-type = InstrumentPdsType
path = "/prcgInstrs/lclInstrm/prtry"
}
]
}
}
Query ODS using Inquiry
In some cases, the metrics processor queries ODS (Operational Data Store) database to retrieve any missing data such as events and PDS (Processing Data Structures) objects. This has been done using a direct connection to the ODS MongoDB collections. It is now possible to configure the metrics processor to utilise ODS Inquiry to retrieve this necessary data.
This functionality is optionally configurable. If desired, add the following to your IPF Metrics Processor configuration:
ods.inquiry.client {
version = 3
// Only the process object and pds object connectors are required
process-objects.enabled = true
pds-objects.enabled = true
// Replace with your deployed ODS Inquiry host and port
http.client {
host = "ods-inquiry-host"
port = 8080
}
}
|
We recommended that you move to using this ODS client configuration for the metrics processor as it will become the default in the future; at which point, An instance of ODS Inquiry is required within your deployment for these new connectors to work. |
Verification of Payee (VoP)
VoP Responder
New
-
Country Filtering
-
Added functionality to filter VoP requests based on requesting agent BIC country code and an optional regulatory date. Returns a NOAP (Not Applicable) response if any of these checks are not met.
-
Country Filtering is disabled by default, so no migration steps are needed for responder to continue working
-
Please see VoP Responder for more details
-
Payment Notification Service
Breaking Changes
As part of making the Notification Service data version agnostic, some domain classes have changed which may require a migration for client-specific implementations of the notification service. See the migration notes for additional details.