Formato de archivo ACH: registros NACHA y totales de control
Guía práctica del formato ACH (NACHA) de EE. UU.: los registros de 94 caracteres, el check digit del routing number, el entry hash y los totales de control.
Valide su archivo ahora
Gratis, instantáneo y 100 % en su navegador - ningún archivo se sube nunca.
¿Qué es un archivo ACH / NACHA?
ACH (Automated Clearing House, cámara de compensación automatizada) es la red de pagos electrónicos por lotes que mueve dinero entre cuentas bancarias de Estados Unidos. Gestiona el depósito directo de nóminas, los pagos a proveedores, las devoluciones de impuestos, las primas de seguros y los débitos de consumidores como facturas de servicios o pagos de préstamos. En lugar de liquidar cada pago de forma individual, ACH los agrupa en lotes que se intercambian y liquidan en momentos determinados a través de la Reserva Federal o de un operador privado.
El archivo que transporta estos pagos sigue el formato NACHA (también llamado formato de las Nacha Operating Rules, o simplemente un 'archivo ACH'). Es un formato de texto plano y de ancho fijo: cada línea - llamada registro - tiene exactamente 94 caracteres, y los registros se agrupan en bloques de 10. Si el último bloque no está completo, se rellena con líneas de relleno de 9 hasta alcanzar un múltiplo de 10 registros.
Como el formato es de ancho fijo y autocuadrable, un solo carácter erróneo - un campo desalineado, un routing number incorrecto o un total de control que ya no coincide con los registros de detalle - puede hacer que tu banco (el ODFI) rechace el archivo completo. Validar el archivo antes de enviarlo es la forma más barata de evitar un lote devuelto y una ejecución de nómina retrasada.
Los tipos de registro dentro de un archivo ACH
Un archivo ACH se compone de seis tipos de registro, identificados por el primer carácter de cada línea de 94 caracteres. Siempre aparecen en el mismo orden anidado: un File Header, luego uno o más lotes, y después un registro File Control.
1 - File Header
Abre el archivo. Contiene los routing numbers de origen y destino inmediatos, la fecha y hora de creación del archivo y un modificador de ID de archivo. Hay exactamente un File Header por archivo.
5 - Batch Header
Abre un lote. Lleva el service class code (código de clase de servicio: créditos, débitos o mixto), el nombre y el ID de la empresa, el SEC code (PPD, CCD, WEB...), la fecha efectiva de la entrada y el routing number del banco originador.
6 - Entry Detail
Un registro por pago. Contiene el routing number y el check digit del receptor, el número de cuenta, el importe, el código de transacción (cuenta corriente/de ahorro, crédito/débito) y el nombre del receptor.
7 - Addenda
Información adicional opcional adjunta a una entrada - por ejemplo, datos de remesa (CCD/CTX) o detalles de devolución/corrección. Una entrada puede tener cero, uno o varios registros Addenda.
8 - Batch Control
Cierra un lote. Contiene el recuento de entradas/addenda, el entry hash y los importes totales de débito y crédito de ese lote - todos los cuales deben coincidir con las entradas que lo preceden.
9 - File Control
Cierra el archivo. Contiene el recuento de lotes, el recuento de bloques, el recuento total de entradas/addenda, el entry hash total y los débitos y créditos totales de todo el archivo.
Cómo funcionan el check digit del routing number y el entry hash
Cada banco de Estados Unidos se identifica mediante un routing number de nueve dígitos (también llamado número ABA o RTN). El noveno dígito es un check digit calculado a partir de los primeros ocho usando el algoritmo ABA 3-7-1: multiplica los dígitos por los pesos que se repiten 3, 7, 1, 3, 7, 1, 3, 7, suma los productos y elige el check digit que hace que el total sea un múltiplo de 10. Un routing number cuyo check digit no supere esta prueba es inválido y será rechazado.
El entry hash es una segunda salvaguarda. Para cada lote, toma los primeros ocho dígitos del routing number de cada banco receptor, súmalos todos y conserva solo los diez dígitos más a la derecha de la suma (descartando cualquier desbordamiento por la izquierda). El registro Batch Control almacena este hash por lote, y el registro File Control almacena la suma de todos los lotes, truncada de la misma manera.
Juntas, estas dos comprobaciones permiten a las instituciones receptoras confirmar que ninguna entrada se perdió, duplicó o alteró en tránsito. Un validador recalcula ambas a partir de los registros de detalle y las compara con lo que declaran los registros de control - una discrepancia casi siempre significa que se agregó, eliminó o editó una entrada sin actualizar los totales.
Totales de control y los errores de ACH más comunes
Además del entry hash, todo archivo ACH debe cuadrar tres tipos de totales. El recuento de entradas/addenda es el número de registros de tipo 6 y tipo 7. Los importes totales de débito y de crédito son las sumas de los importes de los registros de entrada, separados según si el código de transacción es un débito o un crédito. Y el recuento de bloques es el número de bloques de 10 registros del archivo. Tanto el registro Batch Control (por lote) como el File Control (todo el archivo) repiten estas cifras, y todas deben coincidir exactamente con los registros de detalle.
Los errores que vemos con más frecuencia son: un registro que no tiene exactamente 94 caracteres (normalmente un espacio suelto o una línea recortada); un routing number con un check digit incorrecto; un entry hash o un total de importes que no se recalculó después de agregar o eliminar una entrada; un service class code (p. ej. 200/220/225) que no concuerda con la mezcla real de débitos y créditos del lote; y un archivo cuyo recuento de registros no es un múltiplo de 10 porque falta el bloque final de relleno de 9.
La mayoría de estos errores son invisibles cuando revisas el archivo a simple vista, pero fatales cuando el parser del ODFI lo lee. Recalcular el check digit, el entry hash y cada total de control - que es exactamente lo que hace un validador - los detecta antes de que el lote salga de tu sistema.
Valida tu archivo ACH antes de enviarlo
Pega o arrastra tu archivo ACH en el validador ACH / NACHA de ValidateFin. Comprueba la estructura de los registros, los check digits de routing, el entry hash y todos los totales de control de lote y de archivo - completamente en tu navegador. Ningún archivo ACH se sube nunca a un servidor.
Abrir el validador ACHPreguntas frecuentes
¿Cuál es la diferencia entre ACH y NACHA?
ACH (Automated Clearing House) es la red de pagos; NACHA (la National Automated Clearing House Association) es el organismo que redacta las reglas y define el formato de archivo. La gente suele decir 'un archivo NACHA' y 'un archivo ACH' para referirse a lo mismo: un archivo de pagos por lotes en el formato NACHA.
¿Cuánto mide cada registro en un archivo ACH?
Exactamente 94 caracteres. Cada tipo de registro - File Header, Batch Header, Entry Detail, Addenda, Batch Control y File Control - se rellena hasta 94 caracteres, y los registros se agrupan en bloques de 10.
¿Cómo se valida un routing number ACH?
Con el algoritmo de check digit ABA 3-7-1. Los primeros ocho dígitos se multiplican por los pesos que se repiten 3, 7, 1; el noveno dígito se elige de modo que la suma ponderada sea un múltiplo de 10. Si no lo es, el routing number es inválido.
¿Qué es el entry hash y por qué importa?
El entry hash es la suma de los primeros ocho dígitos de cada routing number receptor de un lote, truncada a los últimos diez dígitos. Se almacena en los registros Batch Control y File Control para que los bancos receptores puedan detectar una entrada perdida, agregada o alterada.
¿Cuáles son los códigos de tipo de registro ACH?
1 = File Header, 5 = Batch Header, 6 = Entry Detail, 7 = Addenda, 8 = Batch Control, 9 = File Control. El tipo es el primer carácter de cada registro de 94 caracteres.
¿Por qué el número de registros debe ser un múltiplo de 10?
Los archivos ACH se transmiten en bloques de diez registros de 94 caracteres. Si los registros reales no llenan el último bloque, se rellena con líneas de relleno formadas todas por 9 para que el total sea un múltiplo de 10. Un archivo que no está bloqueado correctamente puede ser rechazado.
¿Qué provoca que un archivo ACH sea rechazado?
Las causas más comunes son registros que no tienen 94 caracteres, un routing number con un check digit incorrecto, totales de control o un entry hash que no coinciden con las entradas, un service class code que no concuerda con los débitos y créditos del lote, y un bloqueo incorrecto. Validar primero detecta todos estos casos.
¿Es seguro validar un archivo ACH en línea?
Con ValidateFin, sí - el archivo se analiza por completo en tu navegador con JavaScript y nunca se sube a un servidor. Dado que los archivos ACH contienen números de cuenta bancaria y routing numbers, la validación del lado del cliente evita enviar esos datos a ningún sitio.