ValidateFin
Torna al blog
ACH / NACHA6 min di letturaDi Eliel Nicaise

Formato dei file ACH: record NACHA e totali di controllo

Guida pratica al formato dei file ACH (NACHA) USA: i record da 94 caratteri, il check digit del routing number, l'entry hash e i totali di controllo di ogni file.

Valida il tuo file subito

Gratis, istantaneo e 100% nel browser - nessun file viene mai caricato.

Apri il ACH / NACHA Validator

Che cos'è un file ACH / NACHA?

ACH (Automated Clearing House) è la rete di pagamenti elettronici a lotti (batch) che sposta denaro tra i conti bancari statunitensi. Gestisce l'accredito diretto degli stipendi, i pagamenti a fornitori, i rimborsi fiscali, i premi assicurativi e gli addebiti ai consumatori come le bollette delle utenze o le rate dei prestiti. Invece di regolare ogni pagamento singolarmente, ACH li raggruppa in lotti che vengono scambiati e regolati a orari prestabiliti tramite la Federal Reserve o un operatore privato.

Il file che trasporta questi pagamenti segue il formato NACHA (chiamato anche formato delle Nacha Operating Rules, o semplicemente 'file ACH'). È un formato di testo semplice a larghezza fissa: ogni riga - detta record - è lunga esattamente 94 caratteri, e i record sono raggruppati in blocchi da 10. Se l'ultimo blocco non è completo, viene riempito con righe di riempimento di 9 fino a raggiungere un multiplo di 10 record.

