Guides

Lastschriften zuordnen: SEPA-Mandate und Verträge abgleichen

Nutze die SEPA-Mandatsreferenz, um Lastschriften deinen Verträgen zuzuordnen. Mit Praxisbeispiel und Prüfregeln für deine API-Anbindung.

Ein Mann sitzt vor Regalen voller Archivkartons; zwei schwebende Dokumente vor ihm sind durch eine leuchtende Linie mit Eurozeichen verbunden AI generated

Zwei Lastschriften vom selben Mobilfunkanbieter, beide über 29,90 Euro. Eine gehört zum Telefon im Büro, die andere zum Vertrieb. Im nächsten Monat steigt einer der Beträge. Wer die Buchungen anhand von Empfängername und Betrag sortiert, muss jetzt wieder die Rechnungen öffnen.

Die Referenz des SEPA-Mandats kann diese Zuordnung erleichtern. Wenn du sie einmal mit dem passenden Vertrag verknüpft hast, hilft sie dir, spätere Lastschriften wiederzufinden. Die Kontoflux.io-API liefert sie als counterpart.mandateReference, sofern sie für die Buchung vorliegt. Zusammen mit der Gläubiger-ID unter counterpart.creditorId kannst du darauf einen Abgleich in deiner eigenen Anwendung aufbauen.

Wie die Referenz ein SEPA-Mandat kennzeichnet

Ein SEPA-Mandat ist die Ermächtigung zum Einzug per SEPA-Lastschrift. Eindeutig wird es durch die Kombination aus Mandatsreferenz und Gläubiger-Identifikationsnummer, wie die Deutsche Bundesbank erläutert. Verschiedene Gläubiger können dieselbe Referenz verwenden. Eine Suche nach der Zeichenfolge allein kann deshalb Buchungen unterschiedlicher Anbieter finden.

Ein SEPA-Mandat kann wiederkehrende Einzüge abdecken. Der European Payments Council beschreibt SEPA-Lastschriften sowohl für einmalige als auch für wiederkehrende Zahlungen. Dieselbe Mandatsreferenz kann also in mehreren Monaten auftauchen. Welche einzelne Rechnung damit bezahlt wurde, ergibt sich erst aus dem Abgleich mit deinen Rechnungsdaten.

Zwei Verträge beim selben Anbieter auseinanderhalten

Nehmen wir eine fiktive Agentur mit zwei Mobilfunkverträgen. In diesem Beispiel hat jeder Vertrag ein eigenes SEPA-Mandat. Das Team hat die Referenzen anhand seiner Vertragsunterlagen geprüft und einer Kostenstelle zugeordnet.

Fiktive Lastschriften desselben Anbieters vom selben Geschäftskonto
BuchungSEPA-MandatsreferenzBestätigter VertragAbbuchung
5. August0001042Teamtelefon Vertrieb29,90 €
5. August0001043Telefon Büro29,90 €
5. September0001042Teamtelefon Vertrieb34,90 €
5. September0001043Telefon Büro29,90 €

Obwohl beide Verträge im August gleich viel kosten, lassen sich ihre Buchungen über die bekannten SEPA-Mandate auseinanderhalten. Im September bleibt die Abbuchung über 34,90 Euro beim Vertrag des Vertriebs. Die Differenz von fünf Euro wird zur Rückfrage: zusätzlicher Verbrauch, ein Tarifwechsel oder ein Fehler? Die Rechnung erklärt den Grund.

Prüfe bei deinen eigenen Verträgen, ob diese Trennung tatsächlich besteht. Ein SEPA-Mandat kann mehrere Forderungen oder Verträge abdecken. Dann grenzt die Referenz den Kreis der passenden Vorgänge ein; für die weitere Aufteilung brauchst du zusätzliche Angaben. Dasselbe Vorgehen eignet sich etwa für Stromabschläge mehrerer Standorte, wenn dafür getrennte SEPA-Mandate bestehen.

Die SEPA-Mandatsreferenz aus der API lesen

Über GET /v1/WORKSPACE_ID/transactions erhältst du ein Array mit Transaktionen. Dieser gekürzte, frei erfundene Ausschnitt zeigt eine einzelne Buchung aus der Antwort:

{
  "id": 123456789,
  "accountId": 12456,
  "amount": -34.9,
  "currency": "EUR",
  "bookingDate": "2026-09-05T00:00:00.000Z",
  "counterpart": {
    "name": "Beispiel Mobilfunk",
    "mandateReference": "0001042",
    "creditorId": "DE98ZZZ09999999999"
  }
}

mandateReference und creditorId sind Zeichenketten. Behalte führende Nullen bei und wandle die Kennungen nicht in Zahlen um. Wenn kein Wert vorliegt, fehlt das jeweilige Feld in der Antwort. Auch eine Mandatsreferenz im CSV-Export deiner Bank garantiert nicht, dass sie über den verbundenen Bankzugang bereitgestellt wird. Die Dokumentation zur SEPA-Mandatsreferenz zeigt das Antwortformat und den Umgang mit fehlenden Werten.

Vergleiche Gläubiger-ID und SEPA-Mandatsreferenz mit den geprüften Angaben aus deinen Unterlagen zum SEPA-Mandat oder zum Vertrag. Fehlt eine der beiden Kennungen, bleibt die Zuordnung zur Prüfung offen. Gleicher Empfängername oder gleiche Referenz allein reichen für eine eindeutige Zuordnung nicht aus.

Aus einer bekannten Referenz wird ein Zuordnungsvorschlag

Lege in deiner Anwendung eine Liste der bestätigten SEPA-Mandate an: Gläubiger-ID, Referenz, zugehörige Verträge und bei Bedarf Kostenstelle. Speichere dazu, anhand welcher Unterlagen du die Zuordnung geprüft hast. Neue oder geänderte SEPA-Mandate brauchen eine erneute Prüfung.

Beim Abruf begrenzt du die Transaktionen auf das relevante Konto und den Buchungszeitraum. Lade auch die weiteren Ergebnisseiten. Die API-Codebeispiele erklären den Abruf mit einem Bearer-Schlüssel und die Seitennavigation. Danach kannst du nach exakt übereinstimmender Gläubiger-ID und SEPA-Mandatsreferenz suchen:

// transactions enthält die abgerufenen Transaktionen.
const knownMandate = {
  accountId: 12456,
  mandateReference: '0001042',
  creditorId: 'DE98ZZZ09999999999',
};

const candidates = transactions.filter(transaction =>
  transaction.accountId === knownMandate.accountId &&
  transaction.counterpart?.mandateReference ===
    knownMandate.mandateReference &&
  transaction.counterpart?.creditorId === knownMandate.creditorId &&
  transaction.amount < 0 &&
  transaction.currency === 'EUR'
);

// Kandidaten zur weiteren Prüfung, noch keine Rechnungszuordnung.
console.log(candidates);

Dieser Code sammelt ausgehende Euro-Buchungen mit beiden bekannten Kennungen als Kandidaten. Fehlt die Gläubiger-ID oder die SEPA-Mandatsreferenz, nimmt er die Buchung nicht auf. Für die Rechnungszuordnung prüft deine Anwendung anschließend den Betrag und den Abrechnungszeitraum anhand der Rechnungsdaten. Bei mehreren möglichen Verträgen bleibt der Vorschlag zur manuellen Klärung offen.

Für eine bekannte SEPA-Mandatsreferenz ist ein exakter Vergleich sinnvoll. Eine ähnliche Zeichenfolge kann bereits ein anderes SEPA-Mandat bezeichnen. Die Suche nach ähnlichen Zahlungsreferenzen hilft bei der Kandidatensuche, ersetzt diese Prüfung aber nicht.

Jede Lastschrift bleibt eine eigene Buchung

Nutze die Transaktions-ID innerhalb des Workspaces, um bereits verarbeitete Buchungen wiederzuerkennen. Die Mandatsreferenz eignet sich dafür nicht: Die August- und die September-Lastschrift aus dem Beispiel sind zwei eigene Umsätze mit derselben Referenz. Speichere beide mit Datum, Betrag und ihrer jeweiligen Zuordnung. So bleibt auch eine Betragsänderung sichtbar.

Berücksichtige später eingehende Rücklastschriften und Erstattungen als eigene Vorgänge und prüfe ihren Bezug zur ursprünglichen Zahlung. Der European Payments Council beschreibt solche Ausnahmen im Lastschriftverfahren. Ein gefundener Umsatz allein bestätigt deshalb keinen endgültig abgeschlossenen Zahlungsvorgang.

Buchungen ohne SEPA-Mandatsreferenz oder Gläubiger-ID gehören in eine separate Prüfliste. Suche dort mit den übrigen Angaben weiter und halte unsichere Zuordnungen offen. Auch ein fehlender Treffer kann am gewählten Zeitraum oder am Datenstand liegen: Ein API-Abruf liest die bereits importierten Umsätze und startet keinen neuen Abruf bei der Bank.

Mit einem Anbieter und zwei Monaten beginnen

Wähle einen Anbieter, dessen Verträge du kennst. Prüfe die SEPA-Mandatsreferenzen in den vorhandenen Buchungen, bestätige ihre Zuordnung und vergleiche zwei Monate. Damit siehst du, welche Einzüge sich wiederfinden lassen und welche Angaben für deinen Rechnungsabgleich noch fehlen.

Mit der Kontoflux.io-API baust du diesen Ablauf in deine Anwendung ein. Wenn du zunächst deine laufenden Kosten erfassen möchtest, hilft dir der Beitrag zum Erkennen und Prüfen von Abos beim Aufbau einer Vertragsübersicht.

Passend dazu

Eine Frau lehnt sich am Laptop entspannt zurück, auf dem Schreibtisch liegen Belege und eine Bankkarte neben einem Kreisdiagramm aus Papier AI generated

Was läuft da jeden Monat? Abos erkennen und Kosten prüfen

Artikel lesen
Ein Mann gleicht eine Rechnung mit zwei Zahlungsbelegen ab, grüne Bänder verbinden die Papiere neben seinem Laptop AI generated

Ist die Rechnung bezahlt? Zahlungseingänge automatisch zuordnen

Artikel lesen
Alle Blogbeiträge ansehen