Swiss QR-bill
El Swiss QR-bill reemplazó los recibos de pago suizos naranja y rojo en julio de 2020. Es un payload de ISO 20022 Customer Credit Transfer Initiation (pain.001) renderizado como un QR con una superposición obligatoria de cruz suiza en el centro. Todo banco suizo lo acepta; ningún banco suizo acepta ninguna otra cosa.
Base ISO: ISO 20022
pain.001 Customer Credit Transfer Initiation. Obligatorio desde: 1 de julio de 2020. Los recibos de pago naranja/rojo heredados fueron eliminados el 30 de septiembre de 2022.
Qué es
El payload es una lista de 32 campos separados por saltos de línea (CRLF) organizados en siete bloques:
QRType → Siempre "SPC" Version → 0200 (v2.3) Coding → 1 (Latin-1) [Información del acreedor] ← 7 campos (IBAN + dirección) [Acreedor final] ← 7 campos (opcional, generalmente vacío) [Información del importe de pago] ← 3 campos (importe, divisa, fecha de vencimiento) [Deudor final] ← 7 campos (opcional) [Referencia de pago] ← 2 campos (tipo de referencia + referencia) [Información adicional] ← 2 campos (mensaje no estructurado + bill info) [Procedimientos alternativos] ← 2 campos (opcional, raramente usado)
El QR resultante se ubica dentro de un bloque de "Payment part" en el tercio inferior de la factura. Todas las apps bancarias suizas (UBS, ZKB, PostFinance, Raiffeisen, Neon, Yuh, Revolut CH) lo leen de forma nativa.
QR-IBAN vs IBAN regular
Un "QR-IBAN" es un IBAN suizo especial donde el rango del código bancario de 5 dígitos es 30000–31999. Los QR-IBANs requieren una referencia QR estructurada (QRR, 27 dígitos, mod-10 check). Los IBANs suizos regulares aceptan referencia de acreedor (SCOR, RFC 8905) o sin referencia.
| Tipo de IBAN del acreedor | Tipos de referencia válidos | Notas |
|---|---|---|
| QR-IBAN (código bancario 30000–31999) | QRR (27 dígitos, mod-10) | Obligatorio. SCOR y NON no son válidos. |
| IBAN regular (CH o LI) | SCOR o NON | QRR no es válido, solo para QR-IBAN. |
Vectores de prueba canónicos
| Caso | Entradas | Tipo de referencia |
|---|---|---|
| Mínimo (IBAN regular, sin importe, sin referencia) | iban=CH9300762011623852957 | NON |
| IBAN regular con importe + mensaje no estructurado | (igual que arriba)amount=100.00 | NON |
| QR-IBAN con referencia QRR | iban=CH4431999123000889012 | QRR |
| IBAN de Liechtenstein | iban=LI0508800000021904015 | NON |
Validador de IBAN suizo en vivo
El validador a continuación comprueba las tres reglas específicas de Suiza: (1) el código de país es CH o LI, (2) la longitud es exactamente 21, (3) el checksum ISO 7064 mod-97 es correcto. La entrada pegada se normaliza (mayúsculas, espacios eliminados).
Errores comunes
- Tipo de referencia incorrecto para el tipo de IBAN. Un QR-IBAN con una referencia NON o SCOR es rechazado por el banco. Un IBAN regular con una referencia QRR también es rechazado. Abundera selecciona automáticamente el tipo correcto; los codificadores manuales a menudo se equivocan.
- Falta la superposición de la cruz suiza. La especificación del QR-bill requiere una bandera suiza de 7 mm × 7 mm (cruz blanca sobre fondo rojo, con un borde blanco de 1 mm) centrada en el QR. Esto no es opcional, los pipelines de OCR bancarios lo usan como firma del QR-bill. Abundera lo superpone automáticamente.
- Nivel de corrección de errores del módulo QR. La especificación requiere nivel ECC M. Los niveles ECC más altos o más bajos producen un QR que parece correcto pero que el banco rechaza.
- Longitud de los campos de dirección. Nombre del acreedor, calle, código postal, ciudad, cada uno limitado a 70 caracteres Latin-1. Las cadenas demasiado largas son truncadas silenciosamente por algunos codificadores, lo que rompe la conciliación.
- Solo divisa CHF o EUR. El QR-bill solo admite dos divisas. Cualquier otra divisa es rechazada.
- Referencia mod-10 vs mod-97. Las referencias QRR usan un checksum recursivo mod-10 (variante Luhn). No confundir con el checksum mod-97 del IBAN. Los generadores de referencias caseros a menudo aplican el algoritmo Luhn de forma incorrecta.
- Latin-1, no UTF-8. El campo
Codinges "1" = Latin-1. Los caracteres no Latin-1 (ä/ö/ü sobreviven; cirílico/chino no) rompen algunas apps bancarias más antiguas.
Compatibilidad de escáneres
| Lector | Soporte | Notas |
|---|---|---|
| UBS Mobile / PostFinance / ZKB app | Nativo | Todas las apps bancarias suizas leen QR-bills de forma nativa. |
| Neon / Yuh / Revolut CH | Nativo | Los neobancos manejan el payload completo pain.001. |
| Cámara iOS | No | iOS trata un QR-bill como una cadena en bruto, sin análisis. El usuario debe abrir una app bancaria. |
| Cámara Android / Google Lens | No | Igual, sin análisis nativo. |
| OCR comercial (ej. servicios de pago de facturas) | Sí | Las herramientas de OCR de grado bancario leen QR-bills en los pipelines de AP/AR. |
Ver también
- /swiss-qr-bill-generator/, el generador con validación de IBAN incorporada.
- /standards/, volver al índice de estándares.
- SIX Implementation Guidelines, la especificación de referencia.