Documentation for a newer release is available. View Latest

Optional Modules - Changes & Fixes

This page covers the optional module changes and fixes provided in IPF Release 2025.2.0

Scheme Packs

Scheme Pack Client Library

New

  • Made the status request send connectors independently configurable. Prior to this change, both CSMDebtorStatusRequestSend and CSMCreditorStatusRequestSend connectors were configured via csm.ct-service.statusrequest-send-connector. As of this release, they will be configured through csm.ct-service.debtor-statusrequest-send-connector and csm.ct-service.creditor-statusrequest-send-connector, respectively. To maintain backward compatibility with existing configuration, csm.ct-service.debtor-statusrequest-send-connector and csm.ct-service.creditor-statusrequest-send-connector will both inherit from csm.ct-service.statusrequest-send-connector.

  • Made Kafka transports independently configurable in the scheme pack Kafka client library (csm-client-starter-kafka). Prior to this change, all Kafka transports were configured through csm.kafka.producer (sending transports) and csm.kafka.consumer (receiving transports). As of this release, they will be configured through dedicated config root paths, which are listed under the Transport Reference page. To maintain backward compatibility with existing configuration, all Kafka transports will inherit their configuration from csm.kafka.producer and csm.kafka.consumer.

SEPA CT CSM

New

  • Added new configuration options for enabling or disabling postal address structural validations (creditor and debtor) for outbound pacs.008 messages. The default values are:

    • ipf.csm.sepa-ct.validation.pacs008.debtor-address-structural-validation-outbound.enabled = false

    • ipf.csm.sepa-ct.validation.pacs008.creditor-address-structural-validation-outbound.enabled = false

  • To enable this functionality, set:

    • ipf.csm.sepa-ct.validation.pacs008.debtor-address-structural-validation-outbound.enabled = true

    • ipf.csm.sepa-ct.validation.pacs008.creditor-address-structural-validation-outbound.enabled = true

  • Added new configuration options for enabling or disabling non-EEA outbound address validations for a pacs.008 message. The default value is:

    • ipf.csm.sepa-ct.validation.pacs008.non-eea-debtor-address-validation-outbound.enabled = false

  • To enable this functionality, set:

    • ipf.csm.sepa-ct.validation.pacs008.non-eea-debtor-address-validation-outbound.enabled = true

  • Added new configuration options for enabling or disabling postal address structural validations (creditor and debtor) for inbound pacs.008 messages. The default values are:

    • ipf.csm.sepa-ct.validation.pacs008.debtor-address-structural-validation-inbound.enabled = false

    • ipf.csm.sepa-ct.validation.pacs008.creditor-address-structural-validation-inbound.enabled = false

  • To enable this functionality, set:

    • ipf.csm.sepa-ct.validation.pacs008.debtor-address-structural-validation-inbound.enabled = true

    • ipf.csm.sepa-ct.validation.pacs008.creditor-address-structural-validation-inbound.enabled = true

  • Added schema validation support for inbound SCT Step2 messages (SCF, OQF, CVF, RSF, PCF, QVF). (PAY-14498)

Changed

  • Existing Debtor CT pacs.008 (outbound to scheme) Unstructured/Structured validations removed and replaced with "Unstructured", "Structured" or "Hybrid" validations

  • Existing Debtor CT pacs.008 (outbound to scheme) non EEA validations removed and replaced with debtor postal address country check

  • Existing Debtor CT pacs.008 (outbound to scheme) fails the transaction duplicate check with AM05 instead of DU03 (aligned with docs)

  • Improved and aligned validation documentation with the implementation

  • Updated to the latest XSD Schemas for the October 2025 release:

    • pacs.008

    • pacs.004

    • camt.029

    • camt.056

    • pacs.028

    • pacs.002s2

    • camt.027

    • camt.087

  • Existing inbound pacs.008 Unstructured/Structured validations removed and replaced with "Unstructured", "Structured" or "Hybrid" validations

  • Original Message Name Id Validations for:

    • camt.029 and camt.056: If TxInfAndSts.OrgnlGrpInf.OrgnlMsgNmId does not start with pacs.008

    • pacs.028:

      • If FIToFIPmtStsReq.OrgnlGrpInf is populated and if TxInf.OrgnlGrpInf.OrgnlMsgNmId does not start with camt.056

      • If FIToFIPmtStsReq.OrgnlGrpInf is not populated and FIToFIPmtStsReq.TxInves.OrgnlGrpInf.OrgnlMsgNmId does not start with camt.027 or camt.087

  • Updated notification documentation with recently introduced debulker notification details

Fixed

  • Remittance validation rule updated to only allow structured or unstructured remittance information to be present

  • Remittance validation rule updated to only allow contents of Structured Remittance Information under 140 characters

  • Component processing of a CVF file will now resume after an application crash

SEPA DD CSM

New

  • Added error handling documentation

Changed

  • Removed inbound validation details from validation documentation (will be added in later releases)

  • Updated notification documentation with recently introduced debulker notification details

SIC CSM

