Documentation for a newer release is available. View Latest
Esta página no está disponible actualmente en Español. Si lo necesita, póngase en contacto con el servicio de asistencia de Icon (correo electrónico)

SIC Validations

This page details the validations BEFORE the 2025 rulebook changes, implemented to comply with the SIC IP Rulebook 2025 Updates. These updates are scheduled to go live on the weekend of November 22nd, 2025. (For validations after to that please refer to SIC Validations - Rulebook 2025)

The purpose of this page is to summarise the additional usage validations performed by the SIC 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.

Outbound (to scheme) messages have more validations performed than the Inbound (from scheme). 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 (this flag does not affect XSD Validation, which will always be performed)
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 InboundMessageFailed system event to inform the Client.

Field Validation Details Return Code

All Fields

Checks if the message is valid against the SIC pacs.008 xsd

FF01

CdtTrfTxInf+AccptncDtTm

The provided value must be earlier than the current time plus the sic5.receive.timeout config value (in milliseconds)

AB05

CdtTrfTxInf+CdtrAcct++Id+++IBAN

Mandatory field, should be provided

FF01

CdtTrfTxInf+IntrBkSttlmAmt++Value

Value is not greater than the amount specified in the config value sic5.rule.creditor-rules.amount

AM02

CdtTrfTxInf+InstdAgt++FinInstnId+++ClrSysMmbId++++MmbId

Value matches an entry in the config list sic5.rule.creditor-rules.mmb-ids

RC01

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf

If Strd is populated, then CdtrRefInf must be populated

MS03

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp

If CdtrRefInf is populated, then Tp must be populated

MS03

The following validations are conditional on whether the IBAN contained in the pacs.008 is a QR IBAN or a Non-QR IBAN.

QR IBAN Remittance Information Validation

Field Validation Details Return Code

CdtTrfTxInf+RmtInf++Ustrd

Must be null

MS03

CdtTrfTxInf+RmtInf++Strd

Strd must be present (not empty and only one entry)

MS03

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Cd

Must be null

MS03

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Prtry

Must be QRR

MS03

Non-QR IBAN Remittance Information Validation

Field Validation Details Return Code

CdtTrfTxInf+RmtInf++Ustrd

Either Strd or Ustrd can be provided (not both). If Strd is not provided then Ustrd must be provided.

MS03

CdtTrfTxInf+RmtInf++Strd

Either Strd or Ustrd can be provided (not both). If Strd is provided there must only be one entry. If Ustrd is not provided, then Strd must be provided.

MS03

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Cd

Must be SCOR

MS03

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Prtry

Must be null

MS03

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 SIC pacs.008 xsd

System event is raised with detail of the offending field in the description

CdtTrfTxInf+CdtrAcct++Id+++IBAN

Mandatory field, should be provided

System event is raised with description: Mandatory field: FIToFICstmrCdtTrf.CdtTrfTxInf[0].CdtrAcct.Id.IBAN is empty

CdtTrfTxInf+IntrBkSttlmAmt++Value

Value is not greater than the amount specified in the config value sic5.rule.debtor-rules.amount

System event is raised with description: Amount exceeds scheme limit

CdtTrfTxInf+InstdAgt++FinInstnId+++ClrSysMmbId++++MmbId

Value matches an entry in the config list sic5.rule.debtor-rules.mmb-ids

System event is raised with description: MmbId value not allowed

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf

If CdtTrfTxInf+RmtInf++Strd is populated, then CdtrRefInf must be populated

System event is raised with description: Creditor Reference Information mandatory if Structured Remittance used

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf+++++Tp

If CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf is populated, then Tp must be populated

System event is raised with description: Type is mandatory if Creditor Reference Information used

CdtTrfTxInf+RmtInf++Strd+++RfrdDocInf

If CdtTrfTxInf+RmtInf++Strd has been provided, this field must be null

System event is raised with description: Only Creditor Reference Information allowed in Structured Remittance Information

CdtTrfTxInf+RmtInf++Strd+++RfrdDocAmt

