Validations
| This page details the validations that apply BEFORE the 2025 rulebook changes, implemented to comply with the annual TIPS scheme upgrade. This upgrade is scheduled to go live in the market on October 5th, 2025. (For validations after that please refer to Validations - Rulebook 2025) |
The purpose of this page is to summarise the additional usage validations performed by the TIPS scheme pack when processing a message.
All messages undergo an XSD schema check to make sure that the fields are technically correct, but only certain fields have additional usage validations performed on them. If an additional usage validation is not listed below then it is not validated by the scheme pack.
This is in line with Icon’s rationale and prioritisation of making sure client constructed messages conform to all scheme rules and are not likely to be rejected. Messages from the scheme have, however, already been validated, so the priority for those is swift, safe processing through to the customer’s account.
Validation on all inbound messages only can be disabled using ipf.csm.validation.inbound.enabled = false.
Outbound validation cannot be disabled.
|
Inbound pacs.008
The following validations are performed on an Inbound pacs.008, failures will result in a pacs.002 sent back to the scheme with the Return Code quoted below, and a Inbound Message Failed system event to inform the Client.
Field |
Validation Details |
Return Code |
All Fields |
Checks if the message is valid against the TIPS pacs.008 xsd |
FF01 |
GrpHdr+TtlIntrBkSttlmAmt |
Must be equal to the value of the underlying transactions |
FF01 |
CdtTrfTxInf+PmtId++TxId |
Technical Duplicate Check (same DbtrAgt and TxId) within timeframe configured by |
AM05 |
CdtTrfTxInf+AccptncDtTm |
If receive timeout is enabled |
AB05 |
CdtTrfTxInf+UltmtDbtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed |
FF01 |
CdtTrfTxInf+UltmtDbtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed |
FF01 |
CdtTrfTxInf+Dbtr++PstlAdr |
Debtor Postal address is mandatory if Debtor Agent and/or Creditor Agent are not in the EEA. Note - this validation can be disabled - see configurations page. |
RR02 |
CdtTrfTxInf+Dbtr++PstlAdr |
If 'Address Line' is used, then 'Postal Address' sub-elements other than 'Country' are forbidden. A combination of 'Address Line' and 'Country' is allowed. If 'Address Line' is not used, then at least 'Town Name' and 'Country' must be used |
FF01 |
CdtTrfTxInf+Dbtr++PstlAdr+++AdrLine |
If 'Address Line' is used, then 'Postal Address' sub-elements other than 'Country' are forbidden. A combination of 'Address Line' and 'Country' is allowed. If 'Address Line' is not used, then at least 'Town Name' and 'Country' must be used |
FF01 |
CdtTrfTxInf+Dbtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed |
FF01 |
CdtTrfTxInf+Dbtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed |
FF01 |
CdtTrfTxInf+CdtrAgt++FinInstnId+++BICFI |
Validated against IPF configuration to ensure that this BIC corresponds to a BIC that this instance of IPF has responsibility for |
RC01 |
CdtTrfTxInf+Cdtr++PstlAdr |
If 'Address Line' is used, then 'Postal Address' sub-elements other than 'Country' are forbidden. A combination of 'Address Line' and 'Country' is allowed. If 'Address Line' is not used, then at least 'Town Name' and 'Country' must be used. |
FF01 |
CdtTrfTxInf+Cdtr++PstlAdr+++AdrLine |
If 'Address Line' is used, then 'Postal Address' sub-elements other than 'Country' are forbidden. A combination of 'Address Line' and 'Country' is allowed. If 'Address Line' is not used, then at least 'Town Name' and 'Country' must be used |
FF01 |
CdtTrfTxInf+Cdtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed |
FF01 |
CdtTrfTxInf+Cdtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed |
FF01 |
CdtTrfTxInf+UltmtCdtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed. |
FF01 |
CdtTrfTxInf+UltmtCdtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed. |
FF01 |
CdtTrfTxInf+RmtInf |
Either Unstructured or Structured may be present. If both components are included, the message will be rejected during the validation process. |
FF01 |
Outbound pacs.008
If any of the below validations fail then a Response is sent back to the client and an ERROR level SchemeRuleValidationFailed system event is raised.
Field |
Validation Details |
Result of Failure |
All Fields |
Checks if the message is valid against the TIPS pacs.008 xsd |
System event raised with a description of the error |
GrpHdr+TtlIntrBkSttlmAmt |
Must be equal to the value of the underlying transactions |
System event is raised with description: Interbank Settlement Amount between group header and transaction do not match |
CdtTrfTxInf+UltmtDbtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed |
System event is raised with description: Mutually exclusive fields populated in CdtTrfTxInf.UltmtDbtr.Id.OrgId |
CdtTrfTxInf+UltmtDbtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed |
System event is raised with description: Mutually exclusive fields populated in CdtTrfTxInf.UltmtDbtr.Id.PrvtId |
CdtTrfTxInf+Dbtr++PstlAdr |
Debtor Postal address is mandatory if Debtor Agent and/or Creditor Agent are not in the EEA. Note - this validation can be disabled - see configurations page. |
System event is raised with description: CdtTrfTxinf.Dbtr.PstlAdr is mandatory if payment involves a non-EEA country or territory |
CdtTrfTxInf+Dbtr++PstlAdr |
If 'Address Line' is used, then 'Postal Address' sub-elements other than 'Country' are forbidden. A combination of 'Address Line' and 'Country' is allowed. If 'Address Line' is not used, then at least 'Town Name' and 'Country' must be used |
System event is raised with description: CdtTrfTxInf.Dbtr.PstlAdr - Structured Address must include a minimum of Town Name and Country Code |
CdtTrfTxInf+Dbtr++PstlAdr+++AdrLine |
If 'Address Line' is used, then 'Postal Address' sub-elements other than 'Country' are forbidden. A combination of 'Address Line' and 'Country' is allowed. If 'Address Line' is not used, then at least 'Town Name' and 'Country' must be used |
System event is raised with description: CdtTrfTxInf.Dbtr.PstlAdr.AdrLine - Unstructured address can only be combined with country code - no other structured address fields can be used |
CdtTrfTxInf+Dbtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed |
System event is raised with description: Mutually exclusive fields populated in CdtTrfTxInf.Dbtr.Id.OrgId |
CdtTrfTxInf+Dbtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed |
System event is raised with description: Mutually exclusive fields populated in CdtTrfTxInf.Dbtr.Id.PrvtId |
CdtTrfTxInf+Cdtr++PstlAdr |
If 'Address Line' is used, then 'Postal Address' sub-elements other than 'Country' are forbidden. A combination of 'Address Line' and 'Country' is allowed. If 'Address Line' is not used, then at least 'Town Name' and 'Country' must be used. |
ERROR level system event raised with name 'SchemeRuleValidationFailed' and description "CdtTrfTxInf.Cdtr.PstlAdr - Structured Address must include a minimum of Town Name and Country Code" |
CdtTrfTxInf+Cdtr++PstlAdr+++AdrLine |
If 'Address Line' is used, then 'Postal Address' sub-elements other than 'Country' are forbidden. A combination of 'Address Line' and 'Country' is allowed. If 'Address Line' is not used, then at least 'Town Name' and 'Country' must be used |
ERROR level system event raised with name 'SchemeRuleValidationFailed' and description "CdtTrfTxInf.Cdtr.PstlAdr.AdrLine - Unstructured address can only be combined with country code - no other structured address fields can be used" |
CdtTrfTxInf+Cdtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed |
System event is raised with description: Mutually exclusive fields populated in CdtTrfTxInf.Cdtr.Id.OrgId |
CdtTrfTxInf+Cdtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed |
System event is raised with description: Mutually exclusive fields populated in CdtTrfTxInf.Cdtr.Id.PrvtId |
CdtTrfTxInf+UltmtCdtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed. |
System event is raised with description: Mutually exclusive fields populated in CdtTrfTxInf.UltmtCdtr.Id.OrgId |
CdtTrfTxInf+UltmtCdtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed. |
System event is raised with description: Mutually exclusive fields populated in CdtTrfTxInf.UltmtCdtr.Id.PrvtId |
CdtTrfTxInf+IntrBkSttlmAmt |
Amount should be less than the amount configured by property |
System event is raised with description: Amount exceeds scheme limit |
CdtTrfTxInf+DbtrAgt++FinInstnId+++BICFI |
Validated against IPF configuration to ensure that this BIC corresponds to a BIC that this instance of IPF has responsibility for |
System event is raised with description: BIC value not allowed |
Inbound pacs.004
The following validations are performed on an Inbound pacs.004, failures will result in a pacs.002 sent back to the scheme with the Return Code quoted below, and a Inbound Message Failed system event to inform the Client.
Field |
Validation Details |
Return Code |
All Fields |
Checked to make sure the message is valid against the TIPS pacs.004 xsd |
FF01 |
GrpHdr+NbOfTxs |
TIPS supports only one transaction per message. If this field is not 1, the message will be rejected. |
FF01 |
GrpHdr+TtlRtrdIntrBkSttlmAmt |
Must be equal to the value of the underlying transactions |
FF01 |
OrgnlGrpInf |
'Original Group Information' must exist as a child underneath |
FF01 |
TxInf+OrgnlGrpInf |
'Original Group Information' must exist as a child underneath |
FF01 |
TxInf |
TIPS supports only one transaction per message. If more than one Transaction Information block is included, message will be rejected. |
FF01 |
TxInf+RtrId |
Technical Duplicate Check (same DbtrAgt and TxId) |
AM05 |
Outbound pacs.004
If any of the below validations fail then a Response is sent back to the client and an ERROR level SchemeRuleValidationFailed system event is raised.
Field |
Validation Details |
Result of Failure |
All Fields |
Checks if the message is valid against the TIPS pacs.004 xsd |
System event raised with a description of the error |
GrpHdr+NbOfTxs |
TIPS supports only one transaction per message. If this field is not 1, the message will be rejected. |
System event is raised with description: Number of transactions in group header and underlying transactions do not match or Only one instance of PmtRtr.TxInf is permitted |
GrpHdr+TtlRtrdIntrBkSttlmAmt |
Must be equal to the value of the underlying transactions |
System event is raised with description: Interbank Returned Settlement Amount between Group Header and transaction do not match |
OrgnlGrpInf |
'Original Group Information' must exist as a child underneath |
System event is raised with description: Either PmtRtr.GrpHdr.OrgnlGrpInf or PmtRtr.TxInf.OrgnlGrpInf must be populated or Both PmtRtr.GrpHdr.OrgnlGrpInf and PmtRtr.TxInf.OrgnlGrpInf cannot be populated |
TxInf+OrgnlGrpInf |
'Original Group Information' must exist as a child underneath |
System event is raised with description: Either PmtRtr.GrpHdr.OrgnlGrpInf or PmtRtr.TxInf.OrgnlGrpInf must be populated or Both PmtRtr.GrpHdr.OrgnlGrpInf and PmtRtr.TxInf.OrgnlGrpInf cannot be populated |
TxInf |
TIPS supports only one transaction per message. If more than one Transaction Information block is included, message will be rejected. |
System event is raised with description: Only one instance of PmtRtr.TxInf is permitted |
Inbound pacs.002
A pacs.002 cannot be sent to scheme as the result of failed pacs.002 validation.
In this situation a Inbound Message Failed system event to inform the Client.
Field |
Validation Details |
Result of Failure |
All Fields |
Checked to make sure the message is valid against the TIPS pacs.002 xsd |
System event raised with a description of the error |
OrgnlGrpInfAndSts+GrpSts |
|
System event is raised with description: Either FIToFIPmtStsRpt.OrgnlGrpInfAndSts.GrpSts or FIToFIPmtStsRpt.TxInfAndSts.TxSts must be populated or Both FIToFIPmtStsRpt.OrgnlGrpInfAndSts.GrpSts and FIToFIPmtStsRpt.TxInfAndSts.TxSts cannot be populated |
OrgnlGrpInfAndSts+GrpSts |
If |
System event is raised with description: Status reason Information can only be populated if GrpSts is Rejected |
OrgnlGrpInfAndSts+GrpSts |
If |
System event is raised with description: Original Group Information and Status reason Information must be populated if GrpSts is Rejected |
TxInfAndSts+TxSts |
If |
System event is raised with description: Transaction Information and Status reason Information must be populated if TxSts is Rejected |
When processing an incoming (from scheme) pacs.002 message which is in response to an outgoing (to scheme) pacs.008 message the only additional validation check performed is to check that the pacs.002 received correlates with an outbound pacs.008. If the pacs.008 cannot be located then a system event is raised to payment service stating an invalid pacs.002 was received.
Outbound pacs.002
If any of the below validations fail then a Response is sent back to the client and an ERROR level SchemeRuleValidationFailed system event is raised.
Field |
Validation Details |
Result of Failure |
All Fields |
Checks if the message is valid against the TIPS pacs.002 xsd |
System event raised with a description of the error |
OrgnlGrpInfAndSts+GrpSts |
|
System event is raised with description: Either FIToFIPmtStsRpt.OrgnlGrpInfAndSts.GrpSts or FIToFIPmtStsRpt.TxInfAndSts.TxSts must be populated or Both FIToFIPmtStsRpt.OrgnlGrpInfAndSts.GrpSts and FIToFIPmtStsRpt.TxInfAndSts.TxSts cannot be populated |
OrgnlGrpInfAndSts+GrpSts |
If |
System event is raised with description: Status reason Information can only be populated if GrpSts is Rejected |
OrgnlGrpInfAndSts+GrpSts |
If |
System event is raised with description: Original Group Information and Status reason Information must be populated if GrpSts is Rejected |
TxInfAndSts+TxSts |
If |
System event is raised with description: Transaction Information and Status reason Information must be populated if TxSts is Rejected |
Outbound pacs.028
If any of the below validations fail then a Response is sent back to the client and an ERROR level SchemeRuleValidationFailed system event is raised.
Field |
Validation Details |
Result of Failure |
All Fields |
Checked to make sure the message is valid against the TIPS pacs.028 xsd |
System event raised with a description of the error |
TxInf+AccptncDtTm |
MUST be populated |
System event is raised with description: FIToFIPmtStsReq.TxInf.AccptncDtTm is mandatory on a payment status request |
Inbound pacs.028
The following validations are performed on an Inbound pacs.028, failures will result in a Inbound Message Failed system event to inform the Client.
Field |
Validation Details |
Result of Failure |
All Fields |
Checked to make sure the message is valid against the TIPS pacs.028 xsd |
System event raised with a description of the error |
OrgnlGrpInf+OrgnlMsgNmId |
Field must contain either |
System event is raised with detail: Not able to handle received payment status request for orgnlMsgNmId |