Validations
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.
Inbound pacs.008
The following validations are performed on an Inbound pacs.008 from the scheme. Failures will result in a pacs.002 sent back to the scheme with the Return Code quoted below, and an ERROR level InboundMessageFailed system event to inform the Client.
Field |
Validation Details |
Return Code |
System Event Description |
All Fields |
Checks if the message is valid against the TIPS pacs.008 xsd |
FF01 |
An error message from schema validation failure. Example: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08":CreDtTm}'. One of '{"urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08":MsgId}' is expected. |
GrpHdr+TtlIntrBkSttlmAmt |
Must be equal to the value of the underlying transactions |
FF01 |
Interbank Settlement Amount between group header and transaction do not match |
CdtTrfTxInf+PmtId++TxId |
Technical Duplicate Check (same DbtrAgt and TxId) within timeframe configured by |
AM05 |
Duplicate Transaction |
CdtTrfTxInf+AccptncDtTm |
If receive timeout is enabled |
AB05 |
Processing timed out. Processing took 6000 ms. Scheme configured timeout is 5000 ms |
CdtTrfTxInf+UltmtDbtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' and/or one occurrence of 'Other' is allowed |
FF01 |
One of:
|
CdtTrfTxInf+UltmtDbtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed |
FF01 |
Mutually exclusive fields populated in CdtTrfTxInf.UltmtDbtr.Id.PrvtId |
CdtTrfTxInf+Dbtr++PstlAdr+++Ctry |
Debtor Postal Address Country 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.Ctry is mandatory if payment involves a non-EEA country or territory |
CdtTrfTxInf+Dbtr++PstlAdr |
Addresses are classified according to the address fields populated as per the Postal Address Structural Validations Note - these validations can be disabled - see configurations page. |
RR02 |
CdtTrfTxInf.Dbtr.PstlAdr - address must be either structured, hybrid or unstructured |
CdtTrfTxInf+Dbtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' and/or one occurrence of 'Other' is allowed |
FF01 |
One of:
|
CdtTrfTxInf+Dbtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed |
FF01 |
Mutually exclusive fields populated in CdtTrfTxInf.Dbtr.Id.PrvtId |
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 |
BIC value not allowed |
CdtTrfTxInf+Cdtr++PstlAdr |
Addresses are classified according to the address fields populated as per the Postal Address Structural Validations Note - these validations can be disabled - see configurations page. |
RR03 |
CdtTrfTxInf.Cdtr.PstlAdr - address must be either structured, hybrid or unstructured |
CdtTrfTxInf+Cdtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed |
FF01 |
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 |
FF01 |
Mutually exclusive fields populated in CdtTrfTxInf.Cdtr.Id.PrvtId |
CdtTrfTxInf+UltmtCdtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed. |
FF01 |
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. |
FF01 |
Mutually exclusive fields populated in CdtTrfTxInf.UltmtCdtr.Id.PrvtId |
CdtTrfTxInf+RmtInf |
Either Unstructured or Structured may be present. If both components are included, the message will be rejected during the validation process. |
FF01 |
Mutually exclusive fields populated in CdtTrfTxInf.RmtInf |
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. Both response and system event quote the Return Code.
Field |
Validation Details |
Return Code |
System Event Description |
All Fields |
Checks if the message is valid against the TIPS pacs.008 xsd |
FF01 |
An error starting with the prefixed text 'XSD Schema Validation failure -' followed by an error message from schema validation failure. Example: XSD Schema Validation failure - cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08":CreDtTm}'. One of '{"urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08":MsgId}' is expected. |
GrpHdr+TtlIntrBkSttlmAmt |
Must be equal to the value of the underlying transactions |
FF01 |
Interbank Settlement Amount between group header and transaction do not match |
CdtTrfTxInf+UltmtDbtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' and/or one occurrence of 'Other' is allowed |
FF01 |
One of:
|
CdtTrfTxInf+UltmtDbtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed |
FF01 |
Mutually exclusive fields populated in CdtTrfTxInf.UltmtDbtr.Id.PrvtId |
CdtTrfTxInf+Dbtr++PstlAdr+++Ctry |
Debtor Postal address Country is mandatory if Debtor Agent and/or Creditor Agent are not in the EEA. Note - this validation can be disabled - see configurations page. |
BE07 |
CdtTrfTxinf.Dbtr.PstlAdr.Ctry is mandatory if payment involves a non-EEA country or territory |
CdtTrfTxInf+Dbtr++PstlAdr |
Addresses are classified according to the address fields populated as per the Postal Address Structural Validations Note - these validations can be disabled - see configurations page. |
BE07 |
CdtTrfTxInf.Dbtr.PstlAdr - address must be either structured, hybrid or unstructured |
CdtTrfTxInf+Dbtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' and/or one occurrence of 'Other' is allowed |
FF01 |
One of:
|
CdtTrfTxInf+Dbtr++Id+++PrvtId |
Either 'Date and Place of Birth' or one occurrence of 'Other' is allowed |
FF01 |
Mutually exclusive fields populated in CdtTrfTxInf.Dbtr.Id.PrvtId |
CdtTrfTxInf+Cdtr++PstlAdr |
Addresses are classified according to the address fields populated as per the Postal Address Structural Validations Note - these validations can be disabled - see configurations page. |
BE04 |
CdtTrfTxInf.Cdtr.PstlAdr - address must be either structured, hybrid or unstructured |
CdtTrfTxInf+Cdtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed |
FF01 |
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 |
FF01 |
Mutually exclusive fields populated in CdtTrfTxInf.Cdtr.Id.PrvtId |
CdtTrfTxInf+UltmtCdtr++Id+++OrgId |
Either 'AnyBIC', 'LEI' or one occurrence of 'Other' is allowed. |
FF01 |
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. |
FF01 |
Mutually exclusive fields populated in CdtTrfTxInf.UltmtCdtr.Id.PrvtId |
CdtTrfTxInf+IntrBkSttlmAmt |
If amount limit validation is enabled |
AM02 |
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 |
RC01 |
BIC value not allowed |
CdtTrfTxInf+RmtInf |
Either Unstructured or Structured may be present. If both components are included, the message will be rejected during the validation process. |
FF01 |
Mutually exclusive fields populated in CdtTrfTxInf.RmtInf |
Inbound pacs.004
The following validations are performed on an Inbound pacs.004 from the the Scheme. Failures will result in a pacs.002 sent back to the scheme with the Return Code quoted below, and an ERROR level InboundMessageFailed system event to inform the Client.
Field |
Validation Details |
Return Code |
System Event Description |
All Fields |
Checked to make sure the message is valid against the TIPS pacs.004 xsd |
FF01 |
An error message from schema validation failure. Example: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:iso:std:iso:20022:tech:xsd:pacs.004.001.09":CreDtTm}'. One of '{"urn:iso:std:iso:20022:tech:xsd:pacs.004.001.09":MsgId}' is expected. |
GrpHdr+NbOfTxs |
The number of transactions in the group header and the number of underlying transactions in TxInf must match. |
FF01 |
Number of transactions in group header and underlying transactions do not match |
GrpHdr+TtlRtrdIntrBkSttlmAmt |
Must be equal to the value of the underlying transactions |
FF01 |
Interbank Returned Settlement Amount between Group Header and transaction do not match |
OrgnlGrpInf |
'Original Group Information' must exist as a child underneath |
FF01 |
One of:
|
TxInf+OrgnlGrpInf |
'Original Group Information' must exist as a child underneath |
FF01 |
One of:
|
TxInf |
TIPS supports only one transaction per message. If more than one Transaction Information block is included, message will be rejected. |
FF01 |
Only one instance of PmtRtr.TxInf is permitted |
TxInf+RtrId |
Technical Duplicate Check (same DbtrAgt and TxId) |
AM05 |
Duplicate Transaction |
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. Both response and system event quote the Return Code.
Field |
Validation Details |
Return Code |
System Event Description |
All Fields |
Checks if the message is valid against the TIPS pacs.004 xsd |
FF01 |
An error starting with the prefixed text 'XSD Schema Validation failure -' followed by an error message from schema validation failure. Example: XSD Schema Validation failure - cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:iso:std:iso:20022:tech:xsd:pacs.004.001.09":CreDtTm}'. One of '{"urn:iso:std:iso:20022:tech:xsd:pacs.004.001.09":MsgId}' is expected. |
GrpHdr+NbOfTxs |
TIPS supports only one transaction per message. If this field is not 1, the message will be rejected. |
FF01 |
xNumber of transactions in group header and underlying transactions do not match |
GrpHdr+TtlRtrdIntrBkSttlmAmt |
Must be equal to the value of the underlying transactions |
FF01 |
Interbank Returned Settlement Amount between Group Header and transaction do not match |
OrgnlGrpInf |
'Original Group Information' must exist as a child underneath |
FF01 |
One of:
|
TxInf+OrgnlGrpInf |
'Original Group Information' must exist as a child underneath |
FF01 |
One of:
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. |
FF01 |
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 an ERROR level InboundMessageFailed system event to inform the Client will be raised.
Field |
Validation Details |
Return Code |
System Event Description |
All Fields |
Checked to make sure the message is valid against the TIPS pacs.002 xsd |
Not Applicable |
An error message from schema validation failure. Example: XSD Schema Validation failure - cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:iso:std:iso:20022:tech:xsd:pacs.002.001.10":CreDtTm}'. One of '{"urn:iso:std:iso:20022:tech:xsd:pacs.002.001.10":MsgId}' is expected. |
OrgnlGrpInfAndSts+GrpSts |
|
Not Applicable |
One of:
|
OrgnlGrpInfAndSts+GrpSts |
If |
Not Applicable |
Status reason Information can only be populated if GrpSts is Rejected |
OrgnlGrpInfAndSts+GrpSts |
If |
Not Applicable |
Original Group Information and Status reason Information must be populated if GrpSts is Rejected |
TxInfAndSts+TxSts |
If |
Not Applicable |
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. Both response and system event quote the Return Code.
Field |
Validation Details |
Return Code |
System Event Description |
All Fields |
Checks if the message is valid against the TIPS pacs.002 xsd |
FF01 |
An error starting with the prefixed text 'XSD Schema Validation failure -' followed by an error message from schema validation failure. Example: XSD Schema Validation failure - cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:iso:std:iso:20022:tech:xsd:pacs.002.001.10":LclInstrm}'. One of '{"urn:iso:std:iso:20022:tech:xsd:pacs.002.001.10":SvcLvl}' is expected. |
OrgnlGrpInfAndSts+GrpSts |
|
FF01 |
One of:
|
OrgnlGrpInfAndSts+GrpSts |
If |
FF01 |
Status reason Information can only be populated if GrpSts is Rejected |
OrgnlGrpInfAndSts+GrpSts |
If |
FF01 |
Original Group Information and Status reason Information must be populated if GrpSts is Rejected |
TxInfAndSts+TxSts |
If |
FF01 |
Transaction Information and Status reason Information must be populated if TxSts is Rejected |
Inbound pacs.028
The following validations are performed on an Inbound pacs.028 from the Scheme. Failures will result in an ERROR level InboundMessageFailed system event to inform the Client.
Field |
Validation Details |
Return Code |
System Event Description |
All Fields |
Checked to make sure the message is valid against the TIPS pacs.028 xsd |
Not Applicable |
An error message from schema validation failure. Example: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:iso:std:iso:20022:tech:xsd:pacs.028.001.03":CreDtTm}'. One of '{"urn:iso:std:iso:20022:tech:xsd:pacs.028.001.03":MsgId}' is expected. |
OrgnlGrpInf+OrgnlMsgNmId |
Field must contain either |
Not Applicable |
Not able to handle received payment status request for orgnlMsgNmId |
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. Both response and system event quote the Return Code.
Field |
Validation Details |
Return Code |
System Event Description |
All Fields |
Checked to make sure the message is valid against the TIPS pacs.028 xsd |
FF01 |
An error starting with the prefixed text 'XSD Schema Validation failure -' followed by an error message from schema validation failure. Example: XSD Schema Validation failure - cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:iso:std:iso:20022:tech:xsd:pacs.002.001.10":LclInstrm}'. One of '{"urn:iso:std:iso:20022:tech:xsd:pacs.002.001.10":SvcLvl}' is expected. |
TxInf+AccptncDtTm |
MUST be populated |
FF01 |
FIToFIPmtStsReq.TxInf.AccptncDtTm is mandatory on a payment status request |
Postal Address Structural Validations
| Address Line Populated | Town Name Populated | Country Populated | Any Other Address Fields Populated | Classification |
|---|---|---|---|---|
No |
Yes |
Yes |
– |
Structured |
Yes |
No |
Yes |
No |
Unstructured |
Yes |
No |
No |
No |
Unstructured |
Yes |
Yes |
Yes |
– |
Hybrid |
If configured, transactions that cannot be classified as one of the above address types will result in a validation failure