ValidateFin
Retour au blog
ACH / NACHA6 min de lecturePar Eliel Nicaise

Format de fichier ACH : enregistrements NACHA et contrôles

Guide pratique du format ACH (NACHA) américain : enregistrements de 94 caractères, check digit du routing number, entry hash et totaux de contrôle à équilibrer.

Validez votre fichier maintenant

Gratuit, instantané et 100 % dans votre navigateur - aucun fichier n'est jamais envoyé.

Ouvrir le ACH / NACHA Validator

Qu'est-ce qu'un fichier ACH / NACHA ?

L'ACH (Automated Clearing House) est le réseau de paiement électronique par lots qui déplace l'argent entre les comptes bancaires américains. Il gère le versement des salaires, les paiements aux fournisseurs, les remboursements d'impôts, les primes d'assurance et les prélèvements sur les consommateurs comme les factures d'énergie ou les remboursements de prêts. Plutôt que de régler chaque paiement individuellement, l'ACH les regroupe en lots échangés et réglés à heures fixes via la Réserve fédérale ou un opérateur privé.

Le fichier qui transporte ces paiements suit le format NACHA (aussi appelé format des Nacha Operating Rules, ou simplement « fichier ACH »). C'est un format texte à largeur fixe : chaque ligne - appelée enregistrement (record) - fait exactement 94 caractères, et les enregistrements sont groupés par blocs de 10. Si le dernier bloc n'est pas complet, il est complété par des lignes de remplissage de 9 pour atteindre un multiple de 10 enregistrements.

