---
id: "ch_esr"
kind: "datatype"
status: "draft"
is_pii: false
categories: ["finances"]
country: ["CH"]
langs: ["de", "fr", "it"]
quality: 100
url: "http://registry.apicrafter.io/datatype/ch_esr"
---

# Swiss payment slip reference number (ESR, QR reference) (`ch_esr`)

> **Draft.** Draft records have not been reviewed yet and may be incomplete or wrong; do not treat them as authoritative for legal or compliance decisions.

Reference number of Swiss inpayment slips (ESR/ISR, Einzahlungsschein mit Referenznummer), also used as the QR reference of QR-bills. It has 27 digits, the last being a recursive modulo 10 check digit, and is printed as two digits followed by five groups of five. Leading zeros can be omitted.

- Personal data (PII): no
- Categories: Finances and banking (finances)
- Countries: Switzerland (CH)
- Languages: German (de), French (fr), Italian (it)
- Classification: identifier

## Detection

Regular expression (Python `re`):

```
^(?:\d{2}(?: \d{5}){5}|\d{27})$
```

## Examples

- `306356360403828294825668780` — Synthetic number with a valid check digit
- `664319904784271582486799994` — Synthetic number with a valid check digit
- `30 63563 60403 82829 48256 68780` — The first example in its printed form
- `3063563604038282948256687807` (invalid example) — One character too many

## Mappings

- stdnum: `ch.esr`

## Supported by tools

- `dataprep`
- `pythonstdnum`

## Translations

- de: Einzahlungsschein mit Referenznummer (ESR)
- fr: Bulletin de versement avec numéro de référence (BVR)

## Sources

- doc: <https://www.paymentstandards.ch/dam/downloads/ig-qr-bill-en.pdf>
- other: <https://arthurdejong.org/python-stdnum/doc/2.2/stdnum.ch.esr.html>
- other: <https://docs.dataprep.ai/user_guide/clean/clean_ch_esr.html>

## Quality

Score 100/100.

JSON: <http://registry.apicrafter.io/api/v1/datatypes/ch_esr.json> · Edit: <https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/CH/finances/ch_esr.yaml>
