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 |
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 |
AM02 |
CdtTrfTxInf+InstdAgt++FinInstnId+++ClrSysMmbId++++MmbId |
Value matches an entry in the config list |
RC01 |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf |
If |
MS03 |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp |
If |
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 |
MS03 |
CdtTrfTxInf+RmtInf++Strd |
|
MS03 |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Cd |
Must be |
MS03 |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Prtry |
Must be |
MS03 |
Non-QR IBAN Remittance Information Validation
| Field | Validation Details | Return Code |
|---|---|---|
CdtTrfTxInf+RmtInf++Ustrd |
Either |
MS03 |
CdtTrfTxInf+RmtInf++Strd |
Either |
MS03 |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Cd |
Must be |
MS03 |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Prtry |
Must be |
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 |
System event is raised with description: Amount exceeds scheme limit |
CdtTrfTxInf+InstdAgt++FinInstnId+++ClrSysMmbId++++MmbId |
Value matches an entry in the config list |
System event is raised with description: MmbId value not allowed |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf |
If |
System event is raised with description: Creditor Reference Information mandatory if Structured Remittance used |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf+++++Tp |
If |
System event is raised with description: Type is mandatory if Creditor Reference Information used |
CdtTrfTxInf+RmtInf++Strd+++RfrdDocInf |
If |
System event is raised with description: Only Creditor Reference Information allowed in Structured Remittance Information |
CdtTrfTxInf+RmtInf++Strd+++RfrdDocAmt |
If |
System event is raised with description: Only Creditor Reference Information allowed in Structured Remittance Information |
CdtTrfTxInf+RmtInf++Strd+++Invcr |
If |
System event is raised with description: Only Creditor Reference Information allowed in Structured Remittance Information |
CdtTrfTxInf+RmtInf++Strd+++Invce |
If |
System event is raised with description: Only Creditor Reference Information allowed in Structured Remittance Information |
CdtTrfTxInf+RmtInf++Strd+++TaxRmt |
If |
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 |
If both All other scenarios where this validation rule fails will have the following description: No valid Creditor Structured Remittance Type |
CdtTrfTxInf+RmtInf++Strd |
|
If both All other scenarios where this validation rule fails will have the following description: No valid Creditor Structured Remittance Type |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Ref |
|
System event is raised with description: Invalid Creditor Reference Swiss QR-Bill |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Cd |
Must be |
System event is raised with description: Only QRR(proprietary) allowed in Creditor Reference Information Type |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Prtry |
Must be |
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 |
If both All other scenarios where this validation rule fails will have the following description: No valid Creditor Structured Remittance Type |
CdtTrfTxInf+RmtInf++Strd |
Either |
If both All other scenarios where this validation rule fails will have the following description: No valid Creditor Structured Remittance Type |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Ref |
|
If Otherwise, a system event is raied with description: Invalid Creditor Reference Global QR-Bill |
CdtTrfTxInf+RmtInf++Strd+++CdtrRefInf++++Tp+++++CdOrPrtry++++++Cd |
Must be |
If validation rule fails and 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 |
If validation rule fails and Otherwise if rule fails event is raised with description: No valid Creditor QR-IBAN Swiss QR-Bill |