> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Bankkonto-Prüfung: Kontoinhaberschaft ohne Login

> Didit prüft Kontoinhaberschaft anhand eingegebener Daten ohne Bank-Login – für IBAN, Sort Code, CLABE, CBU, IFSC und mehr.

Die Kontoprüfung bestätigt anhand der eingegebenen Kontodaten, dass ein Bankkonto der Person gehört, die Ihr Workflow bereits verifiziert hat. Es gibt keinen Bank-Login und keinen Einwilligungsbildschirm: Die Person gibt ihr Konto so ein, wie es in ihrem Land üblich ist, und die Bank gleicht den darauf geführten Namen mit dem Namen ab, der in einem früheren Schritt verifiziert wurde.

Sie ist neben dem Bank-Login eine der beiden [Methoden zur Bankverifizierung](https://docs.didit.me/de/core-technology/bank-verification/verification-methods.md), und ihr Methodenwert lautet `account_lookup`. Der Upload von Kontoauszügen und Mikroüberweisungen bleiben Fallbacks nach beiden Methoden, und die Person kann jederzeit [ohne Bank fortfahren](https://docs.didit.me/de/core-technology/bank-verification/fallbacks.md). Um ein Konto von Ihrem Backend aus ohne Sitzung zu prüfen, beispielsweise vor einer Auszahlung, nutzen Sie die [API zur Kontoprüfung](https://docs.didit.me/de/standalone-apis/bank-account-check.md).

> [!NOTE]
>
> Die Bankverifizierung bestätigt anhand einer Identität, die in einem **anderen Schritt** festgestellt wurde, wem ein Konto gehört; sie ist daher allein kein Identitätsnachweis. Platzieren Sie die Ausweisverifizierung, die Datenbankvalidierung, einen Fragebogen oder `expected_details` vor diesem Schritt. Die Person gibt für die Prüfung niemals einen Namen ein: Didit vergleicht immer den Namen, den die Sitzung bereits verifiziert hat.

## Funktionsweise

**1. Die Person wählt ihr Land aus**

Im Schritt „Bankverifizierung“ wählt die Person ein Land aus, das der Schritt anbietet. Sofern die Kontoprüfung dort an erster Stelle steht, öffnet der Schritt ein kurzes Formular im Kontoformat des jeweiligen Landes. Wenn der Bank-Login an erster Stelle steht, wählt die Person **Kontodaten eingeben**, um zum Formular zu gelangen.

**2. Die Person gibt ihre Kontodaten ein**

Beispielsweise eine IBAN, einen Sort Code samt Kontonummer oder eine CLABE. Der Verifizierungsablauf erstellt das Formular anhand der API-Rückgabe für dieses Land, sodass ein später von Didit hinzugefügtes Land auf Ihrer Seite keine Änderungen erfordert.

**3. Didit prüft zuerst das Format**

Bevor etwas abgerechnet wird, prüft Didit jeden Wert: seine Länge, seine Zeichen, seine Prüfziffern und bei einer IBAN, ob sie zum ausgewählten Land gehört. Ein fehlerhafter Wert wird unter Angabe des zu korrigierenden Feldes abgelehnt. Die Person korrigiert ihn direkt an Ort und Stelle, ohne dass ein Versuch verbraucht wird.

**4. Die Bank prüft den Namen auf dem Konto**

Didit führt einen Abgleich mit dem Namen durch, den die Sitzung verifiziert hat. Alles andere, was der Client sendet, wird ignoriert.

**5. Der Schritt trifft die Entscheidung**

Die Antwort wird zu einem Ergebnis zur Kontoinhaberschaft, und die Aktionen des Schritts wandeln dieses genau wie beim Bank-Login in die endgültige Entscheidung um.

## Wo die Prüfung angeboten wird

Die Abdeckung ist länderspezifisch. In der Produktion läuft die Prüfung derzeit in Nigeria, Ghana und Kenia. Didit schaltet sie Land für Land frei, sobald dort eine Route mit festgelegtem Preis verfügbar ist; ein Land ohne solche Route bietet die Prüfung nicht an, und die [Preise für die Bankverifizierung](https://docs.didit.me/de/getting-started/bank-verification-pricing.md) zeigen stets die aktuelle Liste. Länder werden mit der Zeit hinzugefügt, und der Schritt liest stets die aktuelle Liste aus, sodass Sie Ihre Integration bei einer Erweiterung nie anpassen müssen.

Innerhalb eines abgedeckten Landes bestimmen die Methoden des Schritts, ob die Person sie sieht:

* **Die Reihenfolge des Schritts.** `bank_method_order` legt fest, welche Methoden jedes Land anbietet und welche an erster Stelle steht. Der Standardwert `["open_banking", "account_lookup"]` beginnt mit dem Bank-Login und bietet die Kontoprüfung als Ausweichoption an.
* **Die ländereigene Reihenfolge.** `methods` bei einem Land in `bank_countries` überschreibt dort die Reihenfolge des Schritts, beispielsweise `["account_lookup"]` nur für die Kontoprüfung oder `["account_lookup", "open_banking"]`, um damit zu beginnen.
* **Eine Bank mit Störung.** Sofern ein Land die Kontoprüfung anbietet, dient sie auch als Ausweichoption für eine Bank, deren Bank-Login eingeschränkt oder nicht verfügbar ist: Der Schritt wechselt zum Kontoformular, bevor eine Einwilligung eingeholt wird, solange der Person noch Kontoprüfungen zur Verfügung stehen.
* **Die Prüfung läuft über Didits eigene Routen.** Ein Schritt, der über Ihren eigenen Marketplace-Anbieter (`provider_key`) läuft, bietet sie nur an, wenn `fallback_to_native` aktiviert ist.
* **Geschäftskonten.** In einer Unternehmensverifizierungssitzung gleicht die Prüfung ein Geschäftskonto mit dem verifizierten Unternehmen ab – in den Ländern, in denen Didit Geschäftskonten prüft.

Unter [Methoden pro Land auswählen](https://docs.didit.me/de/core-technology/bank-verification/verification-methods.md#methoden-pro-land-auswählen) finden Sie die Regeln, nach denen Speichervorgänge ablaufen.

## Was die Person eingibt

Dies sind die Kontoformate, die das Formular unterstützt. Sie stellen keine Abdeckungsliste dar: Ob die Prüfung in einem Land funktioniert, hängt davon ab, [wo sie angeboten wird](#wo-die-prüfung-angeboten-wird), und der Schritt zeigt stets die exakten Felder für das jeweilige Land an.

| Kontoformat | Länder | Was die Person eingibt |
| - | - | - |
| IBAN | Länder, die IBANs verwenden | Die vollständige IBAN, die zum ausgewählten Land gehören muss |
| Sort Code und Kontonummer | Vereinigtes Königreich | Ein 6-stelliger Sort Code und eine 8-stellige Kontonummer |
| Routing Number und Kontonummer | Vereinigte Staaten | Eine 9-stellige ABA Routing Number und die Kontonummer |
| Transit- und Institutionsnummer | Kanada | Die 8-stellige Transit- und Institutionsnummer (die 5-stellige Transitnummer gefolgt von der 3-stelligen Institutionsnummer) und die Kontonummer |
| BSB und Kontonummer | Australien | Eine 6-stellige BSB und die Kontonummer |
| CLABE | Mexiko | Die 18-stellige CLABE, die die Bank bereits enthält |
| CBU oder CVU | Argentinien | Die 22-stellige CBU oder CVU, die die Bank bereits enthält |
| IFSC und Kontonummer | Indien | Der IFSC mit 11 Zeichen und die Kontonummer |
| NUBAN und Bankcode | Nigeria | Die 10-stellige NUBAN und der Bankcode oder BIC der Bank |
| Kontonummer | Andere Länder | Die Kontonummer sowie ein Bankcode oder BIC, sofern das Land diesen erfordert |

In einigen Ländern fragt das Formular außerdem nach einer Registernummer: bei Geschäftskonten und in einigen wenigen Ländern bei jedem Konto.

Leerzeichen, Bindestriche und Punkte werden entfernt und Buchstaben in Großbuchstaben umgewandelt, bevor ein Wert geprüft wird, sodass die Person ein Konto so eingeben kann, wie ihre Bank es ausweist.

## Aktivieren

Ein neuer Schritt bietet die Kontoprüfung standardmäßig als Backup zur Bank-Anmeldung an. Um direkt damit zu beginnen oder sie als einzige Option anzubieten, setzen Sie `account_lookup` an die erste Stelle der Reihenfolge:

```json theme={null}
{
  "bank_method_order": ["account_lookup", "open_banking"]
}
```

Diese Einstellungen steuern die Prüfung:

| Einstellung | Auswirkung auf die Kontoprüfung |
| - | - |
| `bank_method_order`, `bank_countries.<ISO3>.methods` | Gibt an, ob ein Land die Prüfung anbietet und ob sie vor oder nach der Bank-Anmeldung erscheint. |
| `bank_countries` | Die Prüfung wird nur in den Ländern ausgeführt, die der Schritt anbietet. |
| `bank_reference_identity` | Der Schritt, mit dessen verifiziertem Namen das Konto abgeglichen wird. |
| `bank_account_check_max_attempts` | Wie viele Prüfungen die Person erhält, `1` bis `5` (standardmäßig `3`). Eine separate Zählung neben `bank_max_attempts` der Bank-Anmeldung. |
| `bank_account_check_accept_close_match` | Aktiviert (Standard): Eine knappe Übereinstimmung führt zur Bestätigung der knappen Übereinstimmung oder zu `bank_partial_match_action`. Deaktiviert: Jede knappe Übereinstimmung gilt als keine Übereinstimmung. |
| `bank_name_match_threshold`, `bank_partial_match_floor` | Dieselben Namens-Score-Bereiche wie bei der Bank-Anmeldung: Eine Übereinstimmung ab dem Schwellenwert (standardmäßig 85) und eine knappe Übereinstimmung, der Bereich für teilweise Übereinstimmung, zwischen der Untergrenze (standardmäßig 70) und dem Schwellenwert. |
| `bank_use_provider_score` | Aktiviert (Standard): Der eigene Namens-Score der Prüfung entscheidet, wenn er höher als der von Didit ist oder wenn die Prüfung einen Score, aber keinen Inhabernamen zurückgibt; `ownership.method` lautet dann `provider_only`. Deaktiviert: Eine Antwort ohne Inhabernamen ist `not_verifiable`. |
| `bank_suggest_holder_name` | Aktiviert (Standard): Bei einer knappen Übereinstimmung mit Inhabernamen sieht die Person den Namen und bestätigt, dass es ihr Name ist, oder versucht es mit einem anderen Konto. |

## Ergebnisse

### Prüfungen, die eine Antwort zurückgeben

Jede dieser Prüfungen wird einmal abgerechnet und verbraucht eine der Kontoprüfungen der Person (`bank_account_check_max_attempts`). Bis der Schritt abgeschlossen ist, kann die Person es mit einem anderen Konto erneut versuchen, solange noch Versuche verbleiben. Das Ergebnis steht in `ownership.result`, außer bei einem Konto, das nicht existiert; dies steht in `connection.reason_code`.

| Die Prüfung gibt zurück | Ergebnis | Was entscheidet |
| - | - | - |
| Das Konto gehört der verifizierten Person | `match` | Der Schritt genehmigt, sofern keine andere Prüfung des Schritts etwas anderes vorgibt. |
| Eine knappe Übereinstimmung mit Angabe des Inhabers | `partial_match` | Wenn `bank_suggest_holder_name` aktiviert ist, bestätigt die Person den Namen oder versucht ein anderes Konto. Die Bestätigung beendet den Schritt mit `bank_partial_match_action` (standardmäßig `REVIEW`). |
| Eine knappe Übereinstimmung mit einem Score, aber ohne Inhabername | `partial_match` | `bank_partial_match_action` (standardmäßig `REVIEW`). `ownership.method` lautet `provider_only`. Dies erfordert das aktivierte `bank_use_provider_score` (Standardeinstellung); ist es deaktiviert, lautet die Antwort `not_verifiable`. |
| Das Konto gehört einer anderen Person | `no_match` | `bank_no_match_action` (standardmäßig `DECLINE`). |
| Eine Antwort, bei der kein Name verglichen wurde | `not_verifiable` | `bank_not_verifiable_action` (standardmäßig `REVIEW`). |
| Es existiert kein Konto mit diesen Angaben | `ACCOUNT_NOT_FOUND` | Die Person kann ein anderes Konto versuchen, solange noch Versuche verbleiben. |

Ist `bank_account_check_accept_close_match` deaktiviert, gelten beide knappen Übereinstimmungen stattdessen als `no_match` mit dem Reason-Code `OWNER_NAME_MISMATCH`: Die Person wird nicht aufgefordert, den Namen zu bestätigen, und `bank_no_match_action` entscheidet. Die Bank-Anmeldung behält ihre knappen Übereinstimmungen in jedem Fall bei.

Sobald die Person alle Kontoprüfungen und alle Versuche der Bank-Anmeldung (sofern das Land auch Bank-Anmeldung anbietet) ohne erfolgreiche Verbindung verbraucht hat, bleibt der Schritt geöffnet, sofern er noch den Upload von Kontoauszügen mit verbleibenden Versuchen anbietet: siehe [Der Upload von Kontoauszügen](https://docs.didit.me/de/core-technology/bank-verification/fallbacks.md#der-kontoauszug-upload). Steht kein Weg mehr zur Verfügung, endet der Schritt mit `bank_attempts_exhausted_action` (standardmäßig `DECLINE`), es sei denn, ein früherer Versuch hat bereits zu einer Entscheidung geführt, wie etwa einer Namensabweichung. Diese Entscheidung bleibt dann bestehen.

### Ergebnisse, die nie abgerechnet werden

Keine dieser Situationen verbraucht eine Kontoprüfung. Jede wird in `connection.reason_code` aufgeführt.

| Was geschieht | Reason-Code | Was folgt |
| - | - | - |
| Das Konto wird in der eingegebenen Form abgelehnt, durch Didits Formatprüfung oder durch die Bank | `INVALID_ACCOUNT_INPUT`, solange der Versuch offen bleibt | Der Person wird mitgeteilt, welches Feld korrigiert werden muss, und sie berichtigt es. |
| Die Prüfung ist derzeit nicht verfügbar | `PROVIDER_UNAVAILABLE` | Die Person kann es erneut versuchen. |
| Die Sitzung verfügt über keinen verifizierten Namen zum Abgleich | `REFERENCE_IDENTITY_MISSING` | Die Prüfung wird nicht ausgeführt. Der Schritt endet mit `bank_reference_identity_missing_action` (standardmäßig `REVIEW`). |

### In der Entscheidung

Die Sitzungsentscheidung listet den Schritt unter `bank_verifications[]` auf. Sobald ein Konto ausgewertet wurde, lautet `method` `account_lookup`. Solange kein Konto ausgewertet wurde, sind `method` und `ownership` `null`, und `connection.reason_code` nennt den Grund, zum Beispiel `ACCOUNT_NOT_FOUND`, `PROVIDER_UNAVAILABLE` oder `REFERENCE_IDENTITY_MISSING`.

Für die Prüfung wird keine Bank ausgewählt, daher sind `connection.institution_id`, `connection.institution_name` und `connection.oauth` `null`, und `connection.institution_country` ist das von der Person ausgewählte Land. Didit behält nach Abschluss des Schritts keinen Zugriff auf das Konto, sodass eine Prüfung, die mit einer Übereinstimmung endete, `connection.status: revoked` mit `reason_code: VERIFICATION_COMPLETED` anzeigt. Das Ergebnis selbst verbleibt in der Sitzung.

Eine Kontoprüfung liest weder Salden, Transaktionen noch Einkommen aus. Fordert der Schritt diese an, listet `financial_data.not_collected` sie auf; siehe [Finanzdaten erfordern eine Bank-Anmeldung](https://docs.didit.me/de/core-technology/bank-verification/verification-methods.md#finanzdaten-erfordern-bankanmeldung).

```json theme={null}
{
  "bank_verifications": [
    {
      "status": "Approved",
      "method": "account_lookup",
      "connection": {
        "status": "revoked",
        "institution_id": null,
        "institution_name": null,
        "institution_country": "NGA",
        "oauth": null,
        "attempts": 1,
        "reason_code": "VERIFICATION_COMPLETED"
      },
      "ownership": {
        "result": "match",
        "method": "exact"
      },
      "financial_data": {
        "balances": null,
        "transactions": null,
        "income": null,
        "categorization": null,
        "not_collected": []
      },
      "billing": {
        "route": "native",
        "billed": true,
        "marketplace_fee": null,
        "usage_type": "bank_verification"
      }
    }
  ]
}
```

Das Beispiel zeigt nur die Felder, die auf dieser Seite behandelt werden. Sobald ein Konto ausgewertet wurde, lesen Sie `method` aus, um eine Kontoprüfung von der Bank-Anmeldung zu unterscheiden: Es ist das dafür vorgesehene Feld.

### In Workflow-Regeln und Berichten

* **Verzweigungen und Statusregeln:** `bank.method` ist `account_lookup` (**Kontoprüfung** im Regel-Builder), und `bank.reason_code` kann `ACCOUNT_NOT_FOUND` sein.
* **Sitzungs-PDF-Bericht:** Die Zeile **Verifizierungsmethode** lautet **Kontoprüfung**.

## Preise

Jede Prüfung, die eine Antwort zurückgibt, entspricht einer Gebühr für die Bankverifizierung: Eine Übereinstimmung, eine ungefähre Übereinstimmung, keine Übereinstimmung, ein Konto, das nicht verifiziert werden konnte, und ein Konto, das nicht gefunden wurde, werden alle abgerechnet. Ein vor der Prüfung abgelehnter Wert, eine nicht verfügbare Prüfung und eine Sitzung ohne verifizierten Namen zum Abgleich werden niemals abgerechnet. Der Preis wird pro Land festgelegt: siehe [Preise für Bankverifizierung](https://docs.didit.me/de/getting-started/bank-verification-pricing.md).

Die Kontoprüfung ist eine eigenständige kostenpflichtige Methode, niemals ein Fallback: `bank_fallback_used_action` wird dafür nicht ausgelöst. Nach einer abgerechneten Prüfung sind Mikroeinzahlungen und das Hochladen des Kontoauszugs in derselben Sitzung ohne zusätzliche Kosten enthalten, sofern der Schritt sie aktiviert und das Land sie anbietet.

## In der Sandbox testen

In einer Sandbox-Anwendung läuft die Prüfung auf einem simulierten Dienst und es wird nichts abgerechnet. Die Sandbox bietet beide Methoden in jedem Land in der durch den Schritt festgelegten Reihenfolge an: Wählen Sie bei der Standardreihenfolge **Kontodaten eingeben**, um die Prüfung auszuführen, oder setzen Sie `bank_method_order` auf `["account_lookup", "open_banking"]`, um damit zu starten.

Die letzten vier Zeichen des von der Person eingegebenen Kontos (die IBAN, andernfalls die Kontonummer) bestimmen die Antwort. Bei jeder anderen Endung wird der verifizierte Name als übereinstimmend betrachtet.

| Endet auf | Antwort |
| - | - |
| `0001` | Eine ungefähre Übereinstimmung, die den Kontoinhaber nennt: Die Person wird aufgefordert, den Namen zu bestätigen. Wenn `bank_account_check_accept_close_match` deaktiviert ist, keine Übereinstimmung. |
| `0002` | Eine ungefähre Übereinstimmung ohne Namen des Inhabers: `bank_partial_match_action` entscheidet. Wenn `bank_use_provider_score` deaktiviert ist, lautet die Antwort `not_verifiable`; wenn `bank_account_check_accept_close_match` deaktiviert ist, keine Übereinstimmung. |
| `0003` | Keine Übereinstimmung: Das Konto gehört einer anderen Person. Verbraucht eine Prüfung. |
| `0004` | Beantwortet, aber ohne Namensvergleich (`not_verifiable`). Verbraucht eine Prüfung. |
| `0005` | Die Prüfung ist nicht verfügbar (`PROVIDER_UNAVAILABLE`). Wiederholungsversuch kostenlos. |
| `0006` | Kein Konto mit diesen Angaben (`ACCOUNT_NOT_FOUND`). Verbraucht eine Prüfung. |
| `0009` | Bei der Eingabe abgelehnt: Die Person wird aufgefordert, das Feld zu korrigieren. Der Versuch bleibt offen. |

Die Sandbox erfasst jede beantwortete Prüfung kostenlos als Nutzung, sodass Sie sehen können, welche Prüfungen eine Live-Sitzung abrechnen würde.

Eine IBAN, eine CLABE und eine CBU enthalten Prüfziffern, sodass Sie deren letzte vier Zeichen nicht einfach ändern können. Verwenden Sie diese Werte, die jede Formatprüfung bestehen:

> [tab] Deutschland (IBAN)
>
> | Antwort | IBAN |
> | - | - |
> | Übereinstimmung | `DE43123456789012345678` |
> | `0001` | `DE62123456789012340001` |
> | `0002` | `DE35123456789012340002` |
> | `0003` | `DE08123456789012340003` |
> | `0004` | `DE78123456789012340004` |
> | `0005` | `DE51123456789012340005` |
> | `0006` | `DE24123456789012340006` |
> | `0009` | `DE40123456789012340009` |

> [tab] Vereinigtes Königreich
>
> Sort-Code `123456`, mit:
>
> | Antwort | Kontonummer |
> | - | - |
> | Übereinstimmung | `12345678` |
> | `0001` | `12340001` |
> | `0002` | `12340002` |
> | `0003` | `12340003` |
> | `0004` | `12340004` |
> | `0005` | `12340005` |
> | `0006` | `12340006` |
> | `0009` | `12340009` |

> [tab] Vereinigte Staaten
>
> Routing-Nummer `021000021`, mit:
>
> | Antwort | Kontonummer |
> | - | - |
> | Übereinstimmung | `000123456789` |
> | `0001` | `000123450001` |
> | `0002` | `000123450002` |
> | `0003` | `000123450003` |
> | `0004` | `000123450004` |
> | `0005` | `000123450005` |
> | `0006` | `000123450006` |
> | `0009` | `000123450009` |

> [tab] Mexiko (CLABE)
>
> | Antwort | CLABE |
> | - | - |
> | Übereinstimmung | `002010077777777771` |
> | `0001` | `002010077777780001` |
> | `0002` | `002010077777750002` |
> | `0003` | `002010077777720003` |
> | `0004` | `002010077777790004` |
> | `0005` | `002010077777760005` |
> | `0006` | `002010077777730006` |
> | `0009` | `002010077777740009` |

> [tab] Argentinien (CBU)
>
> | Antwort | CBU |
> | - | - |
> | Übereinstimmung | `2850590940090418135201` |
> | `0001` | `2850590940090418160001` |
> | `0002` | `2850590940090418170002` |
> | `0003` | `2850590940090418180003` |
> | `0004` | `2850590940090418190004` |
> | `0005` | `2850590940090418100005` |
> | `0006` | `2850590940090418110006` |
> | `0009` | `2850590940090418140009` |

> [tab] Indien
>
> IFSC `ALLA0211480`, mit:
>
> | Antwort | Kontonummer |
> | - | - |
> | Übereinstimmung | `123456789007` |
> | `0001` | `123456780001` |
> | `0002` | `123456780002` |
> | `0003` | `123456780003` |
> | `0004` | `123456780004` |
> | `0005` | `123456780005` |
> | `0006` | `123456780006` |
> | `0009` | `123456780009` |

Die [API zur Kontoprüfung](https://docs.didit.me/de/standalone-apis/bank-account-check.md) antwortet für einen Sandbox-Schlüssel mit denselben Endungen, ohne Sitzung.

Unter [Sandbox-Tests](https://docs.didit.me/de/integration/sandbox-testing.md) erfahren Sie, wie Sandbox-Anwendungen im Allgemeinen funktionieren.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.