ValidateFin
Zurück zum Blog
·Aktualisiert 11. März 2026·Leitfaden·Von Eliel Nicaise

Das SEPA pain.001-Format verstehen: ein vollständiger Leitfaden

Die pain.001-Datei ist das Standardformat für SEPA-Überweisungen. In diesem Leitfaden erklären wir die XML-Struktur, Pflichtfelder und häufige Fehler, die es zu vermeiden gilt.

Was ist pain.001?

pain.001 (Payment Initiation) ist die vom EPC (European Payments Council) standardisierte XML-Nachricht zur Initiierung von SEPA-Überweisungen. Sie wird von Unternehmen verwendet, um Zahlungsaufträge an ihre Bank zu übermitteln.

Dieses Format basiert auf dem ISO 20022-Standard und ist Teil der Customer Credit Transfer Initiation-Nachrichtenfamilie. Es wird von allen Banken der SEPA-Zone akzeptiert, die 36 Länder umfasst.

pain.001 hat ältere nationale Zahlungsformate weitgehend abgelöst (wie CFONB in Frankreich, DTA in Deutschland und CLIEOP in den Niederlanden). Eine einzige pain.001-Datei kann Tausende von Einzelzahlungstransaktionen enthalten und ist damit der Standard für die Stapelverarbeitung von Lohnzahlungen, Lieferantenzahlungen und Treasury-Operationen. Das Begleitformat pain.008 deckt den umgekehrten Fluss ab — SEPA-Lastschriften (SDD) zum Einzug von Geldern bei Schuldnern.

XML-Dateistruktur

Eine pain.001-Datei ist in drei Ebenen aufgebaut: GroupHeader (allgemeine Informationen), PaymentInformation (Abbuchungsinformationen) und CreditTransferTransactionInformation (Details jeder Überweisung):

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09">
  <CstmrCdtTrfInitn>
    <GrpHdr>
      <MsgId>MSG-20260210-001</MsgId>
      <CreDtTm>2026-02-10T10:00:00</CreDtTm>
      <NbOfTxs>3</NbOfTxs>
      <CtrlSum>4500.00</CtrlSum>
      <InitgPty><Nm>ACME SA</Nm></InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>PMT-001</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <ReqdExctnDt><Dt>2026-02-12</Dt></ReqdExctnDt>
      <Dbtr><Nm>ACME SA</Nm></Dbtr>
      <DbtrAcct>
        <Id><IBAN>BE68539007547034</IBAN></Id>
      </DbtrAcct>
      <DbtrAgt>
        <FinInstnId><BIC>GEBABEBB</BIC></FinInstnId>
      </DbtrAgt>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>INV-2026-001</EndToEndId>
        </PmtId>
        <Amt><InstdAmt Ccy="EUR">1500.00</InstdAmt></Amt>
        <CdtrAgt>
          <FinInstnId><BIC>ABNANL2A</BIC></FinInstnId>
        </CdtrAgt>
        <Cdtr><Nm>Supplier NV</Nm></Cdtr>
        <CdtrAcct>
          <Id><IBAN>NL91ABNA0417164300</IBAN></Id>
        </CdtrAcct>
      </CdtTrfTxInf>
    </PmtInf>
  </CstmrCdtTrfInitn>
</Document>

Das Wurzelelement muss den korrekten XML-Namensraum (xmlns) passend zur verwendeten Version enthalten. Der GroupHeader erscheint genau einmal und enthält die Nachrichten-ID, den Erstellungszeitstempel, die Transaktionsanzahl und die Kontrollsumme. Jeder PmtInf-Block gruppiert Transaktionen mit demselben Schuldnerkonto und Ausführungsdatum. Innerhalb jedes PmtInf beschreiben ein oder mehrere CdtTrfTxInf-Elemente die einzelnen Überweisungen.

Pflichtfelder