New

  • Added support for reason code AG01 to be mapped to NEG002 clearing system reference

TIPS CSM

New

  • Added validation to ensure only one of Unstructured or Structured remittance information is populated in outbound to scheme pacs.008 messages

Verification of Payee (VoP)

Account Management API

Breaking

  • In the response schema the following field has been renamed:

    • 'RetrievePartyDetailsResponse.nm' to 'RetrievePartyDetailsResponse.names' and is now a list of names

New

  • Added 'processingEntity' as an optional field in the spec

Changed

  • 'RetrievePartyDetailsResponse.nm' has been renamed to 'RetrievePartyDetailsResponse.names' and is now a list of names (PAY-13968)

  • Response bean validation functionality is now configured on Account Management connector

VoP Responder

Breaking

  • In the Processing Archive model the following fields have been renamed:

    • 'ProcessingArchive.matchedName' to 'ProcessingArchive.scoredName'

    • 'ProcessingArchive.accountPayeeName' to 'ProcessingArchive.accountPayeeNames' and is now a list of names

  • Previously, match thresholds were defined per account type only. In this release match thresholds must be defined per processing entity and account type.

Please see Migration Steps for more details

New

  • Added 'processingEntity' value in Message and Processing Archive Logs

  • Added 'requestPayeeIban' and 'requestReceivedTimestamp' value in Processing Archive Logs

  • Added support for matching on multiple names

  • Added support for handling errors from Account Management Service

  • Added support for tracing log messages by requestId

  • Added Message Logs on error responses

  • Configuration updated to allow for specifying RVM

  • Added the following startup validations on config threshold fields lowerbound and upperbound :

    • They must be of type Double

    • They must be in the range [0.0, 1.0]

    • The lowerbound must be less than or equal to the upperbound

Changed

  • Match thresholds must now be configured per processing entity

  • Improve feedback when name matching service is unavailable

  • Bad Request errors from all incoming integration points are now propagated correctly

VoP Requester

Breaking

  • Configuration ipf.verification-of-payee.requester.scheme-membership-ids has been removed from the hierarchy. Clients overriding values (e.g. processing-entities) underneath this path should remove scheme-membership-ids from the path.

  • Default processing-entity-code was previously "". This has been updated to default instead of empty string, consistent with VoP Responder

  • rvm parameter should be specified in addition to name for scheme configuration

Please see Migration Steps for more details

New

  • Added support for handling negative responses from FPAD RVM

  • Added 'processingEntity' value in Message Logs

  • Added Message Logs on error responses

  • Added support for tracing log messages by requestId

  • Configuration updated to allow for specifying RVM

Changed

  • Processing Archive model:

    • 'ProcessingArchive.matchedName' has been renamed to 'ProcessingArchive.scoredName'

    • 'ProcessingArchive.accountPayeeName' has been renamed to 'ProcessingArchive.accountPayeeNames' and is now a list of names

  • Scheme configuration changes:

    • Default processing entity is now denoted by default instead of ""

    • Scheme name property is now an Enum and validated on startup

  • 'Proprietary' is removed from the spec

Fixed

  • If enabled, the swagger UI now correctly displays the Requester API

SIC CSM Service

Breaking

SIC CSM Service used to create its own connectors. However, since both DPS API and CSM Reachability API already provide those connectors out-of-the-box, they are used instead of the SIC CSM Service custom made connectors.

That effectively means that:

  • SIC CSM service now uses CSM Reachability client connector for IBAN Deconstruct

  • SIC CSM service now uses DPS v2 Connector for getting Participant details

The following properties are deprecated:

  • csm-reachability-api.participant

  • csm-reachability-api.iban-structure

Only host and port data are reused and mapped to new configurations as it can be seen in the following HOCON config.
    # DPS API configuration for getting Participant details
    ipf.dps-api {
        http.client {
            host = "localhost"
            port = 8080
            # previous status codes treated as error everything which is not 200
            # this is close enough to it as connectors don't provide overrides
            status-codes-treated-as-errors = [4xx, 5xx]
        }
        # to maintain backward compatibility, deprecated properties can be used to set host and port
        http.client.host = ${?csm-reachability-api.participant.http.client.host}
        http.client.port = ${?csm-reachability-api.participant.http.client.port}
    }

    # CSM Reachability API configuration for making a call to IBAN Deconstruct endpoint
    ipf.csm-reachability-api {
        http.client {
            host = "localhost"
            port = "8080"
            # previous status codes treated as error everything which is not 200
            # this is close enough to it as connectors don't provide overrides
            status-codes-treated-as-errors = [4xx, 5xx]
        }
        # to maintain backward compatibility, deprecated properties can be used to set host and port
        http.client.host = ${?csm-reachability-api.iban-structure.http.client.host}
        http.client.port = ${?csm-reachability-api.iban-structure.http.client.port}
    }

For more information on how to tweak further these connectors, please refer to:

Clients are expected to change their deployment configuration to match new configurations as future releases will remove backward compatibility of deprecated properties.

Fixed

  • Prevent null pointer on ultimate debtor and creditor on address validations