ACH-Dateiformat erklärt: NACHA-Records und Kontrollsummen
Praxis-Leitfaden zum US-ACH-Format (NACHA): 94-Zeichen-Record-Typen, Prüfziffer der Routing Number, Entry Hash und Kontrollsummen jeder ACH-Datei.
Validieren Sie Ihre Datei jetzt
Kostenlos, sofort und 100 % in Ihrem Browser - keine Datei wird hochgeladen.
Was ist eine ACH- / NACHA-Datei?
ACH (Automated Clearing House) ist das stapelbasierte elektronische Zahlungsnetzwerk, das Geld zwischen US-Bankkonten bewegt. Es wickelt die Direkteinzahlung von Gehältern, Zahlungen an Lieferanten und Dienstleister, Steuerrückerstattungen, Versicherungsprämien sowie Lastschriften von Verbrauchern wie Stromrechnungen oder Kreditrückzahlungen ab. Anstatt jede Zahlung einzeln abzuwickeln, gruppiert ACH sie in Stapeln (batches), die zu festgelegten Zeiten über die Federal Reserve oder einen privaten Betreiber ausgetauscht und verrechnet werden.
Die Datei, die diese Zahlungen transportiert, folgt dem NACHA-Format (auch Nacha-Operating-Rules-Format oder schlicht 'ACH-Datei' genannt). Es handelt sich um ein reines Textformat mit fester Feldbreite: Jede Zeile - Record genannt - ist genau 94 Zeichen lang, und die Records werden in Blöcken zu je 10 gruppiert. Ist der letzte Block nicht vollständig, wird er mit Füllzeilen aus Neunen aufgefüllt, bis ein Vielfaches von 10 Records erreicht ist.
Da das Format eine feste Feldbreite hat und sich selbst ausgleicht, kann ein einziges falsches Zeichen - ein falsch ausgerichtetes Feld, eine fehlerhafte Routing Number oder eine Kontrollsumme, die nicht mehr zu den Detail-Records passt - dazu führen, dass Ihre Bank (die ODFI, Originating Depository Financial Institution) die gesamte Datei ablehnt. Die Datei vor dem Versand zu validieren ist der günstigste Weg, um einen zurückgewiesenen Stapel und einen verzögerten Gehaltslauf zu vermeiden.
Die Record-Typen innerhalb einer ACH-Datei
Eine ACH-Datei besteht aus sechs Record-Typen, die durch das erste Zeichen jeder 94 Zeichen langen Zeile gekennzeichnet sind. Sie treten immer in derselben verschachtelten Reihenfolge auf: ein File Header, dann ein oder mehrere Batches und schließlich ein File-Control-Record.
1 - File Header
Eröffnet die Datei. Enthält die Routing Numbers des unmittelbaren Ursprungs und Ziels, das Erstellungsdatum und die Erstellungszeit der Datei sowie einen File-ID-Modifier. Pro Datei gibt es genau einen File Header.
5 - Batch Header
Eröffnet einen Batch. Enthält den service class code (Gutschriften, Lastschriften oder gemischt), den Firmennamen und die Firmen-ID, den SEC code (PPD, CCD, WEB...), das effektive Buchungsdatum (effective entry date) und die Routing Number der originierenden Bank.
6 - Entry Detail
Ein Record pro Zahlung. Enthält die Routing Number und die Prüfziffer (check digit) des Empfängers, die Kontonummer, den Betrag, den transaction code (Giro-/Sparkonto, Gutschrift/Lastschrift) und den Namen des Empfängers.
7 - Addenda
Optionale Zusatzinformationen, die einem Entry beigefügt werden - zum Beispiel Verwendungszweckdaten (CCD/CTX) oder Angaben zu Rückläufern/Korrekturen. Ein Entry kann null, ein oder viele Addenda-Records haben.
8 - Batch Control
Schließt einen Batch ab. Enthält die Anzahl der Entry-/Addenda-Records, den entry hash sowie die Gesamtbeträge der Lastschriften und Gutschriften dieses Batches - alle müssen mit den darüberliegenden Entries übereinstimmen.
9 - File Control
Schließt die Datei ab. Enthält die Anzahl der Batches, die Anzahl der Blöcke, die Gesamtanzahl der Entry-/Addenda-Records, den gesamten entry hash sowie die gesamten Lastschriften und Gutschriften der gesamten Datei.
So funktionieren die Prüfziffer der Routing Number und der Entry Hash
Jede US-Bank wird durch eine neunstellige Routing Number identifiziert (auch ABA-Nummer oder RTN genannt). Die neunte Ziffer ist eine Prüfziffer (check digit), die aus den ersten acht Ziffern mithilfe des ABA-Algorithmus 3-7-1 berechnet wird: Die Ziffern werden mit den sich wiederholenden Gewichten 3, 7, 1, 3, 7, 1, 3, 7 multipliziert, die Produkte werden summiert, und die Prüfziffer wird so gewählt, dass die Gesamtsumme ein Vielfaches von 10 ergibt. Eine Routing Number, deren Prüfziffer diese Prüfung nicht erfüllt, ist ungültig und wird abgewiesen.
Der entry hash ist eine zweite Sicherung. Nehmen Sie für jeden Batch die ersten acht Ziffern der Routing Number jeder empfangenden Bank, addieren Sie sie alle zusammen und behalten Sie nur die zehn rechten Ziffern der Summe (ein Überlauf links wird verworfen). Der Batch-Control-Record speichert diesen batchbezogenen Hash, und der File-Control-Record speichert die Summe über alle Batches, auf dieselbe Weise gekürzt.
Zusammen erlauben diese beiden Prüfungen den empfangenden Instituten zu bestätigen, dass kein Entry auf dem Transportweg verloren ging, dupliziert oder verändert wurde. Ein Validator berechnet beide aus den Detail-Records neu und vergleicht sie mit dem, was die Control-Records angeben - eine Abweichung bedeutet fast immer, dass ein Entry hinzugefügt, entfernt oder bearbeitet wurde, ohne die Summen zu aktualisieren.
Kontrollsummen und die häufigsten ACH-Fehler
Über den entry hash hinaus muss jede ACH-Datei drei Arten von Summen ausgleichen. Die Entry-/Addenda-Anzahl ist die Anzahl der Records vom Typ 6 und Typ 7. Die Gesamtbeträge der Lastschriften und Gutschriften sind die Summen der Beträge in den Entry-Records, aufgeteilt danach, ob der transaction code eine Lastschrift oder eine Gutschrift ist. Und die Blockanzahl (block count) ist die Anzahl der Blöcke zu je 10 Records in der Datei. Sowohl der Batch-Control-Record (pro Batch) als auch der File-Control-Record (gesamte Datei) wiederholen diese Werte, und alle müssen exakt mit den Detail-Records übereinstimmen.
Die Fehler, die wir am häufigsten sehen, sind: ein Record, der nicht genau 94 Zeichen lang ist (meist ein überzähliges Leerzeichen oder eine gekürzte Zeile); eine Routing Number mit falscher Prüfziffer; ein entry hash oder eine Betragssumme, die nach dem Hinzufügen oder Entfernen eines Entries nicht neu berechnet wurde; ein service class code (z. B. 200/220/225), der nicht zur tatsächlichen Mischung aus Lastschriften und Gutschriften im Batch passt; und eine Datei, deren Record-Anzahl kein Vielfaches von 10 ist, weil der abschließende Füllblock aus Neunen fehlt.
Die meisten davon sind unsichtbar, wenn Sie die Datei nur überfliegen, aber fatal, wenn der Parser der ODFI sie liest. Die Prüfziffer, den entry hash und jede Kontrollsumme neu zu berechnen - genau das tut ein Validator - erkennt sie, bevor der Batch Ihr System verlässt.
Validieren Sie Ihre ACH-Datei vor dem Versand
Fügen Sie Ihre ACH-Datei in den ACH- / NACHA-Validator von ValidateFin ein oder ziehen Sie sie hinein. Er prüft die Record-Struktur, die Routing-Prüfziffern, den entry hash sowie jede Batch- und File-Kontrollsumme - vollständig in Ihrem Browser. Keine ACH-Datei wird jemals auf einen Server hochgeladen.
ACH-Validator öffnenHäufig gestellte Fragen
Was ist der Unterschied zwischen ACH und NACHA?
ACH (Automated Clearing House) ist das Zahlungsnetzwerk; NACHA (die National Automated Clearing House Association) ist die Organisation, die die Regeln aufstellt und das Dateiformat definiert. Man sagt oft 'eine NACHA-Datei' und 'eine ACH-Datei' und meint dasselbe: eine Stapelzahlungsdatei im NACHA-Format.
Wie lang ist jeder Record in einer ACH-Datei?
Genau 94 Zeichen. Jeder Record-Typ - File Header, Batch Header, Entry Detail, Addenda, Batch Control und File Control - wird auf 94 Zeichen aufgefüllt, und die Records werden in Blöcken zu je 10 gruppiert.
Wie wird eine ACH-Routing-Number validiert?
Mit dem ABA-Prüfziffer-Algorithmus 3-7-1. Die ersten acht Ziffern werden mit den sich wiederholenden Gewichten 3, 7, 1 multipliziert; die neunte Ziffer wird so gewählt, dass die gewichtete Summe ein Vielfaches von 10 ergibt. Ist das nicht der Fall, ist die Routing Number ungültig.
Was ist der entry hash und warum ist er wichtig?
Der entry hash ist die Summe der ersten acht Ziffern jeder empfangenden Routing Number in einem Batch, gekürzt auf die letzten zehn Ziffern. Er wird in den Batch-Control- und File-Control-Records gespeichert, damit die empfangenden Banken einen verlorenen, hinzugefügten oder veränderten Entry erkennen können.
Was sind die Codes der ACH-Record-Typen?
1 = File Header, 5 = Batch Header, 6 = Entry Detail, 7 = Addenda, 8 = Batch Control, 9 = File Control. Der Typ ist das erste Zeichen jedes 94 Zeichen langen Records.
Warum muss die Anzahl der Records ein Vielfaches von 10 sein?
ACH-Dateien werden in Blöcken aus zehn 94 Zeichen langen Records übertragen. Füllen die echten Records den letzten Block nicht aus, wird er mit Füllzeilen aus lauter Neunen aufgefüllt, sodass die Gesamtzahl ein Vielfaches von 10 ergibt. Eine nicht korrekt geblockte Datei kann abgelehnt werden.
Was führt dazu, dass eine ACH-Datei abgelehnt wird?
Häufige Ursachen sind Records, die nicht 94 Zeichen lang sind, eine Routing Number mit falscher Prüfziffer, Kontrollsummen oder ein entry hash, die nicht zu den Entries passen, ein service class code, der nicht zu den Lastschriften und Gutschriften im Batch passt, sowie fehlerhafte Blockung. Eine vorherige Validierung erkennt all das.
Ist es sicher, eine ACH-Datei online zu validieren?
Mit ValidateFin ja - die Datei wird vollständig in Ihrem Browser geparst und niemals auf einen Server hochgeladen. Da ACH-Dateien Bankkonto- und Routing-Numbers enthalten, vermeidet die clientseitige Validierung, dass diese Daten irgendwohin gesendet werden.