pain.001 Validator

UBS Switzerland pain.001 Common Errors

UBS applies additional validation rules on top of the Swiss CH.03 profile. These are the most common errors seen in UBS pain.001 submissions and how to fix them.

What the UBS overlay adds

The UBS pain.001 profile is built on top of the Swiss Payment Standards CH.03 profile (pain.001.001.09.ch.03.xsd). UBS adds its own restrictions and mandatory fields on top of CH.03, which itself adds restrictions on top of the base ISO 20022 pain.001.001.09.

This means a UBS submission must pass three layers of profile validation simultaneously: base ISO 20022, CH.03, and UBS-specific rules. A file that passes CH.03 may still be rejected by UBS.

UBS validation stack

ISO 20022 pain.001.001.09 (base XSD)
  └── CH.03 Swiss Payment Standards overlay
        └── UBS bank-specific overlay
              └── Your file must pass all three

Most common UBS rejection causes

These are the rejection patterns seen most frequently in UBS pain.001 submissions:

Frequent UBS-specific rejection causes

1. Wrong document type
   UBS requires pain.001.001.09 — not pain.001.001.03
   Detected via namespace: urn:iso:std:iso:20022:tech:xsd:pain.001.001.09

2. Missing or invalid BIC (BIC11 vs BIC8)
   UBS requires UBSWCHZH80A or similar full BIC11 format in some contexts
   Generic BIC8 (UBSWCHZH) may be rejected depending on transaction type

3. CtrlSum mismatch
   Same as any CH.03 submission — see CtrlSum Mismatch guide
   Float precision is the most frequent cause

4. Unsupported characters in Nm or AdrLine
   UBS enforces SWIFT Basic Latin — no umlauts, accents, or special symbols

5. Missing MndtRltdInf for direct debits (wrong instrument)
   pain.001 is for credit transfers only — direct debits use pain.008

UBS-specific field requirements

UBS requires a valid SvcLvl (Service Level) code. For Swiss domestic payments, SEPA is not valid — use CHT (Swiss Internal Transfer) or the appropriate domestic code.

The Purp (Purpose) element is strongly recommended for UBS submissions even when it is optional in the base schema. UBS uses it for payment routing and classification.

Correct SvcLvl for UBS domestic payments

<SvcLvl>
  <Cd>NURG</Cd>  <!-- Non-urgent Swiss domestic payment -->
</SvcLvl>

<!-- For urgent payments -->
<SvcLvl>
  <Cd>URGP</Cd>
</SvcLvl>

Validate against the UBS profile

The UBS profile (pain.001.001.09.ch.03.ubs) is available in the validator. Select the UBS Switzerland profile to run all three validation layers — ISO 20022 base, CH.03, and UBS overlay — against your file simultaneously.

UBS Switzerland pain.001 Common Errors — Ifriqa