El fichero pain.008 por dentro: cómo es el XML de una remesa SEPA
El fichero que subes al banco para cobrar una remesa es un XML con el formato pain.008. Tiene tres niveles: una cabecera, uno o varios lotes de cobro y, dentro de cada lote, un bloque por recibo.
No necesitas escribirlo a mano, pero entender su estructura ayuda mucho cuando el banco lo rechaza y el mensaje de error solo cita el nombre de una etiqueta.
Qué significa el nombre
pain viene de payments initiation (inicio de pagos), y es la familia de mensajes del estándar ISO 20022 que un cliente envía a su banco. El 008 es el mensaje concreto de adeudos directos. La versión más extendida en España es pain.008.001.02, que corresponde a lo que los bancos llaman Cuaderno 19.14 (adeudos CORE) y 19.44 (adeudos B2B).
Es el sustituto del antiguo fichero de texto de la Norma 19, que dejó de admitirse con la llegada de SEPA.
Los tres niveles
1. Cabecera del mensaje (GrpHdr). Una sola por fichero. Identifica el envío.
2. Información del pago (PmtInf). Un lote de recibos que comparten fecha de cargo, cuenta de abono y tipo de secuencia. Puede haber varios en un fichero.
3. Operación de adeudo (DrctDbtTxInf). Un bloque por cada recibo, con el importe y los datos del socio.
La cabecera
| Etiqueta | Contenido |
|---|---|
MsgId | Identificador único del fichero, hasta 35 caracteres. No debe repetirse entre envíos |
CreDtTm | Fecha y hora de creación |
NbOfTxs | Número total de recibos del fichero |
CtrlSum | Suma de todos los importes |
InitgPty | Quién presenta el fichero: tu nombre y tu identificador |
NbOfTxs y CtrlSum son los totales de control. Si no coinciden con lo que hay dentro, el banco rechaza el fichero completo.
El lote de cobro
| Etiqueta | Contenido |
|---|---|
PmtInfId | Identificador del lote |
PmtMtd | Siempre DD (adeudo directo) |
NbOfTxs y CtrlSum | Totales de este lote |
SvcLvl | Siempre SEPA |
LclInstrm | CORE o B2B |
SeqTp | Tipo de secuencia (ver más abajo) |
ReqdColltnDt | Fecha de cargo, en formato AAAA-MM-DD |
Cdtr | Tu nombre como acreedor |
CdtrAcct | El IBAN de la cuenta donde se abona la remesa |
CdtrAgt | El BIC de tu banco |
ChrgBr | Siempre SLEV (gastos compartidos según el esquema) |
CdtrSchmeId | Tu identificador de acreedor |
Cada recibo
| Etiqueta | Contenido |
|---|---|
EndToEndId | Referencia del recibo, hasta 35 caracteres. Vuelve intacta si el recibo se devuelve |
InstdAmt | Importe, con el atributo Ccy="EUR", punto decimal y dos decimales como máximo |
MndtId | Referencia del mandato |
DtOfSgntr | Fecha en que se firmó el mandato |
AmdmntInd | Indica si el mandato ha cambiado desde el último cobro |
DbtrAgt | El banco del socio (el BIC ya no es obligatorio) |
Dbtr | Nombre del titular de la cuenta, hasta 70 caracteres |
DbtrAcct | IBAN del titular |
Ustrd | Concepto que verá el socio en su extracto, hasta 140 caracteres |
Aprovecha EndToEndId: si pones ahí algo que identifique el recibo en tu gestión (socio y mes, por ejemplo), cuando llegue una devolución sabrás al instante a qué corresponde.
El tipo de secuencia
Indica en qué momento de la vida del mandato está cada cobro:
| Código | Significado |
|---|---|
FRST | Primer recibo de una serie |
RCUR | Recibos siguientes de la serie |
FNAL | Último recibo de la serie |
OOFF | Cobro único, con un mandato que no se volverá a usar |
En su origen era obligatorio marcar el primer cobro como FRST. Desde 2016, las reglas del esquema permiten enviar el primero también como RCUR, aunque muchos programas y bancos siguen distinguiéndolos. Lo que no se puede hacer es mezclar secuencias en un mismo lote: los FRST van en un PmtInf y los RCUR en otro.
Para las cuotas de un gimnasio o un club, usarás FRST y RCUR. No uses OOFF para una cuota mensual: ese mandato queda agotado tras el cobro.
Los caracteres permitidos
El estándar solo garantiza un juego reducido: letras sin acento, cifras, espacio y estos signos: / - ? : ( ) . , ' +
Las eñes, los acentos y la ce cedilla son la causa clásica de rechazo. Hay bancos que los aceptan y otros que no, así que lo seguro es convertirlos antes de generar el fichero: Muñoz pasa a Munoz y Núria a Nuria. Además, los caracteres &, < y > tienen significado propio en XML y deben ir escapados o eliminarse.
Comprueba antes de enviar
Antes de subir el fichero conviene verificar, como mínimo:
- Que el XML está bien formado y cumple el esquema
pain.008.001.02. - Que el número de recibos y la suma coinciden con los totales declarados.
- Que todos los IBAN pasan el control mod 97.
- Que cada recibo lleva referencia y fecha de firma del mandato.
- Que la fecha de cargo es un día hábil futuro.
Lo que suele fallar en cada punto está en errores frecuentes en una remesa SEPA.
Más guías
- Cómo se valida un IBAN: el cálculo paso a paso, con un ejemplo
- Cómo estructurar las cuotas y los descuentos de un gimnasio o club
- Del Excel a un programa de gestión: cuándo dar el paso y cómo migrar los socios
- Devoluciones de recibos SEPA: plazos, códigos de motivo y qué hacer con cada uno
- Errores frecuentes en una remesa SEPA y cómo evitarlos
- El identificador de acreedor SEPA: qué es, cómo se forma y dónde se usa
- El mandato SEPA: qué es, qué debe llevar y cuánto tiempo guardarlo
- Protección de datos en un gimnasio o club deportivo: lo esencial del RGPD
- Qué es una remesa SEPA y cómo se cobra una cuota por domiciliación
- Cómo reducir las bajas en un gimnasio: qué mirar y qué hacer cada semana
- SEPA CORE y B2B: en qué se diferencian y cuál te corresponde
NexoraAI es un programa de gestión para gimnasios y clubes deportivos: socios, cuotas y remesas SEPA. Ver qué incluye.