Poiché il formato è a larghezza fissa e si autobilancia, un singolo carattere errato - un campo disallineato, un routing number errato o un totale di controllo che non corrisponde più ai record di dettaglio - può indurre la tua banca (l'ODFI, la banca di origine) a rifiutare l'intero file. Validare il file prima di inviarlo è il modo più economico per evitare un lotto respinto e un pagamento degli stipendi in ritardo.

I tipi di record all'interno di un file ACH

Un file ACH è costruito a partire da sei tipi di record, identificati dal primo carattere di ogni riga da 94 caratteri. Compaiono sempre nello stesso ordine annidato: un File Header (intestazione del file), poi uno o più lotti, poi un record File Control (controllo del file).

1 - File Header

Apre il file. Contiene i routing number di origine e destinazione immediate, la data e l'ora di creazione del file e un modificatore dell'ID file. C'è esattamente un File Header per file.

5 - Batch Header

Apre un lotto. Riporta il service class code (codice della classe di servizio: accrediti, addebiti o misto), il nome e l'ID dell'azienda, il SEC code (PPD, CCD, WEB...), la data di effetto delle registrazioni e il routing number della banca di origine.

6 - Entry Detail

Un record per pagamento. Contiene il routing number e il check digit del ricevente, il numero di conto, l'importo, il transaction code (conto corrente/risparmio, accredito/addebito) e il nome del ricevente.

7 - Addenda

Informazioni aggiuntive opzionali associate a una registrazione - ad esempio dati di rimessa (CCD/CTX) o dettagli di storno/rettifica. Una registrazione può avere zero, uno o molti record Addenda.

8 - Batch Control

Chiude un lotto. Contiene il conteggio di registrazioni/addenda, l'entry hash e gli importi totali di addebito e accredito per quel lotto - tutti valori che devono corrispondere alle registrazioni soprastanti.

9 - File Control

Chiude il file. Contiene il conteggio dei lotti, il conteggio dei blocchi, il conteggio totale di registrazioni/addenda, l'entry hash totale e gli addebiti e accrediti totali dell'intero file.

Come funzionano il check digit del routing number e l'entry hash

Ogni banca statunitense è identificata da un routing number di nove cifre (chiamato anche numero ABA o RTN). La nona cifra è un check digit calcolato a partire dalle prime otto usando l'algoritmo ABA 3-7-1: si moltiplicano le cifre per i pesi ripetuti 3, 7, 1, 3, 7, 1, 3, 7, si sommano i prodotti e si sceglie il check digit che rende il totale un multiplo di 10. Un routing number il cui check digit non soddisfa questo test è invalido e verrà respinto.

L'entry hash è una seconda salvaguardia. Per ogni lotto, si prendono le prime otto cifre del routing number di ogni banca ricevente, si sommano tutte insieme e si conservano solo le dieci cifre più a destra della somma (scartando eventuali eccedenze a sinistra). Il record Batch Control memorizza questo hash per lotto, e il record File Control memorizza la somma di tutti i lotti, troncata allo stesso modo.

Insieme, questi due controlli permettono agli istituti riceventi di confermare che nessuna registrazione sia stata persa, duplicata o alterata durante il transito. Un validatore ricalcola entrambi a partire dai record di dettaglio e li confronta con quanto dichiarato dai record di controllo - una discrepanza indica quasi sempre che una registrazione è stata aggiunta, rimossa o modificata senza aggiornare i totali.

Totali di controllo e gli errori ACH più comuni

Oltre all'entry hash, ogni file ACH deve far quadrare tre tipi di totali. Il conteggio di registrazioni/addenda è il numero di record di tipo 6 e tipo 7. Gli importi totali di addebito e accredito sono le somme degli importi nei record di registrazione, suddivise a seconda che il transaction code sia un addebito o un accredito. E il conteggio dei blocchi è il numero di blocchi da 10 record nel file. Sia il record Batch Control (per lotto) sia il record File Control (intero file) ripetono queste cifre, e tutte devono corrispondere esattamente ai record di dettaglio.

Gli errori che vediamo più spesso sono: un record che non è esattamente di 94 caratteri (di solito uno spazio di troppo o una riga tagliata); un routing number con un check digit errato; un entry hash o un totale degli importi non ricalcolato dopo l'aggiunta o la rimozione di una registrazione; un service class code (ad es. 200/220/225) che non concorda con l'effettivo mix di addebiti e accrediti nel lotto; e un file il cui conteggio di record non è un multiplo di 10 perché manca il blocco finale di riempimento con 9.

La maggior parte di questi errori è invisibile a occhio nudo quando si guarda il file, ma è fatale quando il parser dell'ODFI lo legge. Ricalcolare il check digit, l'entry hash e ogni totale di controllo - che è esattamente ciò che fa un validatore - li intercetta prima che il lotto lasci il tuo sistema.

Valida il tuo file ACH prima di inviarlo

Incolla o trascina il tuo file ACH nel validatore ACH / NACHA di ValidateFin. Verifica la struttura dei record, i check digit dei routing number, l'entry hash e ogni totale di controllo di lotto e di file - interamente nel tuo browser. Nessun file ACH viene mai caricato su un server.

Apri il validatore ACH

Domande frequenti

Qual è la differenza tra ACH e NACHA?

ACH (Automated Clearing House) è la rete di pagamento; NACHA (la National Automated Clearing House Association) è l'organismo che scrive le regole e definisce il formato del file. Spesso si dice 'un file NACHA' e 'un file ACH' per indicare la stessa cosa: un file di pagamenti a lotti nel formato NACHA.

Quanto è lungo ogni record in un file ACH?

Esattamente 94 caratteri. Ogni tipo di record - File Header, Batch Header, Entry Detail, Addenda, Batch Control e File Control - viene riempito fino a 94 caratteri, e i record sono raggruppati in blocchi da 10.

Come si valida un routing number ACH?

Con l'algoritmo del check digit ABA 3-7-1. Le prime otto cifre sono moltiplicate per i pesi ripetuti 3, 7, 1; la nona cifra è scelta in modo che la somma pesata sia un multiplo di 10. In caso contrario, il routing number è invalido.

Che cos'è l'entry hash e perché è importante?

L'entry hash è la somma delle prime otto cifre di ogni routing number ricevente in un lotto, troncata alle ultime dieci cifre. Viene memorizzato nei record Batch Control e File Control affinché le banche riceventi possano rilevare una registrazione persa, aggiunta o alterata.

Quali sono i codici dei tipi di record ACH?

1 = File Header, 5 = Batch Header, 6 = Entry Detail, 7 = Addenda, 8 = Batch Control, 9 = File Control. Il tipo è il primo carattere di ogni record da 94 caratteri.

Perché il numero di record deve essere un multiplo di 10?

I file ACH sono trasmessi in blocchi da dieci record da 94 caratteri. Se i record reali non riempiono l'ultimo blocco, questo viene riempito con righe di riempimento composte tutte da 9 in modo che il totale sia un multiplo di 10. Un file non correttamente suddiviso in blocchi può essere rifiutato.

Cosa provoca il rifiuto di un file ACH?

Le cause comuni sono record che non hanno 94 caratteri, un routing number con un check digit errato, totali di controllo o un entry hash che non corrispondono alle registrazioni, un service class code che non concorda con gli addebiti e gli accrediti nel lotto, e una suddivisione in blocchi errata. Validare prima intercetta tutti questi errori.

È sicuro validare un file ACH online?

Con ValidateFin, sì - il file viene analizzato interamente nel tuo browser con JavaScript e non viene mai caricato su un server. Poiché i file ACH contengono numeri di conto bancario e routing number, la validazione lato client evita di inviare tali dati altrove.