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

# Sperrliste & Freigabeliste: Listeneintrag per API erstellen

> Eintrag (Gesicht, Dokument, IP, Wallet, E-Mail, Telefon) per API zur Sperr- oder Freigabeliste in Didit hinzufügen.



Prompt für die API zum Erstellen eines Listeneintrags
        Prompt in die Zwischenablage kopieren



      
      

\<pre>

\`Add an entry to a Didit list (blocklist, allowlist, or custom) through the Management API.

Endpoint:
POST https://verification.didit.me/v3/lists/{list_uuid}/entries/

Authentication:
Use the x-api-key header with my Didit API key. A scoped API key needs workflows: write.

Goal:
\- Insert a single entry into a list. Three add modes are supported:
1\. By value: pass value matching the list's entry_type.
2\. From a verification session: pass reference_session_id and Didit reads the value from the session's most recent record of the list's entry_type (face, document, phone, email, ip_address, device_fingerprint) and links the entry to the session.
3\. With a source reference: pass value plus reference_object_uuid and metadata.reference_type so the console links the entry back to the transaction, user or business it came from.

Path parameter:
\- list_uuid: list UUID from GET /v3/lists/. For a face without a session, use POST /v3/lists/{list_uuid}/entries/face-upload/ instead.

Request body (application/json):
\{
"value": "string",                  // required unless reference_session_id is sent
"reference_session_id": "uuid",     // optional: read the value from this session of my application
"reference_object_uuid": "uuid",    // optional: transaction UUID, or didit_internal_id of a user or business
"face_image_source": "liveness" | "front_image_camera_front" | "back_image_camera_front", // optional, system face blocklist + reference_session_id only; default liveness
"reference_node_id": "string",      // optional, with a document-capture face_image_source: which ID verification node's selfie to use
"display_label": "string",          // optional, at most 512 characters
"comment": "string",                // optional, reason or note
"metadata": {                       // optional, free-form; reference_image_url and front_image_url are ignored
"reference_type": "transaction" | "vendor_user" | "vendor_business",
"reference_id": "uuid"
}
}

Value validation by entry_type:
\- email: valid email address.
\- phone: valid international phone number (stored in E.164).
\- ip_address: IP address or CIDR range (e.g. 10.0.0.0/8).
\- device_fingerprint: at least 8 characters among letters, digits, -, _, : and . (a blocklist refuses a fingerprint that several distinct devices have reported).
\- country: ISO 3166-1 alpha-2 or alpha-3 (stored as alpha-3).
\- user, business: the vendor_data to block.
\- face, document, wallet_address, bank_account, key: any non-empty string.
Values are case-insensitive: country codes are stored in upper case, phone numbers in E.164, everything else in lower case.
A list holds each value once: adding a value that is already there returns 400.

Adding from a session, what Didit does:
\- Looks up the session (it must belong to the same application).
\- Reads the value from the session's most recent record of the list's entry_type:
\- face: the liveness face (value is the face UUID). With face_image_source = front_image_camera_front / back_image_camera_front, the face from the selfie the front camera took while the user photographed the front / back of their document instead (system face blocklist only, leave value empty).
\- document: the document number; full_name, issuing_state, document_type, region and document_number go into metadata.
\- phone / email: the phone number / email address.
\- ip_address: the session's IP address.
\- device_fingerprint: a fingerprint that identifies one device. On a blocklist, Didit refuses a session that only has a device-class fingerprint or was completed on more than one device; pass the exact fingerprint as value in that case.
\- Links the entry to the session (reference_session_id) and to that record (reference_object_uuid).
\- If I also send value, Didit stores my value but still links the most recent record. To list a value from an earlier record, add it by value without reference_session_id.

Example calls:
\# By value
curl -X POST "https://verification.didit.me/v3/lists/{list_uuid}/entries/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"value": "+14155552671", "comment": "Reported fraud"}'

\# From a session
curl -X POST "https://verification.didit.me/v3/lists/{list_uuid}/entries/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"reference_session_id": "33333333-4444-5555-6666-777777777777"}'

\# The face from the selfie taken during document capture (system face blocklist)
curl -X POST "https://verification.didit.me/v3/lists/{list_uuid}/entries/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"reference_session_id": "33333333-4444-5555-6666-777777777777", "face_image_source": "front_image_camera_front"}'

\# From a transaction
curl -X POST "https://verification.didit.me/v3/lists/{list_uuid}/entries/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"value": "0x52908400098527886E0F7030069857D2E4169EE7", "reference_object_uuid": "55555555-6666-7777-8888-999999999999", "metadata": {"reference_type": "transaction"}}'

Failure modes:
\- 400: value fails the entry_type validator or is already in the list, neither value nor reference_session_id was sent, reference_session_id is not a session of this application, or the session has no data of the list's entry_type.
\- 400 (face_image_source): the list is not the system face blocklist, value was sent, the session has no image for that source, no clear face was found in that selfie, or that selfie is already in the blocklist.
\- 401: the API key has expired.
\- 403: missing x-api-key (a wrong, revoked or expired key gets 401) ({ "detail": "You do not have permission to perform this action." }), or a scoped key without workflows: write.
\- 404: list not found in this application ({ "detail": "List not found." }).
\- 503 (face_image_source): face analysis is temporarily unavailable; nothing was added, retry later.
\- 429: rate limited (see /integration/rate-limiting); back off and retry.

Side effects:
\- System face, document, phone and email blocklists: a record read from a session is flagged as blocklisted at once, and new sessions that match it are declined.
\- System user and business blocklists: users or businesses of the application whose vendor_data equals value (or whose UUID equals reference_object_uuid) are set to BLOCKED.
\- Sessions and transactions that already finished are not changed.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

Einfügen in

Füge einen Eintrag zu einer Liste hinzu. Der Wert wird anhand des Eintragstyps der Liste validiert:* **email**: eine gültige E-Mail-Adresse
* **phone**: eine gültige internationale Telefonnummer, gespeichert im Format E.164 (zum Beispiel `+14155552671`)
* **ip\_address**: eine gültige IP-Adresse oder ein CIDR-Bereich (z. B. `192.168.1.1` oder `10.0.0.0/8`)
* **device\_fingerprint**: mindestens 8 Zeichen aus Buchstaben, Ziffern, `-`, `_`, `:` und `.`. Eine Sperrliste lehnt einen Fingerprint ab, den mehrere unterschiedliche Geräte gemeldet haben, weil die Sperre unbeteiligte Personen abweisen würde.
* **country**: ein gültiger [ISO 3166-1 Alpha-3-Ländercode](https://docs.didit.me/de/core-technology/id-verification/supported-documents-id-verification.md) (z. B. `USA`, `GBR`, `ESP`). Alpha-2-Codes (z. B. `US`) werden akzeptiert und automatisch in Alpha-3 umgewandelt.
* **user**, **business**: der `vendor_data` des Benutzers bzw. des Unternehmens
* **face**, **document**, **wallet\_address**, **bank\_account**, **key**: eine beliebige nicht leere Zeichenkette> [!NOTE]
>
> Alle Eintragswerte werden **ohne Berücksichtigung der Groß- und Kleinschreibung** behandelt. Gesendete Werte werden beim Speichern normalisiert (Telefonnummern ins Format E.164, Ländercodes in Großbuchstaben, alles andere in Kleinbuchstaben) und bei der Verifizierung ohne Berücksichtigung der Groß- und Kleinschreibung abgeglichen. Wenn Sie zum Beispiel `User@Example.COM` sperren, wird auch `user@example.com` erkannt. Eine Liste enthält jeden Wert nur einmal: Wenn Sie einen Wert hinzufügen, der bereits in der Liste enthalten ist, wird `400` zurückgegeben.Für ein Gesicht verwenden Sie [Gesicht hochladen](https://docs.didit.me/de/management-api/lists/upload-face.md), wenn Sie nur ein Bild haben, oder senden Sie eine `reference_session_id`, um das Gesicht einer bestehenden Sitzung zu übernehmen. Ein Gesichtseintrag benötigt ein gespeichertes Gesicht zum Abgleich, das ein eingegebener `value` nicht liefert.## Hinzufügen aus einer SitzungWenn Sie eine `reference_session_id` angeben, führt Didit folgende Schritte aus:1) Didit sucht die Sitzung (sie muss zur selben Anwendung gehören).
2) Didit liest den Wert aus dem **neuesten** Datensatz der Sitzung mit dem Eintragstyp der Liste:
   * **face**: das Gesicht des Liveness-Selfies; `value` ist die Gesichts-UUID
   * **document**: die Dokumentnummer; der vollständige Name, der Ausstellungsstaat, der Dokumenttyp, die Region und die Dokumentnummer werden in `metadata` gespeichert, und `display_label` ist standardmäßig der Name des Inhabers und die Dokumentnummer
   * **phone**: die Telefonnummer
   * **email**: die E-Mail-Adresse
   * **ip\_address**: die IP-Adresse der Sitzung
   * **device\_fingerprint**: ein Fingerprint, der ein einzelnes Gerät identifiziert; bevorzugt wird ein Gerät, das einen Verifizierungsschritt abgeschlossen hat. Bei einer Sperrliste lehnt Didit eine Sitzung ab, die nur einen Fingerprint der Geräteklasse enthält oder die auf mehr als einem Gerät abgeschlossen wurde. Senden Sie in diesem Fall den exakten Fingerprint als `value`.
3) Didit verknüpft den Eintrag zur Nachverfolgbarkeit mit der Sitzung (`reference_session_id`) und mit dem Datensatz (`reference_object_uuid`).Bei den systemseitigen Sperrlisten für Gesichter, Dokumente, Telefonnummern und E-Mail-Adressen wird der Datensatz außerdem als gesperrt markiert, sodass neue Sitzungen, die ihm entsprechen, abgelehnt werden. Für alle anderen Eintragstypen senden Sie zusätzlich `value`.Didit gibt `400` zurück, wenn die Sitzung nicht gefunden wird oder keine Daten für den angeforderten Eintragstyp enthält.### Gesichter aus dem Selfie der DokumentenaufnahmeWährend der Benutzer sein Dokument fotografiert, kann die Frontkamera ein Selfie von ihm aufnehmen (die Bilder `front_image_camera_front` und `back_image_camera_front` des [Berichts zur Ausweisverifizierung](https://docs.didit.me/de/core-technology/id-verification/report-id-verification.md)). Dieses Gesicht kann zusätzlich zur Liveness-Gesichtsaufnahme in die Gesichtssperrliste aufgenommen werden. Übergeben Sie dazu `face_image_source` mit dem gewünschten Bild.```json theme={null}
{
  "reference_session_id": "33333333-4444-5555-6666-777777777777",
  "face_image_source": "front_image_camera_front"
}
```- Der Eintrag wird nur in der systemseitigen **Gesichtssperrliste** erstellt, und `value` muss leer bleiben: Didit übernimmt das Gesicht aus dem Selfie der Sitzung.
- Das Selfie muss genau ein klar erkennbares Gesicht enthalten. Ist dies nicht der Fall, gibt die Anfrage `400` zurück und es wird nichts hinzugefügt.
- Jedes Selfie kann nur einmal hinzugefügt werden. `metadata.face_image_source` und `metadata.reference_node_id` des Eintrags geben an, von welchem Selfie er stammt.
- In einem Workflow mit mehreren ID-Verifizierungsschritten wählt `reference_node_id` den Schritt, dessen Selfie verwendet wird. Standardmäßig verwendet Didit die neueste ID-Verifizierung, die dieses Selfie enthält.
- Anschließend wird das Gesicht wie jedes andere gesperrte Gesicht geprüft: gegen das Liveness-Selfie jeder neuen Sitzung und gegen jedes neue Selfie der Dokumentenaufnahme (siehe [`FRONT_CAMERA_FACE_IN_BLOCKLIST`](https://docs.didit.me/de/core-technology/id-verification/warnings-id-verification)).
- Wenn Sie den Eintrag löschen, wird das Gesicht aus der Sperrliste entfernt und nicht mehr mit neuen Sitzungen abgeglichen.### Sitzungen mit mehreren Datensätzen desselben TypsEine Sitzung kann mehrere Datensätze eines Typs enthalten, zum Beispiel zwei Telefonnummern aus einem mehrstufigen Workflow. Didit liest immer den **neuesten** Datensatz. Wenn Sie `value` zusammen mit `reference_session_id` senden, speichert der Eintrag Ihren `value`, bleibt aber mit dem neuesten Datensatz verknüpft. Auf einer systemseitigen Sperrliste wird dieser Datensatz markiert.Um einen Wert aus einem früheren Datensatz zu sperren, fügen Sie ihn nur über `value` hinzu, ohne `reference_session_id`:```json theme={null}
{
  "value": "+34612345678",
  "comment": "First phone number of session 42"
}
```## Referenzierung von Transaktionen, Benutzern und UnternehmenWenn Sie Daten aus einer Transaktion oder einem Benutzer bzw. Unternehmen des Anbieters sperren, übergeben Sie die UUID der Entität als `reference_object_uuid` und geben den Quelltyp in `metadata` an:```json theme={null}
{
  "value": "0x52908400098527886E0F7030069857D2E4169EE7",
  "reference_object_uuid": "55555555-6666-7777-8888-999999999999",
  "metadata": {
    "reference_type": "transaction",
    "reference_id": "55555555-6666-7777-8888-999999999999"
  }
}
```So können Sie in der Konsole vom Sperrlisteneintrag zur ursprünglichen Transaktion, zum ursprünglichen Benutzer oder zum ursprünglichen Unternehmen zurückspringen. Didit speichert Ihre `metadata`-Schlüssel mit Ausnahme von `reference_image_url` und `front_image_url`, die nur Didit setzt. Bei einem Eintrag, der aus einer Sitzung gelesen wird, ergänzt Didit eigene Schlüssel zu Ihren, und die Schlüssel von Didit haben Vorrang.| Quellentität | `reference_object_uuid` | `metadata.reference_type` |
| - | - | - |
| Verifizierungssitzung | Von Didit gesetzt (der Datensatz zu Gesicht, Dokument, Telefonnummer oder E-Mail) | Nicht erforderlich: verwenden Sie `reference_session_id` |
| Transaktion | Transaktions-UUID | `"transaction"` |
| Anbieterbenutzer | `didit_internal_id` | `"vendor_user"` |
| Anbieterunternehmen | `didit_internal_id` | `"vendor_business"` |Auf den systemseitigen Sperrlisten für **Benutzer** und **Unternehmen** setzt Didit außerdem die passenden Benutzer bzw. Unternehmen auf `BLOCKED`: diejenigen, deren `vendor_data` gleich `value` ist, bzw. deren `didit_internal_id` gleich `reference_object_uuid` ist. Siehe [Benutzersperrliste](https://docs.didit.me/de/entities/users/blocklist.md) und [Unternehmenssperrliste](https://docs.didit.me/de/entities/businesses/blocklist.md).


## OpenAPI

````yaml de/openapi-25.json POST /v3/lists/{list_uuid}/entries/
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/lists/{list_uuid}/entries/:
    post:
      tags:
        - Lists
      summary: Erstellen Sie einen Listeneintrag
      description: >-
        Fügt einen Eintrag zu einer Liste hinzu, auf eine von drei Arten: nach
        `value`; aus einer Verifizierungssitzung mit `reference_session_id`,
        wobei Didit den Wert aus dem neuesten Datensatz der Sitzung für den
        Eintragstyp der Liste liest und den Eintrag damit verknüpft; oder nach
        `value` mit einer `reference_object_uuid` und `metadata.reference_type`,
        die zurück auf eine Transaktion, einen Benutzer oder ein Unternehmen
        verweisen. Auf den System-Sperrlisten für Gesichter, Dokumente,
        Telefonnummern und E-Mails wird der aus der Sitzung gelesene Datensatz
        ebenfalls als auf der Sperrliste markiert, sodass neue übereinstimmende
        Sitzungen abgelehnt werden; auf den System-Sperrlisten für Benutzer und
        Unternehmen werden übereinstimmende Benutzer oder Unternehmen auf
        `BLOCKED` gesetzt. Sitzungen und Transaktionen, die bereits
        abgeschlossen sind, werden nicht geändert. Ein berechtigungsbeschränkter
        API-Schlüssel benötigt `workflows: write`. Siehe [Listeneintrag
        erstellen](https://docs.didit.me/de/management-api/lists/create-entry)
        für jeden Modus.
      operationId: create_list_entry
      parameters:
        - name: list_uuid
          in: path
          required: true
          description: >-
            UUID der Liste, zu der hinzugefügt werden soll. Für ein Gesicht, das
            Sie nur als Bild vorliegen haben, verwenden Sie stattdessen Gesicht
            in eine Liste hochladen.
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: >-
                Senden Sie `value`, `reference_session_id` oder beides. Welche
                Felder gelten, hängt vom `entry_type` der Liste ab.
              properties:
                value:
                  type: string
                  description: >-
                    Der aufzulistende Wert, validiert anhand des `entry_type`
                    der Liste: `email` eine gültige E-Mail-Adresse; `phone` eine
                    gültige internationale Nummer, gespeichert in E.164;
                    `ip_address` eine Adresse oder ein CIDR-Bereich (zum
                    Beispiel `10.0.0.0/8`); `device_fingerprint` mindestens 8
                    Zeichen aus Buchstaben, Ziffern, `-`, `_`, `:` und `.` (eine
                    Sperrliste lehnt einen Fingerprint ab, den mehrere
                    verschiedene Geräte gemeldet haben); `country` ein ISO
                    3166-1 Alpha-2- oder Alpha-3-Code, gespeichert als Alpha-3;
                    `user` und `business` die `vendor_data`; jeder andere Typ
                    eine nicht-leere Zeichenkette. Gespeichert in
                    Kleinbuchstaben mit Ausnahme von Telefonnummern und
                    Ländercodes; eine Liste enthält jeden Wert nur einmal (ohne
                    Berücksichtigung der Groß-/Kleinschreibung). Erforderlich,
                    sofern nicht `reference_session_id` übermittelt wird; muss
                    bei `face_image_source` mit Dokumentenerfassung leer
                    gelassen werden.
                reference_session_id:
                  type: string
                  format: uuid
                  description: >-
                    Eine Benutzer- oder Unternehmensverifizierungssitzung Ihrer
                    Anwendung, aus der der Wert übernommen werden soll. Didit
                    liest den neuesten Datensatz der Sitzung für den Eintragstyp
                    der Liste (`face`, `document`, `phone`, `email`,
                    `ip_address` oder `device_fingerprint`), verknüpft den
                    Eintrag mit der Sitzung sowie diesem Datensatz und füllt
                    `display_label` und `metadata` für Dokumente aus. Bei einer
                    `device_fingerprint`-Sperrliste wird eine Sitzung abgelehnt,
                    die nur über einen Fingerabdruck der Geräteklasse verfügt
                    oder auf mehr als einem Gerät abgeschlossen wurde: Senden
                    Sie den exakten Fingerabdruck als `value`. Bei anderen
                    Eintragstypen oder wenn die Sitzung keinen solchen Datensatz
                    aufweist, senden Sie ebenfalls `value`; Ihr `value` wird
                    dann gespeichert und der Eintrag bleibt weiterhin mit der
                    Sitzung verknüpft.
                reference_object_uuid:
                  type: string
                  format: uuid
                  description: >-
                    UUID des Datensatzes, für den der Eintrag steht, wenn er
                    nicht aus einer Sitzung stammt: eine Transaktions-UUID oder
                    die `didit_internal_id` eines Benutzers oder Unternehmens.
                    Kombinieren Sie dies mit `metadata.reference_type`. Wird
                    durch den Datensatz der Sitzung ersetzt, wenn
                    `reference_session_id` einen bereitstellt.
                face_image_source:
                  type: string
                  enum:
                    - liveness
                    - front_image_camera_front
                    - back_image_camera_front
                  default: liveness
                  description: >-
                    Gesichtslisten mit `reference_session_id`: Aus welchem der
                    Bilder der Sitzung das Gesicht entnommen wird. `liveness`
                    (Standard) ist das Liveness-Selfie.
                    `front_image_camera_front` und `back_image_camera_front`
                    sind die Selfies, die die Frontkamera aufgenommen hat,
                    während der Benutzer die Vorder- oder Rückseite seines
                    Dokuments fotografiert hat: werden nur für die systemweite
                    Gesichtssperrliste akzeptiert, mit `reference_session_id`
                    und einem leeren `value`. Jedes Selfie kann einmal
                    hinzugefügt werden und muss ein einzelnes, deutliches
                    Gesicht zeigen.
                reference_node_id:
                  type: string
                  nullable: true
                  maxLength: 100
                  description: >-
                    Bei einer Dokumentenerfassung mit `face_image_source`: Der
                    Knoten der Ausweisverifizierung, dessen Selfie verwendet
                    werden soll, bei Workflows mit mehr als einem Knoten.
                    Standardmäßig die jüngste Ausweisverifizierung, die dieses
                    Bild enthält. Wird bei `liveness` abgelehnt.
                display_label:
                  type: string
                  maxLength: 512
                  description: >-
                    Lesbare Bezeichnung. Wenn leer, leitet Didit nach
                    Möglichkeit eine aus der Sitzung ab (beispielsweise Name und
                    Dokumentennummer des Inhabers).
                comment:
                  type: string
                  description: Freitext-Notiz, beispielsweise der Grund für die Listung.
                metadata:
                  type: object
                  additionalProperties: true
                  description: >-
                    Freiform-JSON, das mit dem Eintrag gespeichert und
                    unverändert zurückgegeben wird. Verwenden Sie
                    `reference_type` und `reference_id`, damit die Konsole
                    zurück zur Quelle verlinkt. `reference_image_url` und
                    `front_image_url` werden ausschließlich von Didit festgelegt
                    und verworfen, falls Sie sie senden. Bei einem aus einer
                    Sitzung gelesenen Eintrag werden die Schlüssel von Didit mit
                    Ihren zusammengeführt.
                  properties:
                    reference_type:
                      type: string
                      enum:
                        - transaction
                        - vendor_user
                        - vendor_business
                      description: Worauf `reference_object_uuid` verweist.
                    reference_id:
                      type: string
                      description: Kennung des Quelldatensatzes.
            examples:
              By value:
                value:
                  value: '+14155552671'
                  comment: Reported fraud
              From a session:
                value:
                  reference_session_id: 33333333-4444-5555-6666-777777777777
              Face from a document-capture selfie:
                value:
                  reference_session_id: 33333333-4444-5555-6666-777777777777
                  face_image_source: front_image_camera_front
              From a transaction:
                value:
                  value: '0x52908400098527886E0F7030069857D2E4169EE7'
                  reference_object_uuid: 55555555-6666-7777-8888-999999999999
                  comment: Linked to a chargeback
                  metadata:
                    reference_type: transaction
                    reference_id: 55555555-6666-7777-8888-999999999999
              Country:
                value:
                  value: PRK
                  comment: Sanctioned jurisdiction
      responses:
        '201':
          description: Der Eintrag wurde erstellt.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComplianceListEntry'
              examples:
                By value:
                  value:
                    uuid: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
                    value: '+14155552671'
                    display_label: ''
                    comment: Reported fraud
                    added_by: api
                    reference_session_id: null
                    reference_session_number: null
                    reference_session_type: null
                    reference_object_uuid: null
                    metadata: null
                    created_at: '2026-10-12T10:04:51.220391Z'
                Document from a session:
                  value:
                    uuid: bbbbbbbb-cccc-dddd-eeee-ffffffffffff
                    value: X1234567
                    display_label: Jane Doe - X1234567
                    comment: ''
                    added_by: api
                    reference_session_id: 33333333-4444-5555-6666-777777777777
                    reference_session_number: 1042
                    reference_session_type: kyc
                    reference_object_uuid: 66666666-7777-8888-9999-000000000000
                    metadata:
                      full_name: Jane Doe
                      issuing_state: ESP
                      document_type: ID
                      region: ''
                      document_number: X1234567
                    created_at: '2026-10-12T10:06:12.774915Z'
                From a transaction:
                  value:
                    uuid: dddddddd-eeee-ffff-0000-111111111111
                    value: '0x52908400098527886e0f7030069857d2e4169ee7'
                    display_label: ''
                    comment: Linked to a chargeback
                    added_by: api
                    reference_session_id: null
                    reference_session_number: null
                    reference_session_type: null
                    reference_object_uuid: 55555555-6666-7777-8888-999999999999
                    metadata:
                      reference_type: transaction
                      reference_id: 55555555-6666-7777-8888-999999999999
                    created_at: '2026-10-12T10:20:40.117062Z'
        '400':
          description: >-
            Der Body ist ungültig, der Wert befindet sich bereits in der Liste
            oder die Sitzung kann den Wert nicht bereitstellen.
          content:
            application/json:
              examples:
                Nothing to list:
                  value:
                    value:
                      - >-
                        Either 'value' or 'reference_session_id' must be
                        provided.
                Duplicate value:
                  value:
                    value:
                      - An entry with this value already exists in this list.
                Invalid phone:
                  value:
                    value:
                      - >-
                        Invalid phone number. Provide a valid international
                        number (e.g. +1234567890).
                Invalid IP:
                  value:
                    value:
                      - >-
                        Invalid IP address or CIDR range (e.g. 192.168.1.1 or
                        10.0.0.0/24).
                Invalid country:
                  value:
                    value:
                      - >-
                        Invalid country code: XX. Provide a valid ISO 3166-1
                        alpha-2 or alpha-3 country code.
                Device-class fingerprint:
                  value:
                    value:
                      - >-
                        This value is a device-class fingerprint: several
                        distinct devices have reported it, so blocklisting it
                        would decline unrelated people. Block the user by
                        document, face, email or phone instead.
                Unknown session:
                  value:
                    reference_session_id:
                      - >-
                        Session not found or does not belong to this
                        application.
                No data in session:
                  value:
                    value:
                      - >-
                        Either provide a 'value' or ensure the session contains
                        data for this entry type.
                Selfie on another list:
                  value:
                    face_image_source:
                      - >-
                        A document-capture selfie can only be added to the face
                        blocklist.
                No clear face in selfie:
                  value:
                    face_image_source:
                      - >-
                        No clear face was found in this selfie, so it cannot be
                        blocklisted.
                Selfie already listed:
                  value:
                    face_image_source:
                      - This selfie is already in the blocklist.
        '401':
          description: >-
            Der API-Schlüssel mit eingeschränktem Geltungsbereich ist
            abgelaufen. Andere Authentifizierungsfehler geben `403` zurück.
          content:
            application/json:
              examples:
                Expired API key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Der `x-api-key`-Header fehlt (ein falscher, widerrufener oder
            abgelaufener Schlüssel erhält `401`), oder ein API-Schlüssel mit
            Berechtigungseinschränkungen verfügt nicht über `workflows: write`
            oder wird von einer IP-Adresse außerhalb seiner Zulassungsliste
            verwendet.
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without workflows access:
                  value:
                    detail: This API key has no write access to workflows.
        '404':
          description: >-
            In der Anwendung des API-Schlüssels existiert keine Liste mit dieser
            UUID, oder sie wurde gelöscht.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: List not found.
        '429':
          $ref: '#/components/responses/RateLimitedWrite'
        '503':
          description: >-
            Die Gesichtsanalyse eines bei der Dokumentenerfassung aufgenommenen
            Selfies ist vorübergehend nicht verfügbar. Es wurde nichts
            hinzugefügt; versuchen Sie es später erneut.
          content:
            application/json:
              examples:
                Unavailable:
                  value:
                    detail: Service temporarily unavailable. Please try again later.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            'https://verification.didit.me/v3/lists/11111111-2222-3333-4444-555555555555/entries/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"value": "+14155552671", "comment": "Reported fraud"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.lists.entries.create(
                "11111111-2222-3333-4444-555555555555",
                value="+14155552671",
                comment="Reported fraud",
            )
            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.lists.entries.create("11111111-2222-3333-4444-555555555555", {
              value: "+14155552671",
              comment: "Reported fraud",
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Lists.Entries.Create(ctx, \"11111111-2222-3333-4444-555555555555\", didit.ListsEntriesCreateParams{\n\tValue:   didit.String(\"+14155552671\"),\n\tComment: didit.String(\"Reported fraud\"),\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.ListsEntriesCreateParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.lists().entries().create("11111111-2222-3333-4444-555555555555",
            ListsEntriesCreateParams.builder()
                    .value("+14155552671")
                    .comment("Reported fraud")
                    .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->lists->entries->create('11111111-2222-3333-4444-555555555555',
            [
                'value' => '+14155552671',
                'comment' => 'Reported fraud',
            ]);

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.lists.entries.create(
              "11111111-2222-3333-4444-555555555555",
              value: "+14155552671",
              comment: "Reported fraud"
            )
            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.Lists.Entries.CreateAsync("11111111-2222-3333-4444-555555555555",
            new ListsEntriesCreateParams

            {
                Value = "+14155552671",
                Comment = "Reported fraud",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    ComplianceListEntry:
      type: object
      description: Ein Wert in einer Liste.
      required:
        - uuid
        - value
        - display_label
        - comment
        - added_by
        - reference_session_id
        - reference_session_number
        - reference_session_type
        - reference_object_uuid
        - metadata
        - created_at
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            Eintrags-ID. Verwenden Sie sie als `entry_uuid` in „Listeneintrag
            löschen“.
        value:
          type: string
          description: >-
            Der gelistete Wert: eine Telefonnummer in E.164, eine
            E-Mail-Adresse, eine Dokumentennummer, eine IP-Adresse oder ein
            CIDR-Bereich, ein Geräte-Fingerprint, eine Wallet-Adresse, ein
            Bankkonto, ein Ländercode nach ISO 3166-1 Alpha-3, ein
            `vendor_data`, eine beliebige Zeichenfolge auf einer `key`-Liste
            oder die UUID des gespeicherten Gesichts auf einer Gesichtsliste.
            Von Ihnen gesendete Werte werden in Kleinbuchstaben gespeichert, mit
            Ausnahme von Telefonnummern und Ländercodes. Der Abgleich erfolgt
            ohne Berücksichtigung der Groß-/Kleinschreibung.
        display_label:
          type: string
          nullable: true
          maxLength: 512
          description: >-
            Lesbare Bezeichnung. Didit füllt sie für aus einer Sitzung
            übernommene Einträge aus (beispielsweise Name und Dokumentennummer
            des Inhabers), wenn Sie keine übermitteln.
        comment:
          type: string
          description: Freitext-Notiz. Leere Zeichenkette, wenn nicht festgelegt.
        added_by:
          type: string
          nullable: true
          description: >-
            Wer den Eintrag hinzugefügt hat: `api` (ein API-Schlüssel), die
            E-Mail-Adresse eines Benutzers der Konsole oder `console`, `system`
            oder `migration` (von Didit erstellte Einträge) oder `rule` (eine
            Transaktions- oder Überwachungsregel-Aktion).
        reference_session_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            Verifizierungssitzung, aus der der Eintrag übernommen wurde. `null`,
            wenn der Eintrag als Wert hinzugefügt wurde.
        reference_session_number:
          type: integer
          nullable: true
          description: >-
            Nummer dieser Sitzung innerhalb der Anwendung, wie in der Console
            angezeigt.
        reference_session_type:
          type: string
          nullable: true
          enum:
            - kyc
            - kyb
            - null
          description: >-
            `kyc` für eine Sitzung zur Personenverifizierung, `kyb` für eine
            Sitzung zur Unternehmensverifizierung, `null`, wenn keine Sitzung
            vorhanden ist.
        reference_object_uuid:
          type: string
          format: uuid
          nullable: true
          description: >-
            Der Datensatz, für den der Eintrag steht: der aus einer Sitzung
            gelesene Gesichts-, Dokumenten-, Telefon- oder E-Mail-Datensatz, das
            über Ein Gesicht zu einer Liste hochladen erstellte Gesicht oder die
            von Ihnen gesendete UUID (z. B. eine Transaktions-UUID oder die
            `didit_internal_id` eines Benutzers).
        metadata:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Zusätzlicher Kontext. Enthält die von Didit festgelegten Schlüssel
            (hier aufgeführt), zusammengeführt mit allen `metadata`, die Sie
            beim Erstellen des Eintrags gesendet haben, zurückgegeben wie
            gespeichert. `null`, wenn keine vorhanden sind.
          properties:
            reference_image_url:
              type: string
              description: >-
                Gesichtseinträge: kurzlebige signierte URL, die bei jedem Aufruf
                neu ausgestellt wird; `null` für einen
                berechtigungseingeschränkten API-Schlüssel ohne `media: read`.
                Fehlt, wenn kein Bild zum Eintrag gehört.
            front_image_url:
              type: string
              description: >-
                Dokumenteneinträge, die ein Bild der Dokumentenvorderseite
                enthalten: kurzlebige signierte URL, die bei jedem Aufruf neu
                ausgestellt wird; `null` für einen berechtigungseingeschränkten
                API-Schlüssel ohne `media: read`.
            full_name:
              type: string
              description: >-
                Aus einer Sitzung übernommene Dokumenteneinträge: vollständiger
                Name des Inhabers.
            issuing_state:
              type: string
              description: >-
                Aus einer Sitzung übernommene Dokumenteneinträge:
                Ausstellungsland nach ISO 3166-1 Alpha-3.
            document_type:
              type: string
              description: >-
                Aus einer Sitzung übernommene Dokumenteneinträge:
                Dokumenttyp-Code, zum Beispiel `P`, `ID` oder `DL`.
            region:
              type: string
              description: >-
                Aus einer Sitzung übernommene Dokumenteneinträge:
                Ausstellungs-Bundesstaat oder -Provinz eines regional
                ausgestellten Dokuments, leer, falls nicht zutreffend. Wird
                durch „Sitzungselemente zur Sperrliste hinzufügen“ nicht
                gesetzt.
            document_number:
              type: string
              description: >-
                Aus einer Sitzung übernommene Dokumenteneinträge: die
                Dokumentennummer.
            face_image_source:
              type: string
              enum:
                - front_image_camera_front
                - back_image_camera_front
              description: >-
                Aus einem Selfie bei der Dokumentenerfassung übernommene
                Gesichtseinträge: welches Selfie. Fehlt bei Liveness-Gesichtern.
            reference_node_id:
              type: string
              nullable: true
              description: >-
                Aus einem Selfie bei der Dokumentenerfassung übernommene
                Gesichtseinträge: der Ausweisverifizierungs-Knoten, aus dem das
                Selfie stammt.
            fingerprint_tier:
              type: string
              nullable: true
              enum:
                - persistent_id
                - composite_hash
                - legacy_fp
                - unknown
                - null
              description: >-
                Aus einer Sitzung erfasste Geräte-Fingerprint-Einträge: wie der
                Fingerprint abgeleitet wurde. `persistent_id` identifiziert ein
                einzelnes Gerät; `composite_hash` und `legacy_fp` können von
                Geräten desselben Modells geteilt werden.
            sandbox:
              type: boolean
              description: >-
                `true` bei einem Gesichtseintrag, der in einer Sandbox-Anwendung
                hochgeladen wurde; ein solcher Eintrag stimmt mit nichts
                überein.
            reference_type:
              type: string
              enum:
                - transaction
                - vendor_user
                - vendor_business
              description: >-
                Von Ihnen festgelegt: Worauf `reference_object_uuid` verweist,
                damit die Console darauf zurückverlinkt.
            reference_id:
              type: string
              description: 'Von Ihnen festgelegt: Kennung des Quelldatensatzes.'
        created_at:
          type: string
          format: date-time
          description: Wann der Eintrag hinzugefügt wurde.
  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.

````

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