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

# Wiederholungsversuch für Async-Bericht – API

> Didit-Export erneut starten oder fehlgeschlagene Verifizierungen wählen. Nur für Anfragende; gelöschte Sitzungen ausgeschlossen.

> [!WARNING]
>
> Selektiver Wiederholungsversuch erfordert die Identität des ursprünglichen anfragenden Benutzers. Ein API-Schlüssel oder ein Anwendungs-Token ohne diese Identität erhält beim Senden von `item_ids` den Statuscode `403`, auch für die eigene Anwendung. Das generierte Beispiel für den API-Schlüssel führt den gesamten Export mit einem leeren Anfragetext erneut aus.

Die API von Didit für asynchrone Berichte führt einen Export erneut aus oder reiht ausgewählte fehlgeschlagene Verifizierungselemente in die Warteschlange ein. Ein neuer Wiederholungsversuch gibt `201` zurück; eine identische Auswahl fehlgeschlagener Elemente gibt den bestehenden Bericht mit `200` zurück.

Lesen Sie die Live-IDs unter [Asynchronen Bericht abrufen](https://docs.didit.me/de/management-api/reports/retrieve.md) und folgen Sie der [Anleitung zu Wiederholungsversuchen für fehlgeschlagene Elemente](https://docs.didit.me/de/console/export-pdf-csv.md#fehlgeschlagene-exportelemente-wiederholen). Senden Sie 1 bis 1000 IDs aus einem `SESSION_EXPORT` mit dem Status `READY` oder `FAILED`, ohne einen ersetzenden Datumsbereich. Gelöschte Sitzungen können nicht wiederholt werden.


## OpenAPI

````yaml de/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/reports/{report_uuid}/retry/
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/organization/{organization_id}/application/{application_id}/reports/{report_uuid}/retry/:
    post:
      tags:
        - Reports
      summary: Asynchronen Bericht erneut versuchen
      description: >-
        Erfordert Leseberechtigungen für alle Ressourcen, die der Bericht
        umfasst. Anmeldedaten von Anwendungen bzw. API-Schlüsseln müssen zur
        Anwendung im Pfad gehören. Mitglieds-Bearer-Token müssen Zugriff auf die
        Anwendung haben. Außerdem sind Schreibberechtigungen für die zu
        exportierenden Ressourcen erforderlich. Lassen Sie item_ids weg, um den
        ursprünglichen Export erneut auszuführen, optional über einen anderen
        Datumsbereich. Ein Bericht, der als Wiederholungsversuch für
        fehlgeschlagene Elemente erstellt wurde, erfordert für weitere
        Wiederholungsversuche eine explizite Auswahl über item_ids. Bei item_ids
        kann nur der ursprüngliche Anforderer (ein requested_by_user_id ungleich
        null, das dem authentifizierten Benutzer entspricht) einen READY- oder
        FAILED-SESSION_EXPORT erneut versuchen. Ein API-Schlüssel oder ein
        Anwendungstoken ohne diese Benutzeridentität erhält bei einem selektiven
        Wiederholungsversuch 403. Wählen Sie nur aktive fehlgeschlagene
        Sitzungen aus dem ursprünglichen Export aus; gelöschte Sitzungen können
        nicht erneut exportiert werden. Der ursprüngliche Bericht bleibt
        unverändert. Die erste Auswahl erstellt einen neuen Bericht (201); eine
        Wiederholung mit identischer ausgewählter Menge gibt den bestehenden
        Wiederholungsbericht zurück (200). Überlappende oder abweichende
        Auswahlen, die bereits einem anderen Wiederholungsversuch zugewiesen
        sind, geben 400 zurück. Siehe [Fehlgeschlagene Exportelemente erneut
        versuchen](https://docs.didit.me/de/console/export-pdf-csv#fehlgeschlagene-exportelemente-wiederholen).
      operationId: retry_reports
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Organisations-ID.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Anwendungs-ID.
        - name: report_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Berichts-UUID.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AsyncReportRetryRequest'
            example: {}
      responses:
        '200':
          description: >-
            Identische Wiederholung einer Auswahl fehlgeschlagener Elemente;
            gibt den bestehenden Wiederholungsbericht zurück, ohne einen
            weiteren in die Warteschlange zu stellen.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncReport'
        '201':
          description: Neuer Export in der Warteschlange.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncReport'
        '400':
          description: >-
            Ungültige oder leere Auswahl, mehr als 1000 IDs, IDs, die nicht zu
            den aktiven fehlgeschlagenen Sitzungen dieses Berichts gehören, ein
            Export, der nicht abgeschlossen ist oder nicht sitzungsbezogen ist,
            widersprüchliche Auswahl für die Wiederholung oder ein ungültiger
            bzw. gemischter Datumsbereich.
        '401':
          description: Fehlende, ungültige oder abgelaufene Zugangsdaten.
        '403':
          description: >-
            Fehlende Lese-/Schreibberechtigungen oder selektiver
            Wiederholungsversuch durch eine andere Person als den ursprünglichen
            Anfragenden, einschließlich eines Aufrufers ohne Benutzeridentität.
        '404':
          description: Bericht in dieser Anwendung nicht gefunden.
        '409':
          description: >-
            Der Bericht wird gerade gelöscht; er kann nicht erneut versucht
            werden.
        '429':
          $ref: '#/components/responses/RateLimitedWrite'
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            client = Didit()

            result = client.reports.retry(
                "11111111-2222-3333-4444-555555555555",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            const didit = new Didit();


            const result = await
            didit.reports.retry("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\nresult, err := client.Reports.Retry(ctx, \"11111111-2222-3333-4444-555555555555\", didit.AsyncReportRetryRequest{})\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.AsyncReportRetryRequest;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            var result =
            client.reports().retry("11111111-2222-3333-4444-555555555555");

            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            $didit = new DiditClient();


            $result =
            $didit->reports->retry('11111111-2222-3333-4444-555555555555');

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

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            didit = Didit::Client.new

            result = didit.reports.retry("11111111-2222-3333-4444-555555555555")
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            using var client = new DiditClient();


            var result = await
            client.Reports.RetryAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    AsyncReportRetryRequest:
      type: object
      properties:
        item_ids:
          type: array
          description: >-
            Optionale Auswahl von 1 bis 1000 fehlgeschlagenen
            Live-Sitzungs-UUIDs aus diesem Export. Duplikate werden zu einem
            Eintrag zusammengefasst. Nur der ursprüngliche Anfragende darf eine
            Teilmenge erneut versuchen. Kann nicht mit date_from/date_to
            kombiniert werden.
          items:
            type: string
            format: uuid
          minItems: 1
          maxItems: 1000
        date_from:
          type: string
          description: >-
            Optionaler neuer Beginn des Zeitraums. Senden Sie beide Daten in der
            richtigen Reihenfolge. Bei einem Wiederholungsversuch für
            fehlgeschlagene Elemente weglassen.
          format: date
        date_to:
          type: string
          description: Optionales neues Ende des Zeitraums, am oder nach date_from.
          format: date
        notify_on_ready:
          type: boolean
          description: >-
            Den Anfordernden per E-Mail benachrichtigen, sobald der Bericht
            fertig ist, sofern eine E-Mail-Adresse des Anfordernden verfügbar
            ist.
          default: false
    AsyncReport:
      type: object
      required:
        - uuid
        - report_type
        - report_type_display
        - status
        - status_display
        - parameters
        - requested_by_user_id
        - requested_by_email
        - requested_by_name
        - row_count
        - failed_item_ids
        - failed_count
        - file_size
        - files
        - scheduled_report
        - error_message
        - deletion_pending
        - eta_seconds
        - started_at
        - completed_at
        - expires_at
        - created_at
        - updated_at
      properties:
        uuid:
          type: string
          description: Berichts-ID.
          format: uuid
        report_type:
          type: string
          description: Art des Exports oder Compliance-Berichts.
          enum:
            - SESSION_EXPORT
            - TRANSACTION_EXPORT
            - BUSINESS_EXPORT
            - VENDOR_USER_EXPORT
            - VENDOR_BUSINESS_EXPORT
            - CASE_EXPORT
            - CASE_SLA_EXPORT
            - LIST_ENTRY_EXPORT
            - EVENT_EXPORT
            - COMPLIANCE_KYC_KYB
            - COMPLIANCE_AML_LOG
            - COMPLIANCE_TRAVEL_RULE
            - COMPLIANCE_SANCTIONS_PEP
            - COMPLIANCE_RISK_SUMMARY
            - COMPLIANCE_SAR_STR_DRAFT
            - COMPLIANCE_CTR
            - COMPLIANCE_CASE_SUMMARY
        report_type_display:
          type: string
          description: Anzeigebezeichnung für die Berichtsart.
        status:
          type: string
          description: >-
            Status der Generierung. READY kann einzelne Fehler enthalten;
            failed_count prüfen.
          enum:
            - PENDING
            - PROCESSING
            - READY
            - FAILED
        status_display:
          type: string
          description: Anzeigebezeichnung für den Generierungsstatus.
        parameters:
          type: object
          description: >-
            Ursprüngliche Exportoptionen. Die Schlüssel hängen vom report_type
            ab.
          additionalProperties: true
        requested_by_user_id:
          type: string
          description: >-
            Identität des ursprünglichen Anfragenden oder null für Aufrufer ohne
            Benutzeridentität.
          format: uuid
          nullable: true
        requested_by_email:
          type: string
          description: E-Mail-Adresse des Anfragenden, sofern verfügbar.
          nullable: true
        requested_by_name:
          type: string
          description: Anzeigename des Anfragenden, sofern verfügbar.
          nullable: true
        row_count:
          type: integer
          description: Anzahl der exportierten Datensätze oder null vor der Generierung.
          nullable: true
        failed_item_ids:
          type: array
          description: >-
            Live-Sitzungs-UUIDs, die in diesem Verifizierungsexport
            fehlgeschlagen sind. Gelöschte Sitzungen sind ausgeschlossen.
            Verwenden Sie diese IDs für einen selektiven Wiederholungsversuch.
          items:
            type: string
            format: uuid
        failed_count:
          type: integer
          description: Anzahl der Einträge in failed_item_ids.
          minimum: 0
        file_size:
          type: integer
          description: >-
            Gesamtgröße der erzeugten Datei in Bytes oder null vor der
            Erzeugung.
          format: int64
          nullable: true
        files:
          type: array
          description: Metadaten der generierten Datei; enthält keine Download-URLs.
          items:
            $ref: '#/components/schemas/AsyncReportFile'
        scheduled_report:
          type: string
          description: Zeitplan-Kennung oder null bei einem nicht geplanten Bericht.
          format: uuid
          nullable: true
        error_message:
          type: string
          description: Fehler bei der Generierung, sofern verfügbar.
          nullable: true
        deletion_pending:
          type: boolean
          description: Ob eine angeforderte Löschung noch läuft.
        eta_seconds:
          type: integer
          description: >-
            Geschätzte Sekunden bis zum Abschluss für einen ausstehenden oder in
            Verarbeitung befindlichen Bericht; null ohne Verlauf oder wenn der
            Bericht fertig ist.
          nullable: true
        started_at:
          type: string
          description: Startzeitpunkt der Generierung.
          format: date-time
          nullable: true
        completed_at:
          type: string
          description: Zeitpunkt des Abschlusses der Generierung.
          format: date-time
          nullable: true
        expires_at:
          type: string
          description: Ablaufzeitpunkt des Berichts.
          format: date-time
        created_at:
          type: string
          description: Erstellungszeitpunkt.
          format: date-time
        updated_at:
          type: string
          description: Zeitpunkt der letzten Aktualisierung.
          format: date-time
      example:
        uuid: 00000000-0000-4000-8000-000000000002
        report_type: SESSION_EXPORT
        report_type_display: Verifications
        status: READY
        status_display: Ready
        parameters: {}
        requested_by_user_id: null
        requested_by_email: null
        requested_by_name: null
        row_count: 9
        failed_item_ids:
          - 00000000-0000-4000-8000-000000000001
        failed_count: 1
        file_size: 1200
        files:
          - name: verifications.csv
            format: csv
            rows: 9
            bytes: 1200
        scheduled_report: null
        error_message: null
        deletion_pending: false
        eta_seconds: null
        started_at: '2026-11-11T01:00:00Z'
        completed_at: '2026-11-11T01:01:00Z'
        expires_at: '2026-12-11T01:00:00Z'
        created_at: '2026-11-11T01:00:00Z'
        updated_at: '2026-11-11T01:01:00Z'
    AsyncReportFile:
      type: object
      required:
        - name
        - format
        - rows
        - bytes
      properties:
        name:
          type: string
          description: Dateiname.
        format:
          type: string
          description: Dateiformat.
        rows:
          type: integer
          description: Exportierte Datensätze in dieser Datei, sofern zutreffend.
          nullable: true
        bytes:
          type: integer
          description: Dateigröße in Bytes.
          format: int64
    RateLimitBudgetError:
      type: object
      description: >-
        Wird nur bei einer Ablehnung durch das Rate-Limit-Budget der Middleware
        zurückgegeben. Andere 429-Fehler, einschließlich Idempotenzkonflikten
        und endpunktspezifischer Obergrenzen, garantieren diese Metadatenfelder
        nicht.
      required:
        - detail
        - reference
        - limit
        - remaining
        - reset
        - window_seconds
      properties:
        detail:
          type: string
          description: Bestehende, für Menschen lesbare Meldung zur Budgetablehnung.
        reference:
          type: string
          pattern: ^RL-[0-9a-f]{32}$
          description: >-
            Opake Support-Referenz: RL- gefolgt von 32 hexadezimalen Zeichen der
            UUID in Kleinbuchstaben.
        limit:
          type: integer
          description: >-
            Budget für den überschrittenen Bereich; entspricht
            X-RateLimit-Limit.
        remaining:
          type: integer
          minimum: 0
          description: >-
            Verbleibendes Budget, auf null begrenzt. Entspricht
            X-RateLimit-Remaining.
        reset:
          type: integer
          format: int64
          description: >-
            Reset-Zeit des Zeitfensters in Unix-Sekunden; entspricht
            X-RateLimit-Reset.
        window_seconds:
          type: integer
          description: >-
            Dauer des festen Zeitfensters in Sekunden, nicht die verbleibende
            Wartezeit. Vor einem erneuten Versuch Retry-After beachten.
      example:
        detail: >-
          Write request rate limit exceeded. You can make up to 300 requests per
          minute.
        reference: RL-00000000000040008000000000000001
        limit: 300
        remaining: 0
        reset: 1794358860
        window_seconds: 60
  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:
            $ref: '#/components/schemas/RateLimitBudgetError'
          example:
            detail: >-
              Write request rate limit exceeded. You can make up to 300 requests
              per minute.
            reference: RL-00000000000040008000000000000001
            limit: 300
            remaining: 0
            reset: 1794358860
            window_seconds: 60
      headers:
        Retry-After:
          $ref: '#/components/headers/BudgetRetryAfter'
        X-RateLimit-Scope:
          $ref: '#/components/headers/BudgetXRateLimitScope'
        X-RateLimit-Limit:
          $ref: '#/components/headers/BudgetXRateLimitLimit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/BudgetXRateLimitRemaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/BudgetXRateLimitReset'
  headers:
    BudgetRetryAfter:
      description: >-
        Wartezeit in Sekunden, aufgerundet auf das nächste Zeitfenster.
        Vorhanden bei Ablehnungen durch das Middleware-Budget.
      schema:
        type: integer
    BudgetXRateLimitScope:
      description: >-
        Der Geltungsbereich, dessen Budget überschritten wurde. Vorhanden bei
        Ablehnungen durch das Middleware-Budget.
      schema:
        type: string
    BudgetXRateLimitLimit:
      description: >-
        Budget für den überschrittenen Bereich; entspricht dem Limit im Body.
        Vorhanden bei Ablehnungen durch das Middleware-Budget.
      schema:
        type: integer
    BudgetXRateLimitRemaining:
      description: >-
        Verbleibendes Budget, auf null begrenzt. Entspricht remaining im Body.
        Bei Ablehnungen durch das Middleware-Budget vorhanden.
      schema:
        type: integer
    BudgetXRateLimitReset:
      description: >-
        Reset-Zeit in Unix-Sekunden; entspricht dem Body-Feld reset. Vorhanden
        bei Ablehnungen durch das Middleware-Budget.
      schema:
        type: integer
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Der API-Schlüssel Ihrer Anwendung, aus Entwickler -> API-Schlüssel in
        der Business Console. Der Primärschlüssel hat Vollzugriff. Ein benannter
        Schlüssel kann im Geltungsbereich eingeschränkt werden: keine, Lese-
        oder Schreibberechtigung pro Ressource, beschränkt auf bestimmte
        Workflows oder genehmigte Sitzungen, auf eine Liste von IP-Adressen und
        auf ein Ablaufdatum. 401 bedeutet, dass der Schlüssel falsch, widerrufen
        oder abgelaufen ist; 403 bedeutet, dass kein Schlüssel gesendet wurde,
        der Schlüssel keinen Zugriff auf diese Ressource oder Aktion hat oder
        die Anfrage von einer Adresse außerhalb seiner IP-Liste stammte; 404 bei
        einer Sitzungsroute bedeutet, dass die Sitzung außerhalb der Workflows
        oder Status des Schlüssels liegt. Ein Schlüssel ohne Medienzugriff
        erhält Bild-, Video- und PDF-URLs als null, und ein Schlüssel ohne
        Schreibberechtigung für Sitzungen erhält Sitzungslinks und Token als
        null. Siehe https://docs.didit.me/console/api-keys.
    BearerAuth:
      type: http
      scheme: bearer
      description: Das Client-Credentials-Zugriffstoken der Anwendung.

````

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