pain.001 Validator

Swiss CH.03 Profile Validation Explained

The Swiss Payment Standards CH.03 profile defines mandatory rules on top of pain.001.001.09. Learn what CH.03 validates, what it restricts, and why your file may fail it.

What the CH.03 profile is

The Swiss Payment Standards CH.03 profile is defined by SIX Group, the Swiss financial market infrastructure operator. It specifies how ISO 20022 pain.001.001.09 must be used for Swiss domestic and cross-border payments processed by Swiss banks.

CH.03 is published as a separate XSD schema file: pain.001.001.09.ch.03.xsd. This schema restricts and extends the base pain.001.001.09.xsd. Your file must validate against the CH.03 XSD specifically — not just the base ISO XSD.

Correct namespace declaration for CH.03 files

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09
                              pain.001.001.09.xsd">

The CH.03 overlay does not change the XML namespace. Files use the standard pain.001.001.09 namespace. The CH.03 schema adds constraints on top of it.

CH.03 vs base pain.001.001.09

CH.03 restricts the base standard in several important ways:

Key differences between base ISO and CH.03

BASE pain.001.001.09          CH.03 restriction
─────────────────────────────────────────────────────────
EqvtAmt: optional              EqvtAmt: FORBIDDEN
ChrgBr: optional               ChrgBr: MANDATORY (usually SLEV)
CdtrAgt BIC: optional          CdtrAgt BIC: MANDATORY for non-CH IBANs
Nm max length: 140 chars       Nm: must be SWIFT Basic Latin chars
Ccy: any ISO 4217              Ccy: CHF and EUR primary (others restricted)
Purp: optional                 Purp: recommended, used for routing

Key CH.03-specific validation rules

EqvtAmt is the most common source of CH.03 rejection. This element allows specifying an amount in a different currency than the instructed amount. CH.03 forbids it entirely. Files generated by generic ISO 20022 libraries sometimes include EqvtAmt by default.

ChrgBr (Charge Bearer) must be present and set to SLEV (Service Level). This instructs the bank to apply the charges defined by the service level agreement. Missing or incorrect ChrgBr causes immediate rejection.

For payments to non-Swiss IBANs, the creditor agent BIC is mandatory. For Swiss IBANs (starting with CH or LI), the BIC can be derived from the IBAN by the bank, but it is best practice to always include it.

The CH.03 XSD overlay

CH.03 is defined as an XSD restriction of the base pain.001.001.09 schema. This means it redefines certain elements to be more restrictive: optional elements become prohibited or mandatory, string lengths are constrained, and enumeration values are narrowed.

Standard XSD validators will validate against the schema you provide. To validate a file against CH.03 specifically, you must use the CH.03 XSD file — not the base ISO XSD. Many developers unknowingly validate against the base schema and miss CH.03 violations.

The two XSD files — use the right one

Base ISO validation:
  pain.001.001.09.xsd
  → Catches XSD structural errors only

CH.03 validation:
  pain.001.001.09.ch.03.xsd  (from SIX Group)
  → Catches CH.03 restriction violations
  → Includes base XSD validation implicitly

UBS validation:
  pain.001.001.09.ch.03.ubs.xsd  (from UBS)
  → Catches UBS-specific restrictions
  → Includes CH.03 and base validation implicitly

Validate your file against CH.03

Select the Generic ISO 20022 profile to validate against the base schema, or select UBS Switzerland to validate against the full CH.03 + UBS overlay stack. The compatibility matrix shows which profiles your file passes or fails simultaneously.

Swiss CH.03 Profile Validation Explained — Ifriqa