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 routingKey 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 implicitlyValidate 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.