> ## 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.

# Kontoprüfungs-API: Auszahlungskonto verifizieren

> Prüfen Sie mit Didit, ob ein Bankkonto der genannten Person oder Firma gehört, bevor Sie Geld überweisen. Keine Sitzung und keine Anmeldung nötig.

> [!NOTE]
>
> Im Produktivbetrieb läuft die Kontoprüfung in Nigeria, Ghana und Kenia.
> Ein anderes Land wird mit `404` und `code: country_not_covered` beantwortet und nicht berechnet.
> Weitere Länder kommen nach und nach hinzu. Die [Preise für Bank Verification](https://docs.didit.me/de/getting-started/bank-verification-pricing.md) zeigen immer, was jedes Land aktuell bietet.

Ihr Backend sendet den Namen und das Konto und liest das Ergebnis aus. Dabei handelt es sich um die [Kontoprüfung](https://docs.didit.me/de/core-technology/bank-verification/account-check.md) des Schritts Bank Verification ohne die Person.

## Das Konto so übermitteln, wie das jeweilige Land es schreibt

| Land | `account` |
| - | - |
| IBAN-Länder | `{"iban": "..."}` |
| Vereinigtes Königreich | `{"sort_code": "...", "account_number": "..."}` |
| Vereinigte Staaten | `{"routing_number": "...", "account_number": "..."}` |
| Kanada | `{"transit_institution": "...", "account_number": "..."}` |
| Australien | `{"bsb": "...", "account_number": "..."}` |
| Indien | `{"ifsc": "...", "account_number": "..."}` |
| Nigeria | `{"bank_code": "...", "account_number": "..."}`, mit dem 6-stelligen NIP-Code der Bank (Access Bank ist `000014`) und der 10-stelligen NUBAN |
| Ghana | `{"bank_code": "...", "account_number": "..."}`, mit dem 3-buchstabigen Code der Bank (GCB Bank ist `GCB`) |
| Kenia | `{"bank_code": "...", "account_number": "..."}`, mit dem 2-stelligen Code der Bank (KCB ist `01`) |
| Mexiko | `{"clabe": "..."}` |
| Argentinien | `{"cbu_cvu": "..."}` |

Manche Länder verlangen zusätzlich einen `bic` und bei einem Geschäftskonto eine `registration_id`. Leerzeichen, Bindestriche und Punkte werden ignoriert. Ein Schlüssel, den die Prüfung des Landes benötigt und nicht erhält, führt zu einem `400`, das ihn benennt, zum Beispiel `"field": "account.bank_code", "reason": "required"`.

Senden Sie `holder.full_name`, um das Konto einer Person zu prüfen, oder `holder.business_name`, um das Konto eines Unternehmens zu prüfen.

## Die Einwilligung des Kontoinhabers übermitteln

In manchen Ländern benötigt die Kontoprüfung vor jeder Prüfung die ausdrückliche Einwilligung des Kontoinhabers.
Holen Sie sie in Ihrem Produkt ein und senden Sie dann `"consent": true`.
Ohne sie wird eine Prüfung in diesen Ländern mit einem `400` (`field: consent`, `reason: required`) abgelehnt und nicht berechnet.
Anderswo ist `consent` optional. Wenn Sie es senden, speichert Didit es zusammen mit den Kosten der Prüfung.
Ein Sandbox-Schlüssel verlangt die Einwilligung in denselben Ländern wie ein Produktionsschlüssel.

## Das Ergebnis auswerten

| `result` | Bedeutung | Typischer nächster Schritt |
| - | - | - |
| `match` | Die Bank führt das Konto unter dem von Ihnen gesendeten Namen. | Geld überweisen. |
| `close_match` | Die Bank führt das Konto unter einem ähnlichen Namen. `holder_name` ist dieser Name, sofern die Bank ihn zurückgegeben hat. | `holder_name` vergleichen oder die Person um Bestätigung bitten. |
| `no_match` | Die Bank führt das Konto unter einem anderen Namen oder es gibt kein solches Konto. | Geld nicht überweisen. |
| `cannot_verify` | Die Bank hat geantwortet, ohne den Namen zu vergleichen, zum Beispiel bei einem gesperrten oder geschlossenen Konto. | Ihre eigene Richtlinie anwenden, zum Beispiel ein anderes Konto anfordern. |

## Abrechnung und Wiederholungen

Jede Prüfung, die die Bank beantwortet, wird einmal zum [Preis der Kontoprüfung](https://docs.didit.me/de/getting-started/bank-verification-pricing.md) des Landes des Kontos berechnet, unabhängig vom Ergebnis. Eine Anfrage, die mit einem Fehler beantwortet wird, wird nie berechnet: ein abgelehnter Payload (`400`), kein Guthaben (`402`), ein Konto, für das noch keine Prüfung angeboten wird (`404`), oder eine Bank, die nicht antworten konnte (`503`).

Es gibt keinen Idempotenz-Schlüssel und keinen Endpoint, um eine Prüfung nachträglich abzurufen. Eine wiederholte Anfrage führt eine neue Prüfung mit einer neuen `request_id` durch und wird erneut berechnet. Speichern Sie deshalb die Antwort. Didit speichert nur die Belastung mit der Request-ID, dem Land, dem Ergebnis und dem maskierten Konto, niemals den Namen oder die vollständige Kontonummer.

## In der Sandbox testen

Ein Sandbox-API-Schlüssel ruft keine Bank auf und wird nicht berechnet. Die letzten 4 Zeichen der IBAN, andernfalls der Kontonummer, bestimmen die Antwort:

| Endet auf | Antwort |
| - | - |
| `0001` | `close_match`, mit einem `holder_name` |
| `0002` | `close_match`, `holder_name: null` |
| `0003`, `0006` | `no_match` |
| `0004` | `cannot_verify` |
| `0005` | `503`, `account_check_unavailable` |
| `0009` | `400`, `reason: rejected` |
| Alles andere | `match` |

Eine IBAN, eine CLABE und eine CBU enthalten Prüfziffern. Verwenden Sie deshalb die [Sandbox-Werte](https://docs.didit.me/de/core-technology/bank-verification/account-check.md#in-der-sandbox-testen), die jede Formatprüfung bestehen.

## Zugriff

Authentifizieren Sie sich mit dem `x-api-key` Ihrer Anwendung oder mit deren Client-Credentials-Bearer-Token. Ein API-Schlüssel mit eingeschränkten Berechtigungen benötigt Schreibzugriff auf Sitzungen. Für den Endpoint gilt dasselbe Rate-Limit für Schreibzugriffe von 300 Anfragen pro Minute und API-Schlüssel.


## OpenAPI

````yaml de/openapi-25.json POST /v3/bank/account-check/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API für Ausweisverifizierung. Authentifizierung über den x-api-key-Header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/bank/account-check/:
    post:
      tags:
        - Standalone APIs
      summary: Bankkonto prüfen
      description: >-
        Prüfen Sie, ob ein Bankkonto der von Ihnen genannten Person oder dem
        Unternehmen gehört, bevor Sie Geld dorthin überweisen. Keine Sitzung und
        keine Anmeldung: Senden Sie den Namen und das Konto, lesen Sie das
        Ergebnis ab. Es handelt sich um die
        [Kontoprüfung](/de/core-technology/bank-verification/account-check) des
        Bankverifizierungs-Schritts, ausgeführt über Ihr Backend.


        **Was Sie senden.** Das Land (`country`, ISO 3166-1 Alpha-3) des Kontos,
        das Konto (`account`) in der für dieses Land üblichen Schreibweise sowie
        den Namen des Inhabers (`holder`): `full_name` für eine Person oder
        `business_name` für ein Unternehmen. Mit einem Unternehmensnamen wird
        ein Geschäftskonto geprüft.


        **Was Sie zurückerhalten.** `result` ist `match`, `close_match`,
        `no_match` oder `cannot_verify`. Bei einem `close_match` ist
        `holder_name` der Name, unter dem die Bank das Konto führt, sofern die
        Bank diesen zurückgegeben hat. `account` wird maskiert auf die letzten 4
        Zeichen zurückgegeben.


        **Abrechnung.** Jede von der Bank beantwortete Prüfung wird einmal zum
        Kontoprüfungspreis des Kontolandes abgerechnet, unabhängig vom Ergebnis:
        Ein `no_match`, ein nicht existierendes Konto und ein `cannot_verify`
        werden ebenfalls abgerechnet. Eine Anfrage, die mit einem Fehler
        beantwortet wird, wird nie abgerechnet.


        **Jede Anfrage ist eine neue Prüfung.** Es gibt keinen
        Idempotenz-Schlüssel und keinen Endpoint, um eine Prüfung nachträglich
        abzurufen; eine wiederholte Anfrage wird daher erneut ausgeführt und
        abgerechnet. Speichern Sie die Antwort.


        **Sandbox.** Verwenden Sie einen Sandbox-API-Schlüssel mit den
        Beispielkontodaten. Ein Sandbox-Schlüssel ruft keine Bank auf und
        verursacht keine Kosten. Die letzten 4 Zeichen der IBAN, andernfalls der
        Kontonummer, bestimmen die Antwort: `0001` ein `close_match` mit einem
        `holder_name`, `0002` ein `close_match` ohne diesen, `0003` und `0006`
        ein `no_match`, `0004` `cannot_verify`, `0005` ein `503` und `0009` ein
        `400`. Jede andere Endung ergibt ein `match`.


        **API-Schlüssel.** Ein API-Schlüssel mit Scopes benötigt Schreibzugriff
        auf Sitzungen.
      operationId: post_v3_bank_account_check
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankAccountCheckRequest'
            examples:
              Person, Nigeria:
                summary: >-
                  Ein Bankcode und eine Kontonummer, abgeglichen mit dem Namen
                  einer Person
                value:
                  country: NGA
                  account:
                    bank_code: '000014'
                    account_number: '0123450001'
                  holder:
                    full_name: Maria Oliveira
                  vendor_data: payout_20481
              Company, Nigeria:
                summary: >-
                  Ein Bankcode und eine Kontonummer, abgeglichen mit dem Namen
                  eines Unternehmens
                value:
                  country: NGA
                  account:
                    bank_code: '000014'
                    account_number: '0123456789'
                  holder:
                    business_name: Northwind Trading Ltd
      responses:
        '200':
          description: >-
            Die Bank hat geantwortet. Die Prüfung wird abgerechnet, unabhängig
            vom Ergebnis.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckResponse'
              examples:
                Close match:
                  summary: Die Bank führt das Konto unter einem ähnlichen Namen
                  value:
                    request_id: c2f4a9e0-7b1d-4c3a-9e55-1d0a6b8f2a47
                    result: close_match
                    holder_name: MARIA R OLIVEIRA
                    account: '****0001'
                    vendor_data: payout_20481
                    created_at: '2026-10-21T14:32:08Z'
                Match:
                  summary: Die Bank führt das Konto unter dem übermittelten Namen
                  value:
                    request_id: 5b0e2d7c-41a8-4f6e-9c3b-8e7d1a2f6c90
                    result: match
                    holder_name: null
                    account: '****6789'
                    vendor_data: null
                    created_at: '2026-10-21T14:35:41Z'
        '400':
          description: >-
            Im übermittelten Zustand abgelehnt und nicht abgerechnet. `field`
            nennt das zu korrigierende Feld im Body und `reason` gibt den Grund
            an, mit denselben Gründen, die das gehostete Kontoformular anzeigt.
            Es wird nur das erste abgelehnte Feld gemeldet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Missing field:
                  summary: Die Prüfung des Landes erfordert einen Bankcode
                  value:
                    detail: The bank code is not valid (required).
                    code: invalid_account_input
                    field: account.bank_code
                    reason: required
                Invalid IBAN:
                  summary: Die IBAN hat die falsche Länge für ihr Land
                  value:
                    detail: The iban is not valid (length).
                    code: invalid_account_input
                    field: account.iban
                    reason: length
                Refused by the bank:
                  summary: Die Bank hat das Konto in der übermittelten Form abgelehnt
                  value:
                    detail: The account was refused as typed (rejected).
                    code: invalid_account_input
                    field: account.account_number
                    reason: rejected
                No name:
                  summary: '`holder` enthält weder `full_name` noch `business_name`'
                  value:
                    detail: >-
                      Send full_name for a person or business_name for a
                      company.
                    code: invalid_account_input
                    field: holder
                    reason: required
                Consent required:
                  summary: >-
                    Die Kontoprüfung des Landes erfordert die Einwilligung des
                    Kontoinhabers
                  value:
                    detail: >-
                      Account checks in this country need the account holder's
                      explicit consent. Ask for it, then send `consent=true`.
                    code: invalid_account_input
                    field: consent
                    reason: required
        '401':
          description: >-
            Der API-Schlüssel mit eingeschränktem Geltungsbereich ist
            abgelaufen.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Expired key:
                  summary: Das Ablaufdatum des Schlüssels ist überschritten
                  value:
                    detail: This API key has expired.
        '402':
          description: >-
            Die Überprüfung kann nicht bezahlt werden und wurde daher nicht
            ausgeführt. Laden Sie Ihr Guthaben auf und senden Sie sie erneut.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Out of credit:
                  summary: Ihr Guthaben reicht für eine Prüfung nicht aus
                  value:
                    detail: >-
                      You don't have enough credits to perform this request.
                      Please top up at https://business.didit.me
                    code: insufficient_credits
                Not in your contract:
                  summary: Ihr Vertrag enthält keinen Preis für die Account-Check-API
                  value:
                    detail: >-
                      Your contract does not price the Account check API.
                      Contact your account manager.
                    code: contract_rate_missing
        '403':
          description: >-
            Der `x-api-key`-Header oder das Bearer-Token fehlt oder ist
            ungültig, die Anfrage stammt von einer Adresse außerhalb der
            IP-Liste des Schlüssels oder ein berechtigungseingeschränkter
            Schlüssel hat keinen Schreibzugriff auf Sitzungen.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Missing or invalid credentials:
                  summary: Kein gültiger API-Schlüssel oder Token
                  value:
                    detail: You do not have permission to perform this action.
                No sessions write:
                  summary: >-
                    Ein Schlüssel mit eingeschränktem Geltungsbereich ohne
                    Schreibzugriff auf Sitzungen
                  value:
                    detail: This API key has no write access to sessions.
        '404':
          description: >-
            Keine Kontoprüfung unterstützt dieses Konto bisher, daher wurde
            nichts geprüft oder abgerechnet. `country_not_covered`: Keine
            unterstützt dessen Land oder diesen Kontotyp (Privatperson oder
            Unternehmen) dort. `bank_not_covered`: Keine unterstützt dessen
            Bank.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Country not covered:
                  summary: Keine Kontoprüfung unterstützt das Land
                  value:
                    detail: No account check serves this country yet.
                    code: country_not_covered
                Bank not covered:
                  summary: Keine Kontoprüfung unterstützt die Bank des Kontos
                  value:
                    detail: No account check serves this account's bank yet.
                    code: bank_not_covered
        '429':
          $ref: '#/components/responses/RateLimitedWrite'
        '503':
          description: >-
            Die Bank konnte nicht antworten. Es wurde nichts geprüft oder
            abgerechnet; senden Sie die Prüfung später erneut.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountCheckError'
              examples:
                Unavailable:
                  summary: Die Bank hat nicht geantwortet
                  value:
                    detail: >-
                      The account check is temporarily unavailable and this
                      request was not charged. Please try again.
                    code: account_check_unavailable
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST https://verification.didit.me/v3/bank/account-check/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "country": "NGA",
                "account": {"bank_code": "000014", "account_number": "0123450001"},
                "holder": {"full_name": "Maria Oliveira"},
                "vendor_data": "payout_20481"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.bank.account_check(
                country="NGA",
                account={
                    "account_number": "0123450001",
                    "bank_code": "000014",
                },
                holder={
                    "full_name": "Maria Oliveira",
                },
                vendor_data="payout_20481",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.bank.accountCheck({
              country: "NGA",
              account: {
                account_number: "0123450001",
                bank_code: "000014",
              },
              holder: {
                full_name: "Maria Oliveira",
              },
              vendor_data: "payout_20481",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Bank.AccountCheck(ctx, didit.BankAccountCheckRequest{\n\tCountry: \"NGA\",\n\tAccount: didit.BankAccountCheckRequestAccount{\n\t\tAccountNumber: didit.String(\"0123450001\"),\n\t\tBankCode:      didit.String(\"000014\"),\n\t},\n\tHolder: didit.BankAccountCheckHolder{\n\t\tFullName: didit.String(\"Maria Oliveira\"),\n\t},\n\tVendorData: didit.String(\"payout_20481\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.BankAccountCheckHolder;

            import me.didit.types.BankAccountCheckPersonHolder;

            import me.didit.types.BankAccountCheckRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.bank().accountCheck(BankAccountCheckRequest.builder()
                    .country("NGA")
                    .account(BankAccountCheckRequest.Account.builder()
                            .accountNumber("0123450001")
                            .bankCode("000014")
                            .build())
                    .holder(BankAccountCheckHolder.ofBankAccountCheckPersonHolder(BankAccountCheckPersonHolder.builder()
                            .fullName("Maria Oliveira")
                            .build()))
                    .vendorData("payout_20481")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->bank->accountCheck([
                'country' => 'NGA',
                'account' => [
                    'account_number' => '0123450001',
                    'bank_code' => '000014',
                ],
                'holder' => [
                    'full_name' => 'Maria Oliveira',
                ],
                'vendor_data' => 'payout_20481',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.bank.account_check(
              country: "NGA",
              account: {
                account_number: "0123450001",
                bank_code: "000014",
              },
              holder: {
                full_name: "Maria Oliveira",
              },
              vendor_data: "payout_20481"
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.Bank.AccountCheckAsync(new
            BankAccountCheckRequest

            {
                Country = "NGA",
                Account = new()
                {
                    AccountNumber = "0123450001",
                    BankCode = "000014",
                },
                Holder = new()
                {
                    FullName = "Maria Oliveira",
                },
                VendorData = "payout_20481",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    BankAccountCheckRequest:
      type: object
      required:
        - country
        - account
        - holder
      properties:
        country:
          type: string
          minLength: 3
          maxLength: 3
          description: >-
            Das Land des Kontos als ISO 3166-1 Alpha-3-Code, zum Beispiel `NGA`.
            Kleinbuchstaben werden akzeptiert.
          example: NGA
        account:
          type: object
          description: >-
            Das Konto in der Schreibweise seines Landes: eine `iban` oder eine
            `account_number` mit der vom Land benötigten Bank- oder
            Filialleitzahl (`sort_code`, `routing_number`,
            `transit_institution`, `bsb`, `ifsc`, `bank_code` oder `bic`).
            Mexiko verwendet eine `clabe` und Argentinien einen `cbu_cvu`, die
            bereits die Bank angeben. Ein Geschäftskonto fügt eine
            `registration_id` hinzu, sofern das Land eine solche verlangt.
            Leerzeichen, Bindestriche und Punkte werden ignoriert. Schlüssel,
            die von der Prüfung des Landes nicht verwendet werden, werden
            ignoriert; ein benötigter, aber fehlender Schlüssel führt zu einem
            `400`, der ihn benennt.
          properties:
            iban:
              type: string
              maxLength: 64
              description: >-
                Die IBAN, in einem Land, das IBANs verwendet. Sie muss zu
                `country` gehören.
            account_number:
              type: string
              maxLength: 64
              description: >-
                Die Kontonummer in einem Land, in dem die Kontonummer zusammen
                mit einer separaten Bank- oder Filialleitzahl angegeben wird.
            sort_code:
              type: string
              maxLength: 64
              description: 'Vereinigtes Königreich: der 6-stellige Sort Code.'
            routing_number:
              type: string
              maxLength: 64
              description: 'Vereinigte Staaten: die 9-stellige ABA-Routing-Nummer.'
            transit_institution:
              type: string
              maxLength: 64
              description: 'Kanada: die 8-stellige Transit- und Institutionsnummer.'
            bsb:
              type: string
              maxLength: 64
              description: 'Australien: die 6-stellige BSB.'
            ifsc:
              type: string
              maxLength: 64
              description: 'Indien: der 11-stellige IFSC.'
            bank_code:
              type: string
              maxLength: 64
              description: >-
                Der Bankcode, sofern das Land einen benötigt, zum Beispiel in
                Nigeria.
            bic:
              type: string
              maxLength: 64
              description: Der BIC der Bank, sofern die Prüfung des Landes einen erfordert.
            clabe:
              type: string
              maxLength: 64
              description: 'Mexiko: die 18-stellige CLABE. Sie benennt die Bank bereits.'
            cbu_cvu:
              type: string
              maxLength: 64
              description: >-
                Argentinien: die 22-stellige CBU oder CVU. Sie gibt die Bank
                bereits an.
            registration_id:
              type: string
              maxLength: 64
              description: >-
                Die Registernummer eines Unternehmenskontos, sofern das Land
                eine solche verlangt.
          additionalProperties:
            type: string
            maxLength: 64
          example:
            bank_code: '000014'
            account_number: '0123450001'
        holder:
          $ref: '#/components/schemas/BankAccountCheckHolder'
        vendor_data:
          type: string
          nullable: true
          description: Ihre eigene Referenz für diese Prüfung, unverändert zurückgegeben.
          example: payout_20481
        consent:
          type: boolean
          default: false
          description: >-
            Auf `true` setzen, wenn der Kontoinhaber dieser Prüfung ausdrücklich
            eingewilligt hat. Erforderlich in Ländern, deren Kontoprüfung diese
            Einwilligung verlangt: Ohne sie wird die Prüfung mit einem
            `400`-Fehler abgelehnt, dessen `field` `consent` und dessen `reason`
            `required` lautet, und es wird nichts in Rechnung gestellt.
            Andernorts ist dies optional, und Didit erfasst dies bei der
            Übermittlung zusammen mit der Gebühr für die Prüfung.
          example: true
    BankAccountCheckResponse:
      type: object
      required:
        - request_id
        - result
        - holder_name
        - account
        - vendor_data
        - created_at
      properties:
        request_id:
          type: string
          format: uuid
          description: Die ID dieser Prüfung.
        result:
          type: string
          enum:
            - match
            - close_match
            - no_match
            - cannot_verify
          description: >-
            `match`: Die Bank führt das Konto unter dem von Ihnen übermittelten
            Namen. `close_match`: unter einem ähnlichen Namen, zum Beispiel ein
            fehlender zweiter Vorname oder ein Tippfehler. `no_match`: unter
            einem anderen Namen, oder es existiert kein solches Konto.
            `cannot_verify`: Die Bank hat geantwortet, ohne den Namen
            abzugleichen, zum Beispiel bei einem gesperrten oder geschlossenen
            Konto.
        holder_name:
          type: string
          nullable: true
          description: >-
            Nur bei einem `close_match` und nur, wenn die Bank ihn zurückgegeben
            hat: der Name auf dem Konto, wie er bei der Bank geführt wird.
            Andernfalls `null`.
        account:
          type: string
          description: Das Konto, maskiert auf die letzten 4 Zeichen.
        vendor_data:
          type: string
          nullable: true
          description: Ihre eigene Referenz, genau wie von Ihnen gesendet.
        created_at:
          type: string
          format: date-time
          description: Wann die Überprüfung durchgeführt wurde, in UTC.
    BankAccountCheckError:
      type: object
      required:
        - detail
      properties:
        detail:
          type: string
          description: Was schiefgelaufen ist, auf Englisch.
        code:
          type: string
          description: Ein stabiler Code für Verzweigungen. Fehlt bei `401` und `403`.
        field:
          type: string
          description: >-
            Nur bei `400`: das zu korrigierende Body-Feld als punktierter Pfad,
            beispielsweise `account.sort_code`.
        reason:
          type: string
          enum:
            - required
            - length
            - format
            - checksum
            - country_mismatch
            - rejected
          description: >-
            Nur bei `400`: warum das Feld abgelehnt wurde. `required`, `length`,
            `format`, `checksum` und `country_mismatch` (eine IBAN eines anderen
            Landes) sind Didits eigene Prüfungen; `rejected` bedeutet, dass die
            Bank das Konto in der übermittelten Form abgelehnt hat.
    BankAccountCheckHolder:
      description: >-
        Der Name, gegen den das Konto geprüft wird. Senden Sie genau eines von
        `full_name` und `business_name`.
      oneOf:
        - $ref: '#/components/schemas/BankAccountCheckPersonHolder'
        - $ref: '#/components/schemas/BankAccountCheckBusinessHolder'
    BankAccountCheckPersonHolder:
      type: object
      description: Die Person, die Kontoinhaber sein soll.
      required:
        - full_name
      properties:
        full_name:
          type: string
          maxLength: 255
          description: Der vollständige Name der Person, die das Konto innehaben soll.
          example: Maria Oliveira
    BankAccountCheckBusinessHolder:
      type: object
      description: Das Unternehmen, das das Konto halten soll. Prüft ein Geschäftskonto.
      required:
        - business_name
      properties:
        business_name:
          type: string
          maxLength: 255
          description: >-
            Der Name des Unternehmens, das das Konto führen soll. Prüft ein
            Geschäftskonto.
  responses:
    RateLimitedWrite:
      description: >-
        Das geteilte Schreiblimit von 300 Anfragen pro Minute pro API-Schlüssel
        wurde überschritten. Beachten Sie `Retry-After`, bevor Sie es erneut
        versuchen.
      content:
        application/json:
          schema:
            type: object
            required:
              - detail
            properties:
              detail:
                type: string
          example:
            detail: >-
              Write request rate limit exceeded. You can make up to 300 requests
              per minute.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Der API-Schlüssel Ihrer Anwendung, aus Entwickler -> API-Schlüssel in
        der Business Console. Der Primärschlüssel hat Vollzugriff. Ein benannter
        Schlüssel kann im Geltungsbereich eingeschränkt werden: keine, Lese-
        oder Schreibberechtigung pro Ressource, beschränkt auf bestimmte
        Workflows oder genehmigte Sitzungen, auf eine Liste von IP-Adressen und
        auf ein Ablaufdatum. 401 bedeutet, dass der Schlüssel falsch, widerrufen
        oder abgelaufen ist; 403 bedeutet, dass kein Schlüssel gesendet wurde,
        der Schlüssel keinen Zugriff auf diese Ressource oder Aktion hat oder
        die Anfrage von einer Adresse außerhalb seiner IP-Liste stammte; 404 bei
        einer Sitzungsroute bedeutet, dass die Sitzung außerhalb der Workflows
        oder Status des Schlüssels liegt. Ein Schlüssel ohne Medienzugriff
        erhält Bild-, Video- und PDF-URLs als null, und ein Schlüssel ohne
        Schreibberechtigung für Sitzungen erhält Sitzungslinks und Token als
        null. Siehe https://docs.didit.me/console/api-keys.
    BearerAuth:
      type: http
      scheme: bearer
      description: Das Client-Credentials-Zugriffstoken der Anwendung.

````

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