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

# Management API v3: Workflows & Abrechnung

> Workflows, Fragebögen, Benutzer, Abrechnung und Sperrlisten per API-Schlüssel konfigurieren. Agenten-nativ, MCP-fähig. Preise pro Nutzung, keine Verträge.

## Authentifizierung

Alle Endpoints der Management-API verwenden Ihren API-Schlüssel der Anwendung. In den URLs sind keine Org- oder App-UUIDs erforderlich, da die Anwendung anhand Ihres Schlüssels identifiziert wird.

```bash theme={null}
curl -H "x-api-key: YOUR_API_KEY" https://verification.didit.me/v3/...
```

Sie haben noch keinen API-Schlüssel? [Registrieren Sie sich programmatisch mit 2 API-Aufrufen](https://docs.didit.me/de/integration/programmatic-registration.md).

***

## Workflows

Workflows legen fest, welche Verifizierungsschritte Ihre Benutzer durchlaufen (Ausweis-Scan, Liveness-Erkennung, Gesichtsabgleich, AML-Screening usw.). Jeder Workflow ist eine wiederverwendbare Konfiguration, die Sie Sitzungen zuweisen.

**GET /v3/workflows/** `GET`

Listet alle Workflows Ihrer Anwendung auf. Gibt die Funktionen, Schwellenwerte und die Information zurück, ob es sich um den Standard-Workflow handelt.

**POST /v3/workflows/** `POST`

Erstellt einen neuen Workflow. Legen Sie fest, welche Verifizierungsfunktionen aktiviert werden, setzen Sie Schwellenwerte, konfigurieren Sie akzeptierte Dokumenttypen und vieles mehr.

**GET /v3/workflows/\{uuid}/** `GET`

Ruft alle Details eines bestimmten Workflows ab, einschließlich aller Funktionskonfigurationen und Schwellenwerte.

**PATCH /v3/workflows/\{uuid}/** `PATCH`

Aktualisiert die Konfiguration eines Workflows. Sie können Funktionseinstellungen, Schwellenwerte oder akzeptierte Dokumente beliebig ändern.

**DELETE /v3/workflows/\{uuid}/** `DELETE`

Löscht einen Workflow. Sitzungen, die diesen Workflow bereits verwenden, sind davon nicht betroffen.

> [!WARNING]
>
> Wir empfehlen dringend, Workflows in der **Business-Konsole** zu erstellen und zu konfigurieren. Der visuelle Workflow-Builder bietet Vorlagen, Funktionskonfiguration per Drag-and-Drop, Dokumenteinstellungen, Feinabstimmung der Schwellenwerte und Vorschau, und das alles ohne Programmierung. Verwenden Sie die API nur für die Automatisierung oder die programmatische Verwaltung von Workflows.

### Kurzbeispiel: Workflow erstellen

Der `workflow_type` bestimmt den grundlegenden Funktionsumfang. Einzelne Funktionen werden anschließend mit den `is_*_enabled`-Flags aktiviert oder deaktiviert.

```bash theme={null}
curl -X POST https://verification.didit.me/v3/workflows/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_label": "Standard KYC",
    "workflow_type": "kyc",
    "is_default": true,
    "is_face_match_enabled": true,
    "is_liveness_enabled": true,
    "is_aml_enabled": false
  }'
```

Verfügbare `workflow_type`-Werte: `kyc`, `kyb`, `adaptive_age_verification`, `biometric_authentication`, `address_verification`, `questionnaire_verification`, `email_verification`, `phone_verification`.

Bei `kyc`-Workflows ist die Ausweisverifizierung automatisch enthalten. Dafür brauchen Sie kein eigenes Flag. Mit den `is_*_enabled`-Flags fügen Sie optionale Funktionen wie Gesichtsabgleich, Liveness-Erkennung, AML, NFC, Telefon, E-Mail, Adressnachweis, Geräte- und IP-Analyse und weitere hinzu oder entfernen sie.

Verwenden Sie den Workflow anschließend beim Erstellen von Sitzungen:

```bash theme={null}
curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "callback_url": "https://myapp.com/callback",
    "workflow_id": "WORKFLOW_UUID_FROM_ABOVE"
  }'
```

***

## Fragebögen

Benutzerdefinierte Formulare, die Sie Verifizierungs-Workflows hinzufügen können, um zusätzliche Informationen von Benutzern zu erfassen.

**GET /v3/questionnaires/** `GET`

Listet alle Fragebögen auf.

**POST /v3/questionnaires/** `POST`

Erstellt einen neuen Fragebogen mit benutzerdefinierten Fragen, Verzweigungslogik und Übersetzungen.

**GET /v3/questionnaires/\{uuid}/** `GET`

Ruft die Details eines Fragebogens ab, einschließlich aller Fragen und der Formularstruktur.

**PATCH /v3/questionnaires/\{uuid}/** `PATCH`

Aktualisiert einen Fragebogen.

**DELETE /v3/questionnaires/\{uuid}/** `DELETE`

Löscht einen Fragebogen.

***

## Benutzer

Verwalten Sie verifizierte Personen (Benutzer) in Ihrer Anwendung. Jeder Benutzer wird über einen `vendor_data`-String identifiziert, den Sie beim Erstellen von Sitzungen angeben.

**GET /v3/users/** `GET`

Listet alle Benutzer Ihrer Anwendung auf, einschließlich ihres Verifizierungsstatus und ihres Sitzungsverlaufs.

**GET /v3/users/\{vendor\_data}/** `GET`

Ruft die Details eines Benutzers über Ihre vendor\_data-Kennung ab.

**PATCH /v3/users/\{vendor\_data}/** `PATCH`

Aktualisiert die Metadaten eines Benutzers.

**POST /v3/users/delete/** `POST`

Löscht Benutzer stapelweise. Anfragetext: `{"vendor_data_list": ["user-1", "user-2"]}` oder `{"delete_all": true}`. Außerdem werden alle biometrischen Templates endgültig gelöscht, die für diese Benutzer aufbewahrt werden.

***

## Biometrische Templates

Bildfreie biometrische Gesichts-Templates, die eine Anwendung, die ihre Einwilligung erteilt hat, nach dem Löschen von Sitzungen aufbewahrt. Siehe [Biometrische Templates](https://docs.didit.me/de/management-api/biometric-templates/overview.md).

**GET /v3/biometric-templates/** `GET`

Paginierte Liste mit Filtern (`vendor_data`, `vendor_user_uuid`, `status`, `source_type`, `retained_from`, `retained_to`, `ordering`).

**GET /v3/biometric-templates/count/** `GET`

Zählt die Templates mit denselben Filtern.

**GET /v3/biometric-templates/\{template\_uuid}/** `GET`

Ein Template: zugehöriger Benutzer, Herkunftsreferenz, Ablaufdatum, Anweisung und Status.

**DELETE /v3/biometric-templates/\{template\_uuid}/** `DELETE`

Löscht ein Template endgültig. Gibt `{"uuid": "...", "outcome": "purged" | "already_purged"}` zurück.

**POST /v3/biometric-templates/delete/** `POST`

Endgültige Massenlöschung. Anfragetext: `{"template_uuids": [...]}` oder `{"delete_all": true}` zusammen mit optionalen Filtern.

***

## Vorgänge für Sitzungen

**POST /v3/sessions/delete/** `POST`

Löscht Sitzungen stapelweise. Erfordert `delete:sessions`. Anfragetext: `{"session_numbers": ["1", "2", "3"]}` oder `{"delete_all": true}` (grenzen Sie `delete_all` mit den Filtern der Liste der Sitzungen ein, denen `filter_` vorangestellt ist, z. B. `filter_status`), außerdem optional `retain_face_embeddings`, `face_retention_days`, `face_retention_deadline`, `deletion_instruction` und `instruction_id`. Bis zu 20 passende Sitzungen liefern `200` mit einem `face_retention_outcome` pro Sitzung zurück. Mehr Sitzungen liefern `202` mit einem Löschauftrag.

**GET /v3/sessions/delete/\{job\_id}/** `GET`

Fortschritt und Ergebniszahlen einer Massenlöschung von Sitzungen, die `202` zurückgegeben hat.

**GET /v3/sessions/\{uuid}/reviews/** `GET`

Listet die Prüfungen und das Aktivitätsprotokoll einer Sitzung auf.

**POST /v3/sessions/\{uuid}/reviews/** `POST`

Fügt einer Sitzung eine Prüfnotiz oder eine Statusänderung hinzu.

***

## Abrechnung

**GET /v3/billing/balance/** `GET`

Ruft das aktuelle Credit-Guthaben und die Einstellungen für die automatische Aufladung ab.

```json theme={null}
{
  "balance": "142.5000",
  "auto_refill_enabled": true,
  "auto_refill_amount": "100.0000",
  "auto_refill_threshold": "10.0000"
}
```

**POST /v3/billing/top-up/** `POST`

Erstellt eine Stripe-Checkout-Sitzung zum Aufladen von Credits. Jede Aufladung beträgt \$50 bis \$20,000 und wird zum Nennwert gutgeschrieben.

```json theme={null}
{
  "amount_in_dollars": 100,
  "success_url": "https://myapp.com/billing/success",
  "cancel_url": "https://myapp.com/billing/cancel"
}
```

***

## Listen (Sperrlisten, Freigabelisten & benutzerdefinierte Listen)

Verwalten Sie typisierte Listen für Sperrung, Freigabe und benutzerdefinierte Workflow-Bedingungen. Weitere Informationen finden Sie in der vollständigen [Lists-API-Dokumentation](https://docs.didit.me/de/management-api/lists/overview.md).

**GET /v3/lists/** `GET`

Listet alle Listen der Anwendung auf (Sperrlisten, Freigabelisten, benutzerdefinierte Listen).

**POST /v3/lists/\{list\_uuid}/entries/** `POST`

Fügt einer Liste einen Eintrag hinzu. Unterstützt `reference_session_id`, um Daten aus einer Sitzung automatisch zu übernehmen, und `reference_object_uuid` zur Nachverfolgbarkeit von Transaktionen, Benutzern bzw. Unternehmen.

**DELETE /v3/lists/\{list\_uuid}/entries/\{entry\_uuid}/** `DELETE`

Entfernt einen Eintrag aus einer Liste.

**POST /v3/lists/\{list\_uuid}/entries/face-upload/** `POST`

Lädt ein Gesichtsbild (Base64) in eine Gesichts-Sperrliste hoch.

***

## Webhook-Konfiguration

**GET /v3/webhook/** `GET`

Ruft die aktuelle Webhook-Konfiguration ab, einschließlich URL, Version, des geheimen Schlüssels zur Überprüfung der Webhook-Signaturen sowie der Richtlinie zur Datenaufbewahrung und zur Aufbewahrung biometrischer Templates der Anwendung.
Die Antwort enthält außerdem `allowed_domains`, das unten unter `PATCH /v3/webhook/` beschrieben wird.

```json theme={null}
{
  "webhook_url": "https://myapp.com/webhooks/didit",
  "webhook_version": "v3",
  "secret_shared_key": "whsec_a1b2c3d4e5f6...",
  "capture_method": "both",
  "data_retention_months": null,
  "face_retention_policy": "delete_with_session",
  "face_retention_days": null,
  "allowed_return_hosts": ["app.example.com"],
  "allowed_domains": ["https://app.example.com"]
}
```

**PATCH /v3/webhook/** `PATCH`

Aktualisiert die Webhook-URL und die Version oder rotiert den geheimen Schlüssel. Setzen Sie `rotate_secret_key: true`, um ein neues Webhook-Geheimnis zu erzeugen; das alte wird sofort ungültig. Legt außerdem die Aufbewahrungsrichtlinie der Anwendung fest: `data_retention_months` sowie `face_retention_policy` (`delete_with_session` als Standard oder `retain_until_user_deleted`). Ist die Aufbewahrung aktiviert, ist zusätzlich ein endlicher Wert für `face_retention_days` (1–3650) erforderlich. Siehe [Aufbewahrung biometrischer Templates](https://docs.didit.me/de/console/data-retention.md#aufbewahrung-biometrischer-templates). Registriert außerdem `allowed_return_hosts`: bis zu 20 reine Hostnamen (zum Beispiel `app.example.com`, ohne Schema, Port, Pfad oder Wildcard), zu denen eine Verifizierung über die [Digital-ID-Wallet-API](https://docs.didit.me/de/standalone-apis/digital-id-wallets.md#ihr-rückgabeziel-registrieren) den Nutzer über HTTPS zurücksenden darf. Eine neue Liste ersetzt die bisher registrierte, und die White-Label-Domain Ihrer Anwendung ist immer erlaubt.

Legt außerdem `allowed_domains` fest: bis zu 50 Web-Origins (zum Beispiel `https://app.example.com`), in die der gehostete Verifizierungsablauf eingebettet werden darf und zu denen er den Nutzer mit einem Sitzungs-`callback` zurücksenden darf.
Jeder Eintrag besteht aus einem Schema, einem Host und einem optionalen Port, ohne Pfad, Query oder Wildcard.
Verwenden Sie `https`; `http` ist nur für `localhost`, `127.0.0.1` und `::1` zulässig.
Didit speichert jeden Origin in Kleinbuchstaben ohne Standardport und gibt die Liste in `allowed_domains` zurück.
Ein ungültiger Eintrag führt bei `allowed_domains` zu einem 400-Fehler.
Eine neue Liste ersetzt die registrierte, und eine leere Liste hebt die Einschränkung auf.
Solange die Liste nicht leer ist, weist [`POST /v3/session/`](https://docs.didit.me/de/sessions-api/create-session) einen Web-`callback` außerhalb der Liste mit 400 ab, und der gehostete Ablauf leitet den Nutzer nicht zu einem gespeicherten oder Workflow-standardmäßigen Callback außerhalb der Liste weiter.
Benutzerdefinierte URL-Schemas (App-Deep-Links) und serverseitige API-Aufrufe sind davon nicht betroffen.

Wenn Sie `endpoints` senden, werden alle Webhook-Ziele, die die Liste auslässt, dauerhaft gelöscht, zusammen mit ihrem Signaturgeheimnis und ihrem gesamten Zustellungsprotokoll, genau wie bei [`DELETE /v3/webhook/destinations/{destination_uuid}/`](https://docs.didit.me/de/management-api/webhook/delete-destination).
Dies kann nicht rückgängig gemacht werden.
Um Webhook-Ziele einzeln zu verwalten, verwenden Sie stattdessen die [Endpoints für Webhook-Ziele](https://docs.didit.me/de/management-api/webhook/list-destinations.md).

```json theme={null}
{
  "webhook_url": "https://myapp.com/webhooks/didit",
  "webhook_version": "v3",
  "allowed_domains": ["https://app.example.com"]
}
```

***

## Vollständige Übersicht der API-Endpunkte

| Endpunkt | Methode | Beschreibung |
| - | - | - |
| `/v3/session/` | POST | Verifizierungssitzung erstellen |
| `/v3/sessions/` | GET | Alle Sitzungen auflisten |
| `/v3/session/{id}/decision/` | GET | Verifizierungsergebnis der Sitzung abrufen |
| `/v3/session/{id}/update-status/` | PATCH | Sitzung genehmigen oder ablehnen |
| `/v3/session/{id}/delete/` | DELETE | Eine einzelne Sitzung löschen |
| `/v3/sessions/delete/` | POST | Sitzungen im Batch löschen |
| `/v3/sessions/delete/{job_id}/` | GET | Status des Massenlöschauftrags für Sitzungen |
| `/v3/sessions/{id}/reviews/` | GET, POST | Sitzungsaktivität und Prüfungen |
| `/v3/workflows/` | GET, POST | Workflows auflisten/erstellen |
| `/v3/workflows/{id}/` | GET, PATCH, DELETE | Workflow-Details/aktualisieren/löschen |
| `/v3/questionnaires/` | GET, POST | Fragebögen auflisten/erstellen |
| `/v3/questionnaires/{id}/` | GET, PATCH, DELETE | Fragebogen-Details |
| `/v3/users/` | GET | Verifizierte Benutzer auflisten |
| `/v3/users/{vendor_data}/` | GET, PATCH | Benutzerdetails/aktualisieren |
| `/v3/users/delete/` | POST | Benutzer im Batch löschen (löscht auch deren gespeicherte biometrische Templates) |
| `/v3/biometric-templates/` | GET | Gespeicherte biometrische Templates auflisten |
| `/v3/biometric-templates/count/` | GET | Gespeicherte biometrische Templates zählen |
| `/v3/biometric-templates/{id}/` | GET, DELETE | Template-Details / Löschung |
| `/v3/biometric-templates/delete/` | POST | Templates im Batch löschen |
| `/v3/lists/` | GET, POST | Alle Listen auflisten / Liste erstellen |
| `/v3/lists/{id}/` | GET, PATCH, DELETE | Listendetails / aktualisieren / löschen |
| `/v3/lists/{id}/entries/` | GET, POST | Einträge auflisten / Eintrag hinzufügen |
| `/v3/lists/{id}/entries/{eid}/` | DELETE | Eintrag entfernen |
| `/v3/lists/{id}/entries/face-upload/` | POST | Gesicht in Sperrliste hochladen |
| `/v3/webhook/` | GET, PATCH | Webhook-Konfiguration (URL, Geheimnis, Version), Aufbewahrungsrichtlinie und Hosts für Wallet-Rückleitung |
| `/v3/billing/balance/` | GET | Credit-Guthaben prüfen |
| `/v3/billing/top-up/` | POST | Credits aufladen |


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