Hier sind die wesentlichen Felder, die in jeder gültigen pain.001-Datei erforderlich sind:

  • MsgIdEindeutige Nachrichtenkennung (max. 35 Zeichen, pro Einreichung eindeutig)
  • CreDtTmErstellungsdatum und -uhrzeit im ISO 8601-Format (z.B. 2026-02-10T10:00:00)
  • NbOfTxsGesamtzahl der Transaktionen in der Datei
  • CtrlSumKontrollsumme: Summe aller Überweisungsbeträge
  • InitgPty / NmName der initiierenden Partei — die die Datei erstellende Einheit. Maximal 70 Zeichen. Muss mit dem bei Ihrer Bank hinterlegten Namen übereinstimmen.
  • PmtInfIdZahlungsinformationskennung — eindeutig innerhalb der Datei. Identifiziert eine Gruppe von Transaktionen mit demselben Schuldner und Ausführungsdatum. Wird für die Abstimmung verwendet.
  • PmtMtdZahlungsmethode: 'TRF' für Überweisung. Dieses Feld teilt der Bank mit, welche Art von SEPA-Anweisung ausgeführt werden soll.
  • ReqdExctnDtGewünschtes Ausführungsdatum im Format JJJJ-MM-TT. Muss ein zukünftiger Bankarbeitstag sein. Banken akzeptieren in der Regel Datumsangaben bis zu 30 Tage in der Zukunft.
  • DbtrAcct / IBANIBAN des Schuldners — das zu belastende Konto. Muss die Mod-97-Prüfsumme bestehen und einem für SEPA bei Ihrer Bank registrierten Konto entsprechen.
  • EndToEndIdEnd-to-End-Kennung für jede Transaktion (max. 35 Zeichen). Wird durch die gesamte Zahlungskette weitergeleitet und erscheint auf dem Kontoauszug des Gläubigers. Entscheidend für die Abstimmung.

Häufige Fehler in pain.001-Dateien

Diese Fehler treten bei der Validierung häufig auf. Das Verständnis dieser Fehler hilft, Ablehnungen vor der Einreichung bei Ihrer Bank zu vermeiden:

Falsche CtrlSum

Die Kontrollsumme stimmt nicht mit der Summe der Einzelbeträge überein. Überprüfen Sie die Rundung (max. 2 Dezimalstellen).

Ungültige IBAN

Eine falsch formatierte IBAN oder eine falsche Prüfsumme. Verwenden Sie vor der Datenintegration einen IBAN-Validator.

Ausführungsdatum in der Vergangenheit

Das ReqdExctnDt (gewünschtes Ausführungsdatum) muss heute oder ein zukünftiger Bankarbeitstag sein. Wochenenden und Bankfeiertage sind keine gültigen Ausführungsdaten. Prüfen Sie den Feiertagskalender Ihres Landes.

Doppelte MsgId

Banken lehnen Dateien mit einer bereits verarbeiteten MsgId ab. Verwenden Sie eine Kombination aus Zeitstempel und eindeutiger Sequenznummer. Verwenden Sie MsgIds niemals wieder, auch nicht über verschiedene Bankbeziehungen hinweg.

Falsche Namespace-Version

Der XML-Namensraum muss mit der von Ihrer Bank erwarteten Version übereinstimmen. Die Verwendung des pain.001.001.03-Namensraums mit einer pain.001.001.09-Struktur führt zu einem Schema-Validierungsfehler. Erkundigen Sie sich bei Ihrer Bank, welche Versionen sie unterstützt.

Sonderzeichen in Textfeldern

SEPA erlaubt in Textfeldern nur einen begrenzten Zeichensatz: a-z, A-Z, 0-9 und einige Sonderzeichen (/ - ? : ( ) . , ' + Leerzeichen). Zeichen wie ä, ö, ü, é, ñ müssen transliteriert werden. Das Euro-Zeichen (€) ist in Textfeldern nicht erlaubt.

pain.001-Versionen: Welche sollten Sie verwenden?

Das pain.001-Format hat sich seit seiner Einführung durch mehrere Versionen weiterentwickelt. Jede Version fügt neue Felder und Funktionen hinzu und wahrt dabei die Abwärtskompatibilität. Ihre Bank kann eine oder mehrere Versionen unterstützen — prüfen Sie stets deren Implementierungsleitfaden.

VersionNamensraumJahrWichtigste Änderungen
pain.001.001.03urn:iso:std:iso:20022:tech:xsd:pain.001.001.032009Ursprüngliche SEPA-Version, noch weit verbreitet. Grundlegende Überweisungsfelder.
pain.001.001.09urn:iso:std:iso:20022:tech:xsd:pain.001.001.092019Strukturierte Verwendungszweck-Informationen, regulatorische Meldungen, Zweckangaben hinzugefügt. Aktuelle EPC-Empfehlung.
pain.001.001.11urn:iso:std:iso:20022:tech:xsd:pain.001.001.112023Neueste ISO-Version. Erweiterter LEI-Support, zusätzliche Adressfelder. Die Bankübernahme variiert.

ValidateFin unterstützt alle drei Hauptversionen. Für neue Implementierungen wird pain.001.001.09 empfohlen, da es das beste Gleichgewicht zwischen Funktionen und Bankkompatibilität bietet. Wenn Ihre Bank noch .03 benötigt, validiert ValidateFin gegen dieses Schema. Testen Sie stets mit Ihrer Bank, bevor Sie in der Produktion die Version wechseln.

Best Practices für die Erstellung von pain.001-Dateien

Befolgen Sie diese bewährten Richtlinien, um Ablehnungen zu minimieren und eine reibungslose Zahlungsabwicklung zu gewährleisten:

  • Vor dem Versand validierenValidieren Sie Ihre pain.001-Datei stets gegen das XSD-Schema, bevor Sie sie bei Ihrer Bank hochladen. ValidateFin erkennt 100 % der strukturellen Fehler und die meisten Verstöße gegen Geschäftsregeln in Sekunden.
  • Eindeutige Kennungen konsequent verwendenMsgId, PmtInfId und EndToEndId sollten einer vorhersehbaren Namenskonvention folgen (z.B. datumsbasierte Präfixe). Dies vereinfacht die Abstimmung und Fehlerbehebung erheblich.
  • Transaktionen sinnvoll gruppierenGruppieren Sie Zahlungen nach Ausführungsdatum und Währung im selben PmtInf-Block. Dies reduziert bei manchen Banken die Bearbeitungsgebühren und erleichtert die Abstimmung.
  • Zeichenkodierung korrekt handhabenErstellen Sie Dateien stets in UTF-8. Transliterieren Sie Nicht-SEPA-Zeichen (é→e, ß→ss, ü→ue), bevor Sie das XML aufbauen. Nicht transliterierte Zeichen führen bei manchen Banken zu stillen Ablehnungen.
  • Zuerst mit kleinen Batches testenWenn Sie einen neuen pain.001-Generator implementieren oder die Version wechseln, beginnen Sie mit einer Datei mit 2-3 Testtransaktionen. Vergewissern Sie sich, dass die Bank diese akzeptiert und korrekt verarbeitet, bevor Sie Produktionsvolumina einsenden.

Für hochvolumige Zahlungsoperationen sollten Sie eine automatisierte Validierung als Teil Ihrer Zahlungsabwicklung implementieren. Generieren Sie das XML, validieren Sie mit ValidateFin (oder integrieren Sie die Schema-Validierung in Ihren Code) und reichen Sie es nur bei der Bank ein, wenn die Validierung erfolgreich ist. Dies verhindert abgelehnte Dateien und den damit verbundenen manuellen Aufwand.

Ihre pain.001-Datei validieren

Unser SEPA-Validierungstool prüft Ihre Datei anhand des offiziellen EPC XSD-Schemas und zeigt die Details jeder Transaktion an. Es werden keine Dateien an unsere Server gesendet.

Meine SEPA-Datei validieren

Häufig gestellte Fragen

Was ist eine SEPA pain.001-Datei?

Eine SEPA pain.001-Datei ist ein XML-Dokument, das dem ISO-20022-Standard entspricht und Überweisungszahlungen initiiert. Sie enthält Schuldnerinformationen, Gläubigerdetails, Beträge und Zahlungsreferenzen. Banken verwenden dieses standardisierte Format zur Verarbeitung von Massenzahlungen in der 36-Länder-SEPA-Zone. Eine einzige Datei kann Tausende von Einzelüberweisungen enthalten.

Was sind die Pflichtfelder einer pain.001-Datei?

Zu den Pflichtfeldern gehören: MsgId (Nachrichtenkennung, max. 35 Zeichen), CreDtTm (Erstellungszeitstempel), NbOfTxs (Transaktionsanzahl), CtrlSum (Summe aller Beträge), InitgPty (initiierende Partei), PmtInfId (Zahlungsinformations-ID), PmtMtd (Zahlungsmethode — TRF), ReqdExctnDt (Ausführungsdatum), Dbtr (Schuldnername), DbtrAcct (Schuldner-IBAN) sowie für jede Transaktion: CdtrAcct (Gläubiger-IBAN), InstdAmt (Betrag mit Währung) und EndToEndId (End-to-End-Referenz).

Wie kann ich meine SEPA pain.001-Datei online validieren?

Verwenden Sie ValidateFins kostenlosen SEPA-Validator, um Ihre pain.001-Datei gegen die offiziellen EPC-XSD-Schemata zu prüfen. Laden Sie Ihre XML-Datei hoch — die gesamte Validierung erfolgt lokal in Ihrem Browser, ohne dass Daten an einen Server übertragen werden, was volle DSGVO-Konformität gewährleistet. Das Tool validiert Struktur, IBANs, BICs, Beträge und Kontrollsummen.

Was ist der Unterschied zwischen pain.001 und pain.008?

pain.001 (Customer Credit Transfer Initiation) ist für ausgehende Banküberweisungen — Sie senden Geld an Gläubiger. pain.008 (Customer Direct Debit Initiation) ist zum Einzug von Geldern bei Schuldnern — Sie ziehen Beträge von deren Konten mittels einer unterzeichneten Einzugsermächtigung ein. Beide sind ISO-20022-XML-Formate, die von Banken in der SEPA-Zone verarbeitet werden, aber sie haben unterschiedliche Pflichtfelder und Geschäftsregeln.

Welche pain.001-Version sollte ich verwenden?

Für neue Implementierungen wird pain.001.001.09 empfohlen, da es die aktuelle EPC-Empfehlung ist und strukturierte Verwendungszweck-Informationen, Zweckangaben und regulatorische Meldefelder bietet. pain.001.001.03 wird für Altsysteme noch weit unterstützt. pain.001.001.11 ist die neueste ISO-Version, aber die Bankunterstützung variiert. Erkundigen Sie sich stets bei Ihrer Bank, welche Versionen akzeptiert werden.

Welche Zeichen sind in SEPA pain.001-Textfeldern erlaubt?

SEPA-Zahlungsdateien verwenden einen vom EPC definierten eingeschränkten Zeichensatz: a-z, A-Z, 0-9 und Sonderzeichen / - ? : ( ) . , ' + sowie Leerzeichen. Nationale Zeichen mit Akzenten (é, ü, ñ usw.) müssen transliteriert werden. Das Euro-Zeichen (€) und andere Währungssymbole sind in Textfeldern nicht erlaubt — Beträge verwenden stattdessen das InstdAmt-Element mit dem Ccy-Attribut.

Wie funktioniert die CtrlSum (Kontrollsumme) in pain.001?

CtrlSum ist eine Prüfsumme, die genau der Summe aller einzelnen InstdAmt-Werte über alle Transaktionen in der Datei entsprechen muss, gerundet auf 2 Dezimalstellen. Sie dient als Integritätsprüfung — wenn auch nur eine Differenz von 0,01 € zwischen CtrlSum und der tatsächlichen Summe besteht, wird die gesamte Datei abgelehnt. Berechnen Sie sie durch Addition vorgerundeter Beträge, nicht durch anschließende Rundung der Gesamtsumme.

Kann eine pain.001-Datei Transaktionen in mehreren Währungen enthalten?

Standard-SEPA-Überweisungen (SCT) sind nur in EUR. Das pain.001-Format selbst unterstützt jedoch mehrere Währungen über das Ccy-Attribut von InstdAmt. Manche Banken akzeptieren Nicht-EUR-Transaktionen in pain.001 für internationale Zahlungen, aber das hängt von der Implementierung Ihrer Bank ab. Verwenden Sie bei reinen SEPA-Zahlungen innerhalb der SEPA-Zone stets EUR.

Wie viele Transaktionen kann eine einzelne pain.001-Datei enthalten?

Der ISO-20022-Standard definiert kein Maximum, aber praktische Grenzen hängen von Ihrer Bank ab. Die meisten Banken akzeptieren Dateien mit bis zu 100.000 Transaktionen. Sehr große Dateien (>50.000 Transaktionen) benötigen möglicherweise länger für die Verarbeitung, und manche Banken empfehlen, sie aufzuteilen. Das Dateigrößenlimit beträgt je nach Upload-Kanal der Bank in der Regel 20-50 MB.

Was passiert, wenn meine Bank eine pain.001-Datei ablehnt?

Wenn eine Bank eine pain.001-Datei ablehnt, erhalten Sie eine pain.002 (Payment Status Report) mit dem Ablehnungsgrund. Häufige Ablehnungscodes sind: AC01 (falsche Kontonummer), AM05 (doppelte Zahlung), DT01 (ungültiges Datum) und FF01 (ungültiges Dateiformat). Um Ablehnungen zu vermeiden, validieren Sie Ihre Datei stets mit ValidateFin vor der Einreichung — das Tool erkennt strukturelle Fehler, ungültige IBANs und fehlerhafte Kontrollsummen.