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

# AML-Überwachung für Benutzer ein-/ausschalten API

> Schalten Sie mit Didit die laufende AML-Überwachung für viele Benutzer per Aufruf ein oder aus – inkl. Kostenschätzung und Ergebnis pro Benutzer.



Prompt für das Umschalten des AML-Monitorings für Benutzer
        Prompt in die Zwischenablage kopieren



      
      

\<pre>

\`Goal: Enable or disable ongoing AML monitoring for one or many Didit User entities in a single call, with the same semantics as the Business Console. Preview the cost first with estimate_only, then run the change and read the per-user outcome.

Endpoint: POST https://verification.didit.me/v3/users/aml-monitoring/
Auth header: x-api-key: <DIDIT_API_KEY>
Content-Type: application/json

Request body:
\- is_enabled: boolean (required) - true to enable monitoring, false to disable it.
\- estimate_only: boolean (default false) - when true, returns the cost preview and performs NO writes: no screening, no billing, no job.
\- vendor_data_list: string[] - your own identifiers, matched exactly as sent.
\- didit_internal_id_list: string[] (UUIDs) - the didit_internal_id returned by the create, get and list endpoints.
Provide at least one list; the two are OR'd. At most 1000 identifiers per request across both lists - split larger selections into several calls.

Semantics:
\- One monitored screening per user: a person who verified several times is monitored and billed once. Disabling turns monitoring off across all of the user's screenings.
\- Users without any AML screening are screened first (billed as a regular AML screening) when the profile has a full name, date of birth and country; otherwise the user is reported as skipped_no_identity_data.
\- Blocked users are skipped (skipped_blocked). Sandbox applications never create screenings (skipped_sandbox).
\- Enabling is refused with 403 when the organization balance does not cover the estimate; the response carries the estimate.

curl (estimate first):
curl -X POST 'https://verification.didit.me/v3/users/aml-monitoring/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"is_enabled": true, "estimate_only": true, "vendor_data_list": ["user-123", "user-456"]}'

Response 200 (estimate_only):
\{
"users_total": 2, "already_enabled": 0, "with_existing_aml": 1, "needing_screening": 1,
"skipped_no_identity_data": 0, "skipped_blocked": 0,
"estimated_screening_cost_usd": 0.2, "estimated_annual_monitoring_cost_usd": 0.14,
"balance_sufficient": true, "unmatched": []
}

curl (enable):
curl -X POST 'https://verification.didit.me/v3/users/aml-monitoring/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"is_enabled": true, "vendor_data_list": ["user-123", "user-456"]}'

Response 200 (20 users or fewer - processed inline, already COMPLETED) or 202 (more than 20 - running in the background):
\{
"job_id": "<uuid>", "status": "COMPLETED", "is_enabled": true, "target_type": "user",
"total": 2, "processed": 2,
"outcomes": {"enabled": 1, "screened_and_enabled": 1, "already_enabled": 0, "disabled": 0, "skipped_no_identity_data": 0, "skipped_blocked": 0, "skipped_sandbox": 0, "failed_provider": 0, "failed_insufficient_balance": 0},
"results": [
\{"didit_internal_id": "<uuid>", "vendor_data": "user-123", "outcome": "enabled"},
\{"didit_internal_id": "<uuid>", "vendor_data": "user-456", "outcome": "screened_and_enabled"}
],
"estimate": { ...same shape as above, without unmatched... },
"unmatched": [],
"error": null,                     // generic message when status is FAILED
"created_at": "<datetime>", "completed_at": "<datetime>"
}
On 202, poll GET /v3/aml-monitoring/jobs/{job_id}/ every couple of seconds until status is COMPLETED or FAILED; results fills in as users are processed.

Per-user outcome values: enabled, screened_and_enabled, already_enabled, disabled, skipped_no_identity_data, skipped_blocked, skipped_sandbox, failed_provider, failed_insufficient_balance.

Failure modes:
\- 400 - is_enabled missing, no selector, or more than 1000 identifiers across both lists.
A selection that matches nothing is NOT an error: the job completes with total 0 and every identifier is listed under unmatched (same convention as the batch delete endpoints).
\- 401 - missing/invalid x-api-key.
\- 403 - insufficient balance to enable monitoring for this selection (body: error + estimate).

Idempotency: re-sending an enable returns already_enabled for users that are already monitored, with no second screening and no second bill. Disabling an unmonitored user returns disabled and changes nothing.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

Einfügen in

## ÜberblickAktiviert oder deaktiviert die [laufende AML-Überwachung](https://docs.didit.me/de/core-technology/aml-screening/continuous-monitoring-aml-screening.md) für die ausgewählten [Benutzer-Entitäten](https://docs.didit.me/de/entities/users/overview.md), genau wie die Aktion **Laufende AML-Überwachung** in der Business Console. Die Console und dieser Endpoint führen dieselbe zugrunde liegende Operation aus, daher sind die Regeln, die Abrechnung und die Ergebnisse identisch.Senden Sie zuerst `estimate_only: true`, um zu sehen, wie viele Benutzer ausgewählt sind, wie viele ein neues AML-Screening benötigen, welche einmaligen Kosten das Screening verursacht und welche jährlichen Kosten das Monitoring verursacht. Ein Probelauf nimmt keine Änderungen vor.## Wann verwenden- **Programmatisches Onboarding**: Aktivieren Sie das Monitoring für Benutzer, die Sie über die API importiert oder angelegt haben, ohne sie manuell erneut zu prüfen.
- **Offboarding**: Beenden Sie das Monitoring und dessen jährliche Verlängerung für Benutzer, die Ihre Plattform verlassen haben.
- **Kostenkontrolle**: Prüfen Sie die genauen Kostenauswirkungen einer Auswahl, bevor Sie sie ausführen.## So wird eine Auswahl verarbeitet- **Ein überwachtes Screening pro Benutzer.** Ein Benutzer, der sich mehrfach verifiziert hat, wird nur einmal überwacht und einmal abgerechnet. Das Deaktivieren schaltet das Monitoring für alle Screenings dieses Benutzers aus.
- **Benutzer ohne AML-Screening werden zuerst geprüft.** Didit legt für sie eine neue AML-Verifizierung an (sichtbar im Tab **Verifizierungen** des Benutzers), rechnet sie wie ein reguläres AML-Screening ab und aktiviert das Monitoring darauf. Dafür werden der vollständige Name, das Geburtsdatum und das Land des Benutzers benötigt. Fehlt eine dieser Angaben, wird der Benutzer als `skipped_no_identity_data` gemeldet und nicht stillschweigend übergangen.
- **Gesperrte Benutzer werden übersprungen** (`skipped_blocked`). Sandbox-Anwendungen erzeugen niemals Screenings (`skipped_sandbox`).
- **Das Guthaben wird vorab geprüft.** Die Aktivierung wird mit `403` abgelehnt, wenn Ihr Guthaben die Schätzung nicht deckt. Die Antwort enthält die Schätzung, sodass Sie wissen, wie viel Sie aufladen müssen.
- **Jährliche Verlängerung.** Einem neu überwachten Benutzer wird der jährliche Monitoring-Preis zu seinem nächsten Verlängerungsdatum berechnet. Dieses Datum zeigt die Console in der Spalte **Laufende AML-Überwachung**. Das Deaktivieren beendet die Verlängerung, erstattet aber keinen bereits abgerechneten Zeitraum.## Auswahl und Batch-GrößeWählen Sie Benutzer über `vendor_data_list`, `didit_internal_id_list` oder beide Listen aus. Die beiden Listen werden mit „ODER“ verknüpft. Eine Anfrage akzeptiert insgesamt höchstens **1000 Kennungen** aus beiden Listen. Kennungen, zu denen in Ihrer Anwendung kein Benutzer existiert, werden unverändert unter `unmatched` zurückgegeben. Sie führen nie zu einem Fehler der Anfrage: Eine Auswahl ohne Treffer wird als leerer Job abgeschlossen (`total: 0`), wobei alle Kennungen aufgeführt werden. Das entspricht der Konvention der Batch-Delete-Endpoints.## Synchron oder im HintergrundAuswahlen mit **20 Benutzern oder weniger** werden synchron verarbeitet. Der Aufruf liefert `200` mit dem abgeschlossenen Job. Größere Auswahlen liefern `202` mit einem Job im Status `PENDING`. Fragen Sie [Job für AML-Monitoring abrufen](https://docs.didit.me/de/management-api/aml-monitoring/get-job.md) ab, bis `status` den Wert `COMPLETED` oder `FAILED` hat. In beiden Fällen enthält der Job pro Benutzer einen Eintrag in `results` mit dessen `outcome`.| `outcome` | Bedeutung |
| - | - |
| `enabled` | Monitoring auf einem bestehenden AML-Screening aktiviert. |
| `screened_and_enabled` | Ein neues AML-Screening wurde erstellt (abgerechnet) und das Monitoring darauf aktiviert. |
| `already_enabled` | Das Monitoring war bereits aktiv. Nichts wurde geändert, nichts wurde abgerechnet. |
| `disabled` | Das Monitoring wurde für alle Screenings des Benutzers deaktiviert. |
| `skipped_no_identity_data` | Dem Benutzer fehlen der vollständige Name, das Geburtsdatum oder das Land, die für ein Screening nötig sind. |
| `skipped_blocked` | Der Benutzer ist gesperrt. |
| `skipped_sandbox` | Sandbox-Anwendung. Es wird kein Screening erstellt. |
| `failed_provider` | Das Screening konnte nicht abgeschlossen werden. Versuchen Sie es später erneut. |
| `failed_insufficient_balance` | Das Guthaben ist während der Ausführung des Jobs aufgebraucht. |## WebhooksDas Umschalten des Monitorings sendet keinen eigenen Webhook. Sobald das Monitoring aktiv ist, lösen erneute Prüfungen die üblichen Ereignisse `status.updated` und `data.updated` aus, die unter [Kontinuierliches AML-Monitoring](https://docs.didit.me/de/core-technology/aml-screening/continuous-monitoring-aml-screening.md) beschrieben sind.## BerechtigungenJeder aktive API-Schlüssel der Anwendung kann diesen Endpoint aufrufen. Didit-API-Schlüssel sind **anwendungsbezogen, nicht rollenbezogen**. Die [Rollen und Berechtigungen](https://docs.didit.me/de/console/roles-permissions.md) der Console legen fest, was eine *Person* in der Console tun darf. Für Datenverkehr der Management API werden sie nicht ausgewertet.## Verwandte Seiten- [Job für AML-Monitoring abrufen](https://docs.didit.me/de/management-api/aml-monitoring/get-job.md)
- [AML-Monitoring für Unternehmen umschalten](https://docs.didit.me/de/management-api/aml-monitoring/toggle-businesses.md)
- [Kontinuierliches AML-Monitoring](https://docs.didit.me/de/core-technology/aml-screening/continuous-monitoring-aml-screening.md)
- [AML-Screening-API](https://docs.didit.me/de/standalone-apis/aml-screening.md)
- [Benutzer auflisten](https://docs.didit.me/de/management-api/users/list.md)


## OpenAPI

````yaml de/openapi-25.json POST /v3/users/aml-monitoring/
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/users/aml-monitoring/:
    post:
      tags:
        - AML Ongoing Monitoring
      summary: Laufende AML-Überwachung für Benutzer aktivieren oder deaktivieren
      description: >-
        Schaltet die laufende AML-Überwachung für die ausgewählten Benutzer ein
        oder aus, mit derselben Semantik wie die Business Console. Pro Benutzer
        wird genau ein überwachtes AML-Screening beibehalten, sodass ein Profil,
        das sich mehrmals verifiziert hat, einmal überwacht und abgerechnet
        wird; das Deaktivieren schaltet die Überwachung für alle Screenings des
        Profils ab. Benutzer ohne jegliches AML-Screening werden zuerst
        gescreent (abgerechnet als reguläres AML-Screening), wenn sie den
        erforderlichen vollständigen Namen sowie das erforderliche Geburtsdatum
        und Land haben; andernfalls werden sie als `skipped_no_identity_data`
        gemeldet.


        Setzen Sie `estimate_only: true`, um eine Vorschau der Anzahlen und
        Kosten anzuzeigen, ohne Änderungen zu schreiben. Auswahlen von 20 oder
        weniger Profilen werden direkt aufgelöst und geben `200` mit dem
        abgeschlossenen Job zurück; größere Auswahlen geben `202` zurück und
        laufen im Hintergrund – fragen Sie [AML-Überwachungsjob
        abrufen](#get-/v3/aml-monitoring/jobs/-job_id-/) mit der zurückgegebenen
        `job_id` ab. Die Aktivierung wird mit `403` abgelehnt, wenn das Guthaben
        der Organisation die Schätzung nicht deckt. Bezeichner, die mit nichts
        übereinstimmen, werden in `unmatched` aufgeführt und führen nie zum
        Fehlschlagen der Anfrage: Eine Auswahl, die mit nichts übereinstimmt,
        wird als leerer Job (`total` 0) abgeschlossen – dieselbe Konvention wie
        bei den Batch-Lösch-Endpoints.
      operationId: toggle_users_aml_monitoring
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - is_enabled
              description: >-
                Wählen Sie Benutzer mit `vendor_data_list`,
                `didit_internal_id_list` oder beiden aus (die beiden Listen
                werden ODER-verknüpft). Maximal 1000 IDs pro Anfrage über beide
                Listen hinweg.
              properties:
                is_enabled:
                  type: boolean
                  description: >-
                    true, um die Überwachung zu aktivieren, false, um sie zu
                    deaktivieren.
                estimate_only:
                  type: boolean
                  default: false
                  description: >-
                    Wenn true, wird die Kostenschätzung zurückgegeben und es
                    werden keine Schreibvorgänge ausgeführt – kein Screening,
                    keine Abrechnung, kein Job.
                vendor_data_list:
                  type: array
                  items:
                    type: string
                  description: >-
                    Ihre eigenen Kennungen der umzuschaltenden Benutzer, exakt
                    so abgeglichen wie übermittelt.
                didit_internal_id_list:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: >-
                    Interne Didit-IDs der umzuschaltenden Benutzer – die von den
                    Create-, Get- und List-Endpoints zurückgegebene
                    `didit_internal_id`.
            examples:
              Estimate first:
                summary: Vorschau der Kosten ohne Schreibvorgang anzeigen
                value:
                  is_enabled: true
                  estimate_only: true
                  vendor_data_list:
                    - user-123
                    - user-456
              Enable:
                summary: Überwachung für zwei Benutzer aktivieren
                value:
                  is_enabled: true
                  vendor_data_list:
                    - user-123
                    - user-456
              Disable:
                summary: Überwachung anhand der internen Didit-ID deaktivieren
                value:
                  is_enabled: false
                  didit_internal_id_list:
                    - 3f1c0d3e-8f0a-4c2e-9a3d-9b1f5f4a2c11
      responses:
        '200':
          description: >-
            Die Schätzung (wenn `estimate_only` true ist) oder der
            abgeschlossene Job für eine inline verarbeitete Auswahl.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AMLMonitoringToggleResult'
        '202':
          description: >-
            Größere Auswahlen werden im Hintergrund ausgeführt. Fragen Sie den
            Job-Endpoint mit `job_id` ab; `results` wird befüllt, sobald die
            Profile verarbeitet sind.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AMLMonitoringJob'
        '400':
          description: >-
            Validierungsfehler: `is_enabled` fehlt, kein Selektor oder mehr als
            1000 Bezeichner über beide Listen hinweg.
        '401':
          description: Fehlender oder ungültiger API-Schlüssel.
        '403':
          description: >-
            Unzureichendes Guthaben, um die Überwachung für diese Auswahl zu
            aktivieren. Die Antwort enthält die Schätzung (`estimate`), damit
            Sie den richtigen Betrag aufladen können.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  estimate:
                    type: object
                    description: >-
                      Kostenvorschau. Wird direkt zurückgegeben, wenn
                      estimate_only wahr ist (es wird nichts geschrieben).
                    properties:
                      users_total:
                        type: integer
                        description: Profile, die der Auswahl entsprechen.
                      already_enabled:
                        type: integer
                        description: >-
                          Profile, die bereits überwacht werden (beim Aktivieren
                          ist nichts zu tun; diese werden beim Deaktivieren
                          abgeschaltet).
                      with_existing_aml:
                        type: integer
                        description: >-
                          Profile, deren bestehendes AML-Screening auf überwacht
                          umgestellt wird (kein neues Screening).
                      needing_screening:
                        type: integer
                        description: >-
                          Profile ohne bisheriges AML-Screening, die zuerst
                          gescreent werden (abgerechnet als reguläres
                          AML-Screening).
                      skipped_no_identity_data:
                        type: integer
                        description: >-
                          Profile, die nicht gescreent werden können, da
                          Identitätsdaten fehlen.
                      skipped_blocked:
                        type: integer
                        description: >-
                          Gesperrte Benutzer, die übersprungen werden (bei
                          Unternehmen immer 0).
                      estimated_screening_cost_usd:
                        type: number
                        example: 0.2
                        description: Einmalige Kosten für die neuen Screenings.
                      estimated_annual_monitoring_cost_usd:
                        type: number
                        example: 0.07
                        description: >-
                          Jährliche Überwachungskosten für die Profile, die
                          künftig überwacht werden.
                      balance_sufficient:
                        type: boolean
                        description: >-
                          Gibt an, ob das Guthaben der Organisation das
                          Screening plus das erste Jahr der Überwachung abdeckt.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            'https://verification.didit.me/v3/users/aml-monitoring/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"is_enabled": true, "vendor_data_list": ["user-123", "user-456"]}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.users.set_aml_monitoring(
                is_enabled=True,
                estimate_only=True,
                vendor_data_list=["user-123", "user-456"],
            )
            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.users.setAmlMonitoring({
              is_enabled: true,
              estimate_only: true,
              vendor_data_list: ["user-123", "user-456"],
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Users.SetAMLMonitoring(ctx, didit.UsersSetAMLMonitoringParams{\n\tIsEnabled:      true,\n\tEstimateOnly:   didit.Bool(true),\n\tVendorDataList: didit.Some([]string{\"user-123\", \"user-456\"}),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.util.List;

            import me.didit.Didit;

            import me.didit.types.UsersSetAmlMonitoringParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.users().setAmlMonitoring(UsersSetAmlMonitoringParams.builder()
                    .isEnabled(true)
                    .estimateOnly(true)
                    .vendorDataList(List.of("user-123", "user-456"))
                    .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->users->setAmlMonitoring([
                'is_enabled' => true,
                'estimate_only' => true,
                'vendor_data_list' => ['user-123', 'user-456'],
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.users.set_aml_monitoring(
              is_enabled: true,
              estimate_only: true,
              vendor_data_list: ["user-123", "user-456"]
            )
            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.Users.SetAmlMonitoringAsync(new
            UsersSetAmlMonitoringParams

            {
                IsEnabled = true,
                EstimateOnly = true,
                VendorDataList = new string[] { "user-123", "user-456" },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    AMLMonitoringToggleResult:
      oneOf:
        - type: object
          required:
            - users_total
            - already_enabled
            - with_existing_aml
            - needing_screening
            - skipped_no_identity_data
            - skipped_blocked
            - estimated_screening_cost_usd
            - estimated_annual_monitoring_cost_usd
            - balance_sufficient
            - unmatched
          description: >-
            Kostenvorschau. Wird direkt zurückgegeben, wenn estimate_only wahr
            ist (es wird nichts geschrieben).
          properties:
            users_total:
              type: integer
              description: Profile, die der Auswahl entsprechen.
            already_enabled:
              type: integer
              description: >-
                Profile, die bereits überwacht werden (beim Aktivieren ist
                nichts zu tun; diese werden beim Deaktivieren abgeschaltet).
            with_existing_aml:
              type: integer
              description: >-
                Profile, deren bestehendes AML-Screening auf überwacht
                umgestellt wird (kein neues Screening).
            needing_screening:
              type: integer
              description: >-
                Profile ohne bisheriges AML-Screening, die zuerst gescreent
                werden (abgerechnet als reguläres AML-Screening).
            skipped_no_identity_data:
              type: integer
              description: >-
                Profile, die nicht gescreent werden können, da Identitätsdaten
                fehlen.
            skipped_blocked:
              type: integer
              description: >-
                Gesperrte Benutzer, die übersprungen werden (bei Unternehmen
                immer 0).
            estimated_screening_cost_usd:
              type: number
              example: 0.2
              description: Einmalige Kosten für die neuen Screenings.
            estimated_annual_monitoring_cost_usd:
              type: number
              example: 0.07
              description: >-
                Jährliche Überwachungskosten für die Profile, die künftig
                überwacht werden.
            balance_sufficient:
              type: boolean
              description: >-
                Gibt an, ob das Guthaben der Organisation das Screening plus das
                erste Jahr der Überwachung abdeckt.
            unmatched:
              type: array
              items:
                type: string
              description: >-
                Kennungen der Anfrage, die mit keinem Profil in dieser Anwendung
                übereinstimmten, exakt wie gesendet.
        - type: object
          required:
            - job_id
            - status
            - is_enabled
            - target_type
            - total
            - processed
            - outcomes
            - results
            - error
            - created_at
            - completed_at
            - estimate
            - unmatched
          properties:
            job_id:
              type: string
              format: uuid
            status:
              type: string
              enum:
                - PENDING
                - PROCESSING
                - COMPLETED
                - FAILED
            is_enabled:
              type: boolean
              description: >-
                true, wenn der Job die Überwachung aktiviert, false, wenn er sie
                deaktiviert.
            target_type:
              type: string
              enum:
                - user
                - business
              description: Welche Profilfamilie der Auftrag umschaltet.
            total:
              type: integer
              description: Profile, die der Job verarbeitet.
            processed:
              type: integer
              description: Bisher verarbeitete Profile.
            outcomes:
              type: object
              description: >-
                Ergebniszähler pro Datensatz. Jedes ausgewählte Profil wird
                genau einem Zähler zugeordnet; nichts wird stillschweigend
                übersprungen.
              properties:
                enabled:
                  type: integer
                  description: Überwachung für ein bestehendes AML-Screening aktiviert.
                screened_and_enabled:
                  type: integer
                  description: >-
                    Ein neues AML-Screening wurde erstellt (in Rechnung
                    gestellt) und die Überwachung dafür aktiviert.
                already_enabled:
                  type: integer
                  description: >-
                    Überwachung war bereits aktiv; es wurde nichts geändert und
                    nichts in Rechnung gestellt.
                disabled:
                  type: integer
                  description: Überwachung für jedes AML-Screening des Profils deaktiviert.
                skipped_no_identity_data:
                  type: integer
                  description: >-
                    Übersprungen: Dem Profil fehlen der vollständige Name, das
                    Geburtsdatum und das Land (Benutzer) oder ein Name
                    (Unternehmen), die für das Screening erforderlich sind.
                skipped_blocked:
                  type: integer
                  description: 'Übersprungen: Der Benutzer ist gesperrt.'
                skipped_sandbox:
                  type: integer
                  description: >-
                    Übersprungen: Sandbox-Anwendung, es wird kein Screening
                    erstellt.
                failed_provider:
                  type: integer
                  description: >-
                    Das Screening konnte nicht abgeschlossen werden; versuchen
                    Sie es später erneut.
                failed_insufficient_balance:
                  type: integer
                  description: Das Guthaben wurde aufgebraucht, während der Auftrag lief.
            results:
              type: array
              description: >-
                Ein Eintrag pro verarbeitetem Profil, in der Reihenfolge der
                Verarbeitung. Wächst, während der Job läuft; vollständig, sobald
                der Status COMPLETED ist. Erfasst für Jobs, die über die API
                gestartet wurden.
              items:
                type: object
                properties:
                  didit_internal_id:
                    type: string
                    format: uuid
                    description: Interne Didit-ID des Profils.
                  vendor_data:
                    type: string
                    nullable: true
                    description: Ihre eigene Kennung für das Profil.
                  outcome:
                    type: string
                    enum:
                      - enabled
                      - screened_and_enabled
                      - already_enabled
                      - disabled
                      - skipped_no_identity_data
                      - skipped_blocked
                      - skipped_sandbox
                      - failed_provider
                      - failed_insufficient_balance
            error:
              type: string
              nullable: true
              description: >-
                Generische Fehlermeldung, wenn der Status FAILED lautet; die
                detaillierte Ursache verbleibt auf Plattformseite.
            created_at:
              type: string
              format: date-time
            completed_at:
              type: string
              format: date-time
              nullable: true
            estimate:
              type: object
              description: >-
                Kostenvorschau. Wird direkt zurückgegeben, wenn estimate_only
                wahr ist (es wird nichts geschrieben).
              properties:
                users_total:
                  type: integer
                  description: Profile, die der Auswahl entsprechen.
                already_enabled:
                  type: integer
                  description: >-
                    Profile, die bereits überwacht werden (beim Aktivieren ist
                    nichts zu tun; diese werden beim Deaktivieren abgeschaltet).
                with_existing_aml:
                  type: integer
                  description: >-
                    Profile, deren bestehendes AML-Screening auf überwacht
                    umgestellt wird (kein neues Screening).
                needing_screening:
                  type: integer
                  description: >-
                    Profile ohne bisheriges AML-Screening, die zuerst gescreent
                    werden (abgerechnet als reguläres AML-Screening).
                skipped_no_identity_data:
                  type: integer
                  description: >-
                    Profile, die nicht gescreent werden können, da
                    Identitätsdaten fehlen.
                skipped_blocked:
                  type: integer
                  description: >-
                    Gesperrte Benutzer, die übersprungen werden (bei Unternehmen
                    immer 0).
                estimated_screening_cost_usd:
                  type: number
                  example: 0.2
                  description: Einmalige Kosten für die neuen Screenings.
                estimated_annual_monitoring_cost_usd:
                  type: number
                  example: 0.07
                  description: >-
                    Jährliche Überwachungskosten für die Profile, die künftig
                    überwacht werden.
                balance_sufficient:
                  type: boolean
                  description: >-
                    Gibt an, ob das Guthaben der Organisation das Screening plus
                    das erste Jahr der Überwachung abdeckt.
            unmatched:
              type: array
              items:
                type: string
              description: >-
                Kennungen der Anfrage, die mit keinem Profil in dieser Anwendung
                übereinstimmten, exakt wie gesendet. Sie sind nicht Teil des
                Auftrags.
    AMLMonitoringJob:
      type: object
      properties:
        job_id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - COMPLETED
            - FAILED
        is_enabled:
          type: boolean
          description: >-
            true, wenn der Job die Überwachung aktiviert, false, wenn er sie
            deaktiviert.
        target_type:
          type: string
          enum:
            - user
            - business
          description: Welche Profilfamilie der Auftrag umschaltet.
        total:
          type: integer
          description: Profile, die der Job verarbeitet.
        processed:
          type: integer
          description: Bisher verarbeitete Profile.
        outcomes:
          type: object
          description: >-
            Ergebniszähler pro Datensatz. Jedes ausgewählte Profil wird genau
            einem Zähler zugeordnet; nichts wird stillschweigend übersprungen.
          properties:
            enabled:
              type: integer
              description: Überwachung für ein bestehendes AML-Screening aktiviert.
            screened_and_enabled:
              type: integer
              description: >-
                Ein neues AML-Screening wurde erstellt (in Rechnung gestellt)
                und die Überwachung dafür aktiviert.
            already_enabled:
              type: integer
              description: >-
                Überwachung war bereits aktiv; es wurde nichts geändert und
                nichts in Rechnung gestellt.
            disabled:
              type: integer
              description: Überwachung für jedes AML-Screening des Profils deaktiviert.
            skipped_no_identity_data:
              type: integer
              description: >-
                Übersprungen: Dem Profil fehlen der vollständige Name, das
                Geburtsdatum und das Land (Benutzer) oder ein Name
                (Unternehmen), die für das Screening erforderlich sind.
            skipped_blocked:
              type: integer
              description: 'Übersprungen: Der Benutzer ist gesperrt.'
            skipped_sandbox:
              type: integer
              description: >-
                Übersprungen: Sandbox-Anwendung, es wird kein Screening
                erstellt.
            failed_provider:
              type: integer
              description: >-
                Das Screening konnte nicht abgeschlossen werden; versuchen Sie
                es später erneut.
            failed_insufficient_balance:
              type: integer
              description: Das Guthaben wurde aufgebraucht, während der Auftrag lief.
        results:
          type: array
          description: >-
            Ein Eintrag pro verarbeitetem Profil, in der Reihenfolge der
            Verarbeitung. Wächst, während der Job läuft; vollständig, sobald der
            Status COMPLETED ist. Erfasst für Jobs, die über die API gestartet
            wurden.
          items:
            type: object
            properties:
              didit_internal_id:
                type: string
                format: uuid
                description: Interne Didit-ID des Profils.
              vendor_data:
                type: string
                nullable: true
                description: Ihre eigene Kennung für das Profil.
              outcome:
                type: string
                enum:
                  - enabled
                  - screened_and_enabled
                  - already_enabled
                  - disabled
                  - skipped_no_identity_data
                  - skipped_blocked
                  - skipped_sandbox
                  - failed_provider
                  - failed_insufficient_balance
        error:
          type: string
          nullable: true
          description: >-
            Generische Fehlermeldung, wenn der Status FAILED lautet; die
            detaillierte Ursache verbleibt auf Plattformseite.
        created_at:
          type: string
          format: date-time
        completed_at:
          type: string
          format: date-time
          nullable: true
        estimate:
          type: object
          description: >-
            Kostenvorschau. Wird direkt zurückgegeben, wenn estimate_only wahr
            ist (es wird nichts geschrieben).
          properties:
            users_total:
              type: integer
              description: Profile, die der Auswahl entsprechen.
            already_enabled:
              type: integer
              description: >-
                Profile, die bereits überwacht werden (beim Aktivieren ist
                nichts zu tun; diese werden beim Deaktivieren abgeschaltet).
            with_existing_aml:
              type: integer
              description: >-
                Profile, deren bestehendes AML-Screening auf überwacht
                umgestellt wird (kein neues Screening).
            needing_screening:
              type: integer
              description: >-
                Profile ohne bisheriges AML-Screening, die zuerst gescreent
                werden (abgerechnet als reguläres AML-Screening).
            skipped_no_identity_data:
              type: integer
              description: >-
                Profile, die nicht gescreent werden können, da Identitätsdaten
                fehlen.
            skipped_blocked:
              type: integer
              description: >-
                Gesperrte Benutzer, die übersprungen werden (bei Unternehmen
                immer 0).
            estimated_screening_cost_usd:
              type: number
              example: 0.2
              description: Einmalige Kosten für die neuen Screenings.
            estimated_annual_monitoring_cost_usd:
              type: number
              example: 0.07
              description: >-
                Jährliche Überwachungskosten für die Profile, die künftig
                überwacht werden.
            balance_sufficient:
              type: boolean
              description: >-
                Gibt an, ob das Guthaben der Organisation das Screening plus das
                erste Jahr der Überwachung abdeckt.
        unmatched:
          type: array
          items:
            type: string
          description: >-
            Kennungen der Anfrage, die mit keinem Profil in dieser Anwendung
            übereinstimmten, exakt wie gesendet. Sie sind nicht Teil des
            Auftrags.
  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.

````

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