Comme le format est à largeur fixe et auto-équilibré, un seul caractère erroné - un champ décalé, un mauvais routing number, ou un total de contrôle qui ne correspond plus aux enregistrements de détail - peut amener votre banque (l'ODFI) à rejeter tout le fichier. Valider le fichier avant de l'envoyer est le moyen le moins coûteux d'éviter un lot retourné et une paie retardée.

Les types d'enregistrements dans un fichier ACH

Un fichier ACH est construit à partir de six types d'enregistrements, identifiés par le premier caractère de chaque ligne de 94 caractères. Ils apparaissent toujours dans le même ordre imbriqué : un File Header, puis un ou plusieurs lots, puis un enregistrement File Control.

1 - File Header

Ouvre le fichier. Contient les routing numbers d'origine et de destination immédiats, la date et l'heure de création du fichier, et un modificateur d'ID de fichier. Il y a exactement un File Header par fichier.

5 - Batch Header

Ouvre un lot. Porte le service class code (crédits, débits ou mixte), le nom et l'ID de l'entreprise, le SEC code (PPD, CCD, WEB...), la date d'effet et le routing number de la banque émettrice.

6 - Entry Detail

Un enregistrement par paiement. Contient le routing number et le check digit du bénéficiaire, le numéro de compte, le montant, le transaction code (compte courant/épargne, crédit/débit) et le nom du bénéficiaire.

7 - Addenda

Informations complémentaires optionnelles rattachées à une entrée - par exemple des données de remise (CCD/CTX) ou des détails de retour/correction. Une entrée peut avoir zéro, un ou plusieurs enregistrements Addenda.

8 - Batch Control

Clôt un lot. Contient le nombre d'entrées/addenda, l'entry hash, et les totaux des débits et des crédits de ce lot - qui doivent tous concorder avec les entrées au-dessus.

9 - File Control

Clôt le fichier. Contient le nombre de lots, le nombre de blocs, le total des entrées/addenda, l'entry hash total, et les totaux des débits et crédits pour l'ensemble du fichier.

Comment fonctionnent le check digit du routing number et l'entry hash

Chaque banque américaine est identifiée par un routing number de neuf chiffres (aussi appelé numéro ABA ou RTN). Le neuvième chiffre est un check digit calculé à partir des huit premiers via l'algorithme ABA 3-7-1 : on multiplie les chiffres par les poids répétés 3, 7, 1, 3, 7, 1, 3, 7, on additionne les produits, et on choisit le check digit qui rend le total multiple de 10. Un routing number dont le check digit ne satisfait pas ce test est invalide et sera rejeté.

L'entry hash est une seconde sécurité. Pour chaque lot, on prend les huit premiers chiffres du routing number de chaque banque réceptrice, on les additionne tous, et on ne garde que les dix chiffres de droite de la somme (en abandonnant tout dépassement à gauche). L'enregistrement Batch Control stocke ce hash par lot, et l'enregistrement File Control stocke la somme sur tous les lots, tronquée de la même façon.

Ensemble, ces deux contrôles permettent aux institutions réceptrices de confirmer qu'aucune entrée n'a été perdue, dupliquée ou modifiée en transit. Un validateur recalcule les deux à partir des enregistrements de détail et les compare à ce que déclarent les enregistrements de contrôle - un écart signifie presque toujours qu'une entrée a été ajoutée, supprimée ou modifiée sans mettre à jour les totaux.

Totaux de contrôle et erreurs ACH les plus fréquentes

Au-delà de l'entry hash, tout fichier ACH doit équilibrer trois types de totaux. Le nombre d'entrées/addenda est le nombre d'enregistrements de type 6 et 7. Les totaux de débits et de crédits sont les sommes des montants des enregistrements d'entrée, séparés selon que le transaction code est un débit ou un crédit. Et le block count est le nombre de blocs de 10 enregistrements du fichier. Les enregistrements Batch Control (par lot) et File Control (fichier entier) répètent ces chiffres, et tous doivent concorder exactement avec les enregistrements de détail.

Les erreurs que nous voyons le plus souvent sont : un enregistrement qui ne fait pas exactement 94 caractères (souvent un espace parasite ou une ligne tronquée) ; un routing number avec un mauvais check digit ; un entry hash ou un total de montants non recalculé après l'ajout ou la suppression d'une entrée ; un service class code (p. ex. 200/220/225) en désaccord avec le mélange réel de débits et de crédits du lot ; et un fichier dont le nombre d'enregistrements n'est pas un multiple de 10 parce que le bloc final de remplissage de 9 est manquant.

La plupart sont invisibles à l'œil nu mais fatales quand l'analyseur de l'ODFI lit le fichier. Recalculer le check digit, l'entry hash et chaque total de contrôle - exactement ce que fait un validateur - les détecte avant que le lot ne quitte votre système.

Validez votre fichier ACH avant de l'envoyer

Collez ou déposez votre fichier ACH dans le validateur ACH / NACHA de ValidateFin. Il vérifie la structure des enregistrements, les check digits des routing numbers, l'entry hash et chaque total de contrôle de lot et de fichier - entièrement dans votre navigateur. Aucun fichier ACH n'est jamais transmis à un serveur.

Ouvrir le validateur ACH

Questions fréquemment posées

Quelle est la différence entre ACH et NACHA ?

L'ACH (Automated Clearing House) est le réseau de paiement ; NACHA (la National Automated Clearing House Association) est l'organisme qui écrit les règles et définit le format de fichier. On dit souvent « un fichier NACHA » et « un fichier ACH » pour désigner la même chose : un fichier de paiement par lots au format NACHA.

Quelle est la longueur de chaque enregistrement dans un fichier ACH ?

Exactement 94 caractères. Chaque type d'enregistrement - File Header, Batch Header, Entry Detail, Addenda, Batch Control et File Control - est complété à 94 caractères, et les enregistrements sont groupés par blocs de 10.

Comment un routing number ACH est-il validé ?

Avec l'algorithme de check digit ABA 3-7-1. Les huit premiers chiffres sont multipliés par les poids répétés 3, 7, 1 ; le neuvième chiffre est choisi pour que la somme pondérée soit un multiple de 10. Sinon, le routing number est invalide.

Qu'est-ce que l'entry hash et pourquoi est-il important ?

L'entry hash est la somme des huit premiers chiffres de chaque routing number récepteur d'un lot, tronquée aux dix derniers chiffres. Il est stocké dans les enregistrements Batch Control et File Control pour que les banques réceptrices puissent détecter une entrée perdue, ajoutée ou modifiée.

Quels sont les codes de type d'enregistrement ACH ?

1 = File Header, 5 = Batch Header, 6 = Entry Detail, 7 = Addenda, 8 = Batch Control, 9 = File Control. Le type est le premier caractère de chaque enregistrement de 94 caractères.

Pourquoi le nombre d'enregistrements doit-il être un multiple de 10 ?

Les fichiers ACH sont transmis par blocs de dix enregistrements de 94 caractères. Si les enregistrements réels ne remplissent pas le dernier bloc, il est complété par des lignes entièrement composées de 9 (enregistrements de remplissage) pour que le total soit un multiple de 10. Un fichier mal blocké peut être rejeté.

Qu'est-ce qui fait rejeter un fichier ACH ?

Les causes fréquentes sont des enregistrements qui ne font pas 94 caractères, un routing number avec un mauvais check digit, des totaux de contrôle ou un entry hash qui ne correspondent pas aux entrées, un service class code en désaccord avec les débits et crédits du lot, et un blocage incorrect. Valider d'abord détecte tout cela.

Est-il sûr de valider un fichier ACH en ligne ?

Avec ValidateFin, oui - le fichier est analysé entièrement dans votre navigateur en JavaScript et n'est jamais transmis à un serveur. Comme les fichiers ACH contiennent des numéros de compte et de routing bancaires, la validation côté client évite d'envoyer ces données où que ce soit.