Zum Inhalt

SEPA-Lastschriftdatei erstellen (pain.008)

Der Service Task „SEPA-Lastschriftdatei erstellen (pain.008)" erzeugt aus einer Liste von Lastschriften eine XML-Datei im Format pain.008.001.08, die im Firmenkunden-Online-Banking hochgeladen oder per EBICS an die Bank übertragen werden kann. Lastschriften aus Rechnungen, Beiträgen oder Abos werden so direkt im Prozess eingezogen, ohne die Daten in eine Banking-Software zu übertragen.

Die Datei folgt den Vorgaben der Deutschen Kreditwirtschaft (DK) in der Anlage 3 des DFÜ-Abkommens und wird vor dem Speichern gegen das offizielle Schema pain.008.001.08_GBIC_5 geprüft. Dieses Schema gilt seit Oktober 2025 und bleibt auch mit der ab 15. November 2026 gültigen Version der Anlage 3 unverändert.


Wann wird dieser Service Task verwendet?

  • Rechnungen per Lastschrift einziehen: Offene Rechnungen von Kunden mit SEPA-Mandat werden gesammelt und als eine Datei zur Bank gegeben.
  • Wiederkehrende Beiträge: Mitgliedsbeiträge, Mieten oder Abo-Gebühren werden monatlich in einem Prozess zusammengestellt und eingezogen.
  • Firmenlastschrift (B2B): Forderungen gegenüber Geschäftskunden werden mit dem B2B-Verfahren eingezogen, bei dem keine Rückgabe ohne Angabe von Gründen möglich ist.

Voraussetzungen

Bevor Lastschriften eingezogen werden können, müssen außerhalb von Pantarey folgende Punkte erfüllt sein:

  • Gläubiger-Identifikationsnummer: Wird kostenlos bei der Deutschen Bundesbank beantragt.
  • Inkassovereinbarung mit der Bank: Die eigene Bank muss den Lastschrifteinzug freigeben, in der Regel mit einem Limit.
  • SEPA-Mandat je Zahler: Mit Mandatsreferenz und Datum der Unterschrift. Bei der Firmenlastschrift muss der Zahler das Mandat zusätzlich seiner eigenen Bank bestätigen. Ein Mandat verfällt, wenn es 36 Monate lang nicht genutzt wurde.
  • Vorabankündigung (Pre-Notification): Der Zahler wird vor dem Einzug über Betrag und Termin informiert – standardmäßig 14 Kalendertage vorher, sofern nichts anderes vereinbart ist. Die Ankündigung kann z. B. auf der Rechnung stehen.

Basislastschrift oder Firmenlastschrift

Über local_instrument wird das Verfahren gewählt. Aufbau und Prüfungen der Datei sind für beide Verfahren gleich.

Basislastschrift (CORE) Firmenlastschrift (B2B)
Zahler Verbraucher und Unternehmen nur Unternehmen
Rückgabe durch den Zahler 8 Wochen ohne Angabe von Gründen, 13 Monate bei fehlendem Mandat keine Erstattung bei autorisierter Lastschrift
Mandat Zahler unterschreibt beim Gläubiger zusätzlich Bestätigung bei der Bank des Zahlers
Einreichung spätestens 1 Geschäftstag vor Fälligkeit spätestens 1 Geschäftstag vor Fälligkeit

Eine Datei enthält immer nur ein Verfahren – das schreibt die Deutsche Kreditwirtschaft vor. Werden beide Verfahren benötigt, wird der Service Task zweimal aufgerufen.


Input-Parameter

{
  "local_instrument": "CORE",
  "collection_date": "2026-10-15",
  "creditor": {
    "name": "Mustermann GmbH",
    "iban": "DE89370400440532013000",
    "bic": "COBADEFFXXX",
    "creditor_id": "DE98ZZZ09999999999"
  },
  "transactions": [
    {
      "end_to_end_id": "RE-2026-001",
      "amount": 119.0,
      "mandate_id": "MANDAT-0001",
      "mandate_signature_date": "2026-01-15",
      "debtor": {
        "name": "Kunde GmbH",
        "iban": "DE02120300000000202051"
      },
      "remittance_information": "Rechnung RE-2026-001 vom 01.10.2026"
    },
    {
      "end_to_end_id": "RE-2026-002",
      "amount": 49.9,
      "mandate_id": "MANDAT-0002",
      "mandate_signature_date": "2026-09-20",
      "sequence_type": "FRST",
      "debtor": {
        "name": "Müller & Söhne KG",
        "iban": "DE02500105170137075030",
        "bic": "INGDDEFFXXX"
      },
      "remittance_information": "Rechnung RE-2026-002 vom 01.10.2026"
    }
  ]
}

Allgemeine Angaben:

  • local_instrument: CORE (Basislastschrift, Vorgabe) oder B2B (Firmenlastschrift).
  • collection_date: Fälligkeitsdatum im Format JJJJ-MM-TT. Gilt für alle Lastschriften, die kein eigenes Datum mitbringen.
  • sequence_type: Sequenztyp für alle Lastschriften ohne eigene Angabe (optional, Vorgabe RCUR), siehe Sequenztyp.
  • message_id: Eindeutige Kennung der Datei (optional). Wird sie weggelassen, wird sie automatisch erzeugt. Die Bank erkennt daran doppelt eingereichte Dateien, daher muss jede Datei eine neue Kennung haben.
  • initiating_party_name: Name des Einreichers (optional, Vorgabe: Name des Gläubigers).
  • ultimate_creditor_name: Abweichender Zahlungsempfänger, rein informativ (optional).
  • batch_booking: false, wenn jede Lastschrift einzeln auf dem Kontoauszug erscheinen soll – nur mit entsprechender Vereinbarung mit der Bank (optional, Vorgabe: Sammelbuchung).
  • filename: Dateiname (optional, Vorgabe SEPA-Lastschrift_<Verfahren>_<message_id>.xml).

Gläubiger (creditor):

  • name: Name des Unternehmens (Pflicht).
  • iban: IBAN des Kontos, auf dem die Beträge gutgeschrieben werden (Pflicht). Leerzeichen sind erlaubt.
  • bic: BIC der eigenen Bank (optional, Pflicht nur bei Banken außerhalb des EWR).
  • creditor_id: Gläubiger-Identifikationsnummer (Pflicht).
  • address: Adresse (optional, wird von der Deutschen Kreditwirtschaft nicht empfohlen), siehe Adressen.

Je Lastschrift (transactions):

  • amount: Betrag in Euro als Zahl oder Text mit Punkt, höchstens 2 Nachkommastellen (Pflicht).
  • mandate_id: Mandatsreferenz, bis zu 35 Zeichen (Pflicht).
  • mandate_signature_date: Datum der Mandatsunterschrift (Pflicht).
  • debtor: Zahler mit name und iban (Pflicht), bic und address optional.
  • end_to_end_id: Referenz, die bis zum Zahler durchgereicht wird und bei Rücklastschriften zurückkommt, z. B. die Rechnungsnummer (optional, wird sonst erzeugt). Muss innerhalb der Datei eindeutig sein.
  • remittance_information: Verwendungszweck, bis zu 140 Zeichen (optional, empfohlen).
  • collection_date, sequence_type: Abweichend von den allgemeinen Angaben (optional).
  • ultimate_debtor_name: Abweichender Zahler laut Mandat, z. B. das Kind des Kontoinhabers (optional).
  • purpose_code: Zahlungszweck als vierstelliger ISO-Code, z. B. SUPP (optional).
  • amendment: Angaben zu einem geänderten Mandat (optional), siehe Mandatsänderungen.

Output

{
  "file": {
    "referenceId": "...",
    "filename": "SEPA-Lastschrift_CORE_SDD202610071843056C9B3B.xml",
    "contentType": "application/xml"
  },
  "message_id": "SDD202610071843056C9B3B",
  "local_instrument": "CORE",
  "number_of_transactions": 2,
  "control_sum": "168.90",
  "payment_information": [
    {
      "id": "SDD202610071843056C9B3B-1",
      "collection_date": "2026-10-15",
      "sequence_type": "FRST",
      "number_of_transactions": 1,
      "control_sum": "49.90"
    },
    {
      "id": "SDD202610071843056C9B3B-2",
      "collection_date": "2026-10-15",
      "sequence_type": "RCUR",
      "number_of_transactions": 1,
      "control_sum": "119.00"
    }
  ],
  "warnings": []
}

Erläuterung:

  • file: Referenz auf die erzeugte XML-Datei. Sie kann an einen Datensatz gehängt, per E-Mail verschickt oder in einer Benutzeraufgabe zum Download angeboten werden.
  • message_id: Kennung der Datei. Sie erscheint im Banking-Protokoll und eignet sich als Referenz für den Lastschriftlauf.
  • number_of_transactions, control_sum: Anzahl und Gesamtsumme aller Lastschriften. Diese Werte zeigt auch die Bank beim Hochladen an.
  • payment_information: Die gebildeten Sammler. Je Fälligkeitsdatum und Sequenztyp entsteht ein Sammler.
  • warnings: Hinweise, die den Einzug nicht verhindern, z. B. gekürzte Namen oder ein Fälligkeitsdatum auf einem Feiertag.

Prüfungen

Vor dem Erzeugen der Datei werden alle Angaben geprüft. Werden Fehler gefunden, bricht der Task ab und meldet alle Fehler auf einmal, jeweils mit dem betroffenen Feld:

SEPA-Lastschrift: 4 Fehler in der Eingabe:
- creditor.iban: "DE89370400440532013001" – Prüfziffer stimmt nicht.
- transactions[0].amount: 10.555 hat mehr als 2 Nachkommastellen.
- transactions[0].collection_date: 2026-10-07 ist zu kurzfristig – frühestens 2026-10-08 (Einreichung 1 TARGET-Geschäftstag vor Fälligkeit, Cut-off-Zeit der Bank beachten).
- transactions[0].mandate_id: "/M1" darf nicht mit "/" beginnen oder enden und kein "//" enthalten.

Geprüft werden:

  • IBAN und Gläubiger-ID einschließlich Prüfziffer.
  • Beträge: zwischen 0,01 und 999.999.999,99 Euro, höchstens 2 Nachkommastellen. Anzahl und Summen der Datei und jedes Sammlers werden exakt in Cent berechnet.
  • Referenzen (Mandatsreferenz, End-to-End-Referenz, Dateikennung): nur zulässige Zeichen, höchstens 35 Zeichen, kein / am Anfang oder Ende und kein //. End-to-End-Referenzen müssen innerhalb der Datei eindeutig sein.
  • Mandatsdatum: darf nicht in der Zukunft liegen.
  • Verwendungszweck: höchstens 140 Zeichen.
  • Fälligkeitsdatum, siehe Fristen.

Zum Schluss wird die erzeugte Datei gegen das offizielle Schema der Deutschen Kreditwirtschaft geprüft. Nur eine gültige Datei wird gespeichert.


Fristen und Fälligkeitsdatum

Lastschriften müssen bei Basis- und Firmenlastschrift spätestens einen Geschäftstag vor Fälligkeit bei der Bank eingehen. Maßgeblich ist der TARGET-Kalender: Montag bis Freitag, ausgenommen Neujahr, Karfreitag, Ostermontag, 1. Mai sowie 25. und 26. Dezember.

  • Liegt das Fälligkeitsdatum vor dem nächsten Geschäftstag, bricht der Task mit einem Fehler ab.
  • Fällt das Fälligkeitsdatum auf einen Tag ohne TARGET-Geschäftsbetrieb, wird eine Warnung ausgegeben – die Bank belastet dann am folgenden Geschäftstag.
  • Liegt das Fälligkeitsdatum mehr als 15 Kalendertage in der Zukunft, wird eine Warnung ausgegeben – Banken sind nicht verpflichtet, solche Aufträge anzunehmen.

Cut-off-Zeit der Bank

Jede Bank hat eine Annahmeschluss-Zeit. Wird die Datei danach hochgeladen, gilt sie erst am nächsten Geschäftstag als eingegangen. Die Prüfung im Task kennt diese Uhrzeit nicht – bei knappen Terminen sollte ein Tag Puffer eingeplant werden.


Sequenztyp

Wert Bedeutung
RCUR Folgelastschrift (Vorgabe)
FRST Erstlastschrift
OOFF Einmallastschrift
FNAL Letzte Lastschrift eines Mandats

Seit November 2016 muss eine Erstlastschrift nicht mehr gesondert gekennzeichnet werden. Die Deutsche Kreditwirtschaft empfiehlt, auch für die erste Lastschrift RCUR zu verwenden. Unterschiedliche Sequenztypen in einer Datei sind möglich, sie landen in getrennten Sammlern.


Mandatsänderungen

Hat sich seit dem letzten Einzug etwas am Mandat geändert, wird das bei der nächsten Lastschrift über amendment mitgeteilt:

{
  "amount": 119.0,
  "mandate_id": "MANDAT-0001",
  "mandate_signature_date": "2026-01-15",
  "debtor": {
    "name": "Kunde GmbH",
    "iban": "DE02500105170137075030"
  },
  "amendment": {
    "debtor_account_changed": true
  }
}
  • debtor_account_changed: true, wenn der Zahler eine neue Kontoverbindung mitgeteilt hat. In der Datei wird dann der Code SMNDA (gleiches Mandat, neues Konto) gesetzt, wie es die Deutsche Kreditwirtschaft für jeden Kontowechsel empfiehlt.
  • original_mandate_id: Bisherige Mandatsreferenz, wenn sich die Referenz geändert hat.
  • original_creditor_id, original_creditor_name: Bisherige Gläubiger-ID bzw. bisheriger Name des Gläubigers, z. B. nach einer Umfirmierung.

Adressen

Innerhalb des EWR ist keine Adresse nötig. Liegt die Bank des Gläubigers oder des Zahlers in einem SEPA-Land außerhalb des EWR (z. B. Schweiz, Vereinigtes Königreich, Monaco), sind Adresse und BIC des Zahlers Pflicht.

{
  "address": {
    "street_name": "Bahnhofstrasse",
    "building_number": "1",
    "post_code": "8001",
    "town_name": "Zürich",
    "country": "CH",
    "address_lines": ["c/o Muster AG"]
  }
}
  • town_name und country (zweistelliger ISO-Code) sind Pflicht, sobald eine Adresse angegeben wird.
  • street_name, building_number, post_code und country_sub_division sind optional.
  • address_lines: höchstens 2 zusätzliche Freitextzeilen. Eine Adresse, die nur aus Freitextzeilen besteht, wird nicht mehr akzeptiert.

Zeichensatz

In SEPA-Dateien sind nur bestimmte Zeichen erlaubt. Namen, Verwendungszweck und Adressen werden automatisch angepasst:

  • Deutsche Umlaute, ß, &, *, $ und % bleiben erhalten.
  • Akzente werden entfernt (é → e), € wird zu EUR, @ zu (at), typografische Anführungszeichen und Gedankenstriche zu ' und -, Zeilenumbrüche zu Leerzeichen. Andere nicht zulässige Zeichen werden durch einen Punkt ersetzt.
  • Namen, die länger als 70 Zeichen sind, werden gekürzt; dazu erscheint eine Warnung.

Referenzen wie Mandatsreferenz oder End-to-End-Referenz werden nicht verändert. Enthalten sie unzulässige Zeichen, bricht der Task mit einem Fehler ab.


JSONata-Beispiel

Lastschriften aus einer Liste offener Rechnungen zusammenstellen:

{
  "local_instrument": "CORE",
  "collection_date": $.faelligkeit,
  "creditor": {
    "name": "Mustermann GmbH",
    "iban": "DE89370400440532013000",
    "creditor_id": "DE98ZZZ09999999999"
  },
  "transactions": [$.rechnungen.{
    "end_to_end_id": rechnungsnummer,
    "amount": betrag,
    "mandate_id": kunde.mandatsreferenz,
    "mandate_signature_date": kunde.mandatsdatum,
    "debtor": {
      "name": kunde.name,
      "iban": kunde.iban
    },
    "remittance_information": "Rechnung " & rechnungsnummer
  }]
}

Die Feldnamen (rechnungen, rechnungsnummer, kunde.mandatsreferenz usw.) sind Beispiele und werden an die eigene Datenstruktur angepasst.


Hinweise

  • Einreichung bei der Bank: Der Service Task erzeugt die Datei, übermittelt sie aber nicht. Sie wird im Firmenkunden-Online-Banking hochgeladen oder per EBICS übertragen und dort freigegeben.
  • Rücklastschriften: Rückgaben und Statusmeldungen der Bank werden von diesem Service Task nicht verarbeitet.
  • Elektronische Mandate (E-Mandate) werden nicht unterstützt.
  • Format: pain.008.001.08 nach Anlage 3 des DFÜ-Abkommens, Schema pain.008.001.08_GBIC_5, UTF-8 ohne BOM. Ältere Formate (pain.008.001.02, pain.008.003.02) werden nicht erzeugt.