← Guías

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

EtiquetaContenido
MsgIdIdentificador único del fichero, hasta 35 caracteres. No debe repetirse entre envíos
CreDtTmFecha y hora de creación
NbOfTxsNúmero total de recibos del fichero
CtrlSumSuma de todos los importes
InitgPtyQuié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

EtiquetaContenido
PmtInfIdIdentificador del lote
PmtMtdSiempre DD (adeudo directo)
NbOfTxs y CtrlSumTotales de este lote
SvcLvlSiempre SEPA
LclInstrmCORE o B2B
SeqTpTipo de secuencia (ver más abajo)
ReqdColltnDtFecha de cargo, en formato AAAA-MM-DD
CdtrTu nombre como acreedor
CdtrAcctEl IBAN de la cuenta donde se abona la remesa
CdtrAgtEl BIC de tu banco
ChrgBrSiempre SLEV (gastos compartidos según el esquema)
CdtrSchmeIdTu identificador de acreedor

Cada recibo

EtiquetaContenido
EndToEndIdReferencia del recibo, hasta 35 caracteres. Vuelve intacta si el recibo se devuelve
InstdAmtImporte, con el atributo Ccy="EUR", punto decimal y dos decimales como máximo
MndtIdReferencia del mandato
DtOfSgntrFecha en que se firmó el mandato
AmdmntIndIndica si el mandato ha cambiado desde el último cobro
DbtrAgtEl banco del socio (el BIC ya no es obligatorio)
DbtrNombre del titular de la cuenta, hasta 70 caracteres
DbtrAcctIBAN del titular
UstrdConcepto 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ódigoSignificado
FRSTPrimer recibo de una serie
RCURRecibos siguientes de la serie
FNALÚltimo recibo de la serie
OOFFCobro ú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:

  1. Que el XML está bien formado y cumple el esquema pain.008.001.02.
  2. Que el número de recibos y la suma coinciden con los totales declarados.
  3. Que todos los IBAN pasan el control mod 97.
  4. Que cada recibo lleva referencia y fecha de firma del mandato.
  5. 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

NexoraAI es un programa de gestión para gimnasios y clubes deportivos: socios, cuotas y remesas SEPA. Ver qué incluye.