pain.001 es el mensaje ISO 20022 que una empresa envía a su banco para ordenar una o varias transferencias. Su nombre completo es Customer Credit Transfer Initiation (iniciación de transferencias del cliente): "pain" es la familia de mensajes de iniciación de pagos, .001 es el número de mensaje y el sufijo, como pain.001.001.09, es la versión. Es XML, se valida contra un esquema oficial (XSD) y sustituye a los formatos CSV propios de cada banco y al mensaje de texto SWIFT MT101.
pain.001 en un minuto#
- Quién lo envía: una empresa (el ordenante, o un agente que actúa en su nombre) lo envía a su propio banco (la entidad del ordenante).
- Qué contiene: uno o varios lotes de transferencias, cada uno con una cuenta del ordenante, una fecha de ejecución solicitada y cualquier número de pagos a beneficiarios.
- Qué se recibe de vuelta: el banco responde con pain.002, el informe de estado de pagos del cliente, que acepta o rechaza el fichero o transacciones concretas con códigos de motivo ISO.
- Qué ocurre después: una vez aceptado, el banco convierte cada instrucción en mensajes interbancarios como pacs.008, que la empresa nunca ve.
- Dónde se usa: transferencias SEPA según los reglamentos del EPC, pagos transfronterizos en Swift bajo CBPR+ (
pain.001.001.09) y muchos esquemas nacionales. El corpus de ejemplos de Pain001 cubre 42 escenarios en 17 mercados.
Cómo se estructura un mensaje pain.001#
Todas las versiones comparten el mismo esqueleto de tres niveles dentro de un elemento <CstmrCdtTrfInitn>.
| Nivel | Elemento | Qué contiene |
|---|---|---|
| 1 | <GrpHdr> Cabecera de grupo | ID del mensaje, fecha y hora de creación, número de transacciones (NbOfTxs), suma de control (CtrlSum), parte iniciadora |
| 2 | <PmtInf> Información del pago | Un lote: método de pago, fecha de ejecución solicitada, ordenante, cuenta y entidad del ordenante, responsable de los gastos |
| 3 | <CdtTrfTxInf> Transacción de transferencia | Un pago: referencia de extremo a extremo, importe y divisa, beneficiario, cuenta y entidad del beneficiario, información de remesa |
Un fichero puede contener varios lotes <PmtInf>, y cada lote muchos pagos <CdtTrfTxInf>. NbOfTxs y CtrlSum aparecen tanto a nivel de fichero como de lote y deben coincidir con los pagos que cuentan; es uno de los motivos más habituales por los que un banco rechaza un fichero.
Un ejemplo completo de pain.001#
Se trata de una única transferencia SEPA en pain.001.001.09, tomada sin cambios del corpus de ejemplos de Pain001. Valida contra el XSD oficial de ISO 20022. Las partes, los IBAN y los BIC son ficticios.
OML-SCT-20260921
2026-09-21T12:00:00
1
2200.00
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
SCT-20260921-IT-01
TRF
false
1
2200.00
SEPA
2026-09-22
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
IT48T78971134594OGDKY5VXE41
TLAOIT60
SLEV
OML-2026-0921-01
2200.00
MHXHITI0
Fonderia Bresciana Srl
25121
Brescia
IT
IT23J14887404856NF3794IGWXN
Fattura 117/2026
Pruebe con sus propios datos en la demo en el navegador: genera un fichero pain.001 a partir de un CSV y lo valida contra el esquema oficial sin que los datos salgan de su equipo.
Versiones de pain.001#
ISO publica una nueva versión cuando cambia el modelo del mensaje. Cada banco y cada esquema aceptan versiones concretas, así que la versión que envíe debe ser la que indique la documentación del canal de su banco.
| Versión | Notas |
|---|---|
| pain.001.001.03 | El caballo de batalla de SEPA y CGI desde hace años; identifica a los bancos con <BIC> |
| .04, .05, .06, .07, .08 | Versiones de mantenimiento usadas por canales concretos |
| pain.001.001.09 | La versión de 2019 que CBPR+ eligió para Swift; identifica a los bancos con <BICFI> y añade LEI y UETR |
| .10, .11, .12 | Mejoras posteriores a 2019 |
| pain.001.001.13 | Publicada por ISO el 19 de marzo de 2026; añade un identificador único de transacción opcional (UnqTxIdr) |
La matriz de compatibilidad muestra qué versiones genera, valida y migra Pain001.
pain.001 frente a los mensajes relacionados#
| Mensaje | Sentido | Finalidad |
|---|---|---|
| pain.001 | De la empresa a su banco | Ordena transferencias (envía dinero) |
| pain.002 | Del banco a la empresa | Informa del estado de un pain.001 o pain.008: aceptado, aceptado parcialmente o rechazado, con códigos de motivo |
| pain.008 | De la empresa a su banco | Ordena adeudos directos (cobra dinero en virtud de un mandato) |
| pacs.008 | De banco a banco | La transferencia interbancaria en la que se convierte una instrucción pain.001 |
| MT101 | Empresa o banco, a través de Swift | El antiguo mensaje de texto "Request for Transfer" que pain.001 sustituye. Swift aplazó en agosto de 2026 la retirada del relay interbancario MT101 (Swift); véase de MT101 a pain.001 |
El glosario define en lenguaje claro el resto del vocabulario ISO 20022.
Por qué los bancos rechazan ficheros pain.001#
Un fichero puede ser XML bien formado y aun así ser rechazado. Las comprobaciones se superponen en capas:
- Esquema: el fichero debe validar contra el XSD oficial de su versión.
- Calidad de los datos: los IBAN superan sus dígitos de control, los BIC están bien formados, las fechas e importes son válidos, y
NbOfTxsyCtrlSumcoinciden con los pagos. - Reglas del esquema: SEPA, CBPR+ y los esquemas nacionales añaden sus propias restricciones, como el juego de caracteres permitido o una dirección postal estructurada.
- Perfil y canal de su banco: cada banco publica sus propias guías de uso por encima del esquema.
Pain001 comprueba las tres primeras capas antes de que el fichero llegue al banco y deja claro que la cuarta la confirma el banco.
Cómo crear un fichero pain.001#
- Desde una hoja de cálculo: de Excel a pain.001 convierte una lista de pagos en Excel o CSV en un fichero validado.
- En el navegador: la demo genera y valida un fichero en local, sin subir nada.
- Desde código o la línea de comandos: instale la librería pain001 de código abierto y ejecute:
La referencia técnica cubre todas las opciones, y las preguntas frecuentes responden a lo que más preguntan los equipos de tesorería, operaciones e ingeniería.
Fuentes#
- Definiciones y archivo de mensajes ISO 20022: iso20022.org
- Reglamento de transferencias SEPA: European Payments Council
- CBPR+ y el relay MT101: Swift