If CdtTrfTxInf+RmtInf++Strd has been provided, this field must be null

System event is raised with description: Only Creditor Reference Information allowed in Structured Remittance Information

CdtTrfTxInf+RmtInf++Strd+++Invcr

If CdtTrfTxInf+RmtInf++Strd has been provided, this field must be null

System event is raised with description: Only Creditor Reference Information allowed in Structured Remittance Information

CdtTrfTxInf+RmtInf++Strd+++Invce

If CdtTrfTxInf+RmtInf++Strd has been provided, this field must be null

System event is raised with description: Only Creditor Reference Information allowed in Structured Remittance Information

CdtTrfTxInf+RmtInf++Strd+++TaxRmt

If CdtTrfTxInf+RmtInf++Strd has been provided, this field must be null

System event is raised with description: Only Creditor Reference Information allowed in Structured Remittance Information

The following validations are conditional on whether the IBAN contained in the pacs.008 is a QR IBAN or a Non-QR IBAN.

QR IBAN Remittance Information Validation

Field Validation Details Result of Failure

CdtTrfTxInf+RmtInf++Ustrd

Must be null

If both Strd and Ustrd is provided then System event is raised with the following description: Structured and Unstructured Remittance Information not allowed

All other scenarios where this validation rule fails will have the following description: No valid Creditor Structured Remittance Type

CdtTrfTxInf+RmtInf++Strd

Strd must be present (not empty and only one entry)

If both Strd and Ustrd is provided then System event is raised with the following description: Structured and Unstructured Remittance Information not allowed

All other scenarios where this validation rule fails will have the following description: No valid Creditor Structured Remittance Type

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Ref

  • Must not be null

  • Length of the value should be 27

  • Should be a positive number

  • Complies to the following regular expression ^[0-9]+$

  • Passes check digit validation

System event is raised with description: Invalid Creditor Reference Swiss QR-Bill

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Cd

Must be null

System event is raised with description: Only QRR(proprietary) allowed in Creditor Reference Information Type

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Prtry

Must be QRR

System event is raised with description: Only QRR(proprietary) allowed in Creditor Reference Information Type

Non-QR IBAN Remittance Information Validation

Field Validation Details Result of Failure

CdtTrfTxInf+RmtInf++Ustrd

Either Strd or Ustrd can be provided (not both). If Strd is not provided then Ustrd must be provided.

If both Strd and Ustrd is provided then System event is raised with the following description: Structured and Unstructured Remittance Information not allowed

All other scenarios where this validation rule fails will have the following description: No valid Creditor Structured Remittance Type

CdtTrfTxInf+RmtInf++Strd

Either Strd or Ustrd can be provided (not both). If Strd is provided there must only be one entry. If Ustrd is not provided, then Strd must be provided.

If both Strd and Ustrd is provided then System event is raised with the following description: Structured and Unstructured Remittance Information not allowed

All other scenarios where this validation rule fails will have the following description: No valid Creditor Structured Remittance Type

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Ref

  • Must not be null

  • Length of the value should be between 2 and 25

  • Prefix of RF

  • If the value of CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++Issr = ISO then the following also applies:

    • The value must also match the following regular expression: ^RF\\d{2}[A-Za-z0-9]{0,21}$

    • Passes check digit validation

If Issr = ISO a system event is raied with description: Invalid SCOR

Otherwise, a system event is raied with description: Invalid Creditor Reference Global QR-Bill

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Cd

Must be SCOR

If validation rule fails and Prtry is not QRR a system event is raised with description: Creditor QR-IBAN not allowed for ISO Reference

Otherwise if rule fails event is raised with description: No valid Creditor QR-IBAN Swiss QR-Bill

CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Prtry

Must be null

If validation rule fails and Prtry is not QRR a system event is raised with description: Creditor QR-IBAN not allowed for ISO Reference

Otherwise if rule fails event is raised with description: No valid Creditor QR-IBAN Swiss QR-Bill