Documentation for a newer release is available. View Latest

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 tips.processing-entity.pacs008-duplicate-message-check-period

AM05

Duplicate Transaction

CdtTrfTxInf+AccptncDtTm

If receive timeout is enabled tips.receive.timeout.enabled, checks that the payment was processed within the timeout configured tips.receive.timeout.duration

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:

  • OrganisationIdentification is present but no subfields (AnyBIC, LEI, Other) are populated in CdtTrfTxInf.UltmtDbtr.Id.OrgId

  • Only one occurrence of Other is allowed in CdtTrfTxInf.UltmtDbtr.Id.OrgId

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:

  • OrganisationIdentification is present but no subfields (AnyBIC, LEI, Other) are populated in CdtTrfTxInf.Dbtr.Id.OrgId

  • Only one occurrence of Other is allowed in CdtTrfTxInf.Dbtr.Id.OrgId

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 tips.rule.allowed-bics.cdtragt

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:

  • OrganisationIdentification is present but no subfields (AnyBIC, LEI, Other) are populated in CdtTrfTxInf.UltmtDbtr.Id.OrgId

  • Only one occurrence of Other is allowed in CdtTrfTxInf.UltmtDbtr.Id.OrgId

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:

  • OrganisationIdentification is present but no subfields (AnyBIC, LEI, Other) are populated in CdtTrfTxInf.Dbtr.Id.OrgId

  • Only one occurrence of Other is allowed in CdtTrfTxInf.Dbtr.Id.OrgId

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 tips.rule.amount-limit-enabled, amount should be less than the amount configured by property tips.rule.amount-limit-eur

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 tips.rule.allowed-bics.dbtragt

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 PmtRtr or TxInf, but not both or the message will be rejected.

FF01

One of:

  • Either PmtRtr.GrpHdr.OrgnlGrpInf or PmtRtr.TxInf.OrgnlGrpInf must be populated

  • Both PmtRtr.GrpHdr.OrgnlGrpInf and PmtRtr.TxInf.OrgnlGrpInf cannot be populated.OrgnlGrpInf must be populated

TxInf+OrgnlGrpInf

'Original Group Information' must exist as a child underneath PmtRtr or TxInf, but not both or the message will be rejected.

FF01

One of:

  • Either PmtRtr.GrpHdr.OrgnlGrpInf or PmtRtr.TxInf.OrgnlGrpInf must be populated

  • Both PmtRtr.GrpHdr.OrgnlGrpInf and PmtRtr.TxInf.OrgnlGrpInf cannot be populated.OrgnlGrpInf must 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

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 PmtRtr or TxInf, but not both or the message will be rejected.

FF01

One of:

  • Either PmtRtr.GrpHdr.OrgnlGrpInf or PmtRtr.TxInf.OrgnlGrpInf must be populated

  • Both PmtRtr.GrpHdr.OrgnlGrpInf and PmtRtr.TxInf.OrgnlGrpInf cannot be populated.OrgnlGrpInf must be populated

TxInf+OrgnlGrpInf

'Original Group Information' must exist as a child underneath PmtRtr or TxInf, but not both or the message will be rejected.

FF01

One of:

  • Either PmtRtr.GrpHdr.OrgnlGrpInf or PmtRtr.TxInf.OrgnlGrpInf must be populated

  • Both PmtRtr.GrpHdr.OrgnlGrpInf and PmtRtr.TxInf.OrgnlGrpInf cannot be populated.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.

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

GrpSts must exist as a child underneath OrgnlGrpInfAndSts or alternatively TxSts must exist as a child underneath TxInfAndSts, but both should not be present

Not Applicable

One of:

  • Either FIToFIPmtStsRpt.OrgnlGrpInfAndSts.GrpSts or FIToFIPmtStsRpt.TxInfAndSts.TxSts must be populated

  • Both FIToFIPmtStsRpt.OrgnlGrpInfAndSts.GrpSts and FIToFIPmtStsRpt.TxInfAndSts.TxSts cannot be populated

OrgnlGrpInfAndSts+GrpSts

If GrpSts = ACCP then OrgnlGrpInfAndSts.StsRsnInf should NOT be populated

Not Applicable

Status reason Information can only be populated if GrpSts is Rejected

OrgnlGrpInfAndSts+GrpSts

If GrpSts = RJCT then OrgnlGrpInfAndSts.StsRsnInf should be populated

Not Applicable

Original Group Information and Status reason Information must be populated if GrpSts is Rejected

TxInfAndSts+TxSts

If TxSts = RJCT then TxInfAndSts.StsRsnInf should be populated

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

GrpSts must exist as a child underneath OrgnlGrpInfAndSts or alternatively TxSts must exist as a child underneath TxInfAndSts, but both should not be present

FF01

One of:

  • Either FIToFIPmtStsRpt.OrgnlGrpInfAndSts.GrpSts or FIToFIPmtStsRpt.TxInfAndSts.TxSts must be populated

  • Both FIToFIPmtStsRpt.OrgnlGrpInfAndSts.GrpSts and FIToFIPmtStsRpt.TxInfAndSts.TxSts cannot be populated

OrgnlGrpInfAndSts+GrpSts

If GrpSts = ACCP then OrgnlGrpInfAndSts.StsRsnInf should NOT be populated

FF01

Status reason Information can only be populated if GrpSts is Rejected

OrgnlGrpInfAndSts+GrpSts

If GrpSts = RJCT then OrgnlGrpInfAndSts.StsRsnInf should be populated

FF01

Original Group Information and Status reason Information must be populated if GrpSts is Rejected

TxInfAndSts+TxSts

If TxSts = RJCT then TxInfAndSts.StsRsnInf should be populated

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 pacs.008 or camt.056

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