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

# Vorschau der E-Mail zur erneuten Einreichung

> Prüfen Sie mit Didit Empfänger, Absender, lokalisierte Nachricht und Verifizierungslink, bevor Sie eine erneute Einreichung anfordern.

Die Vorschau ändert die Sitzung nicht und sendet keine E-Mail.
Bestätigen Sie nach Prüfung der Antwort die erneute Einreichung mit [Session-Status aktualisieren](https://docs.didit.me/de/sessions-api/update-status.md) und übergeben Sie das zurückgegebene `preview_token` als `email_preview_token`.
Der Beleg läuft nach 15 Minuten ab.
Ein geänderter oder abgelaufener Beleg liefert `409`, bevor die Sitzung geändert oder eine E-Mail gesendet wird.
Erstellen Sie nach einem Konflikt eine neue Vorschau.
Bestehende API-Integrationen dürfen den Beleg weglassen; die Konsole stellt ihn beim Bestätigen einer Vorschau bereit.

Absender und Branding richten sich nach Ihrer bestehenden [White-Label-Konfiguration](https://docs.didit.me/de/console/white-label.md).
Der Inhalt der Nachricht stammt aus der übersetzten Verifizierungsvorlage; beliebige Betreffzeilen, Nachrichtentexte und Aktions-URLs werden nicht als Vorlageneingaben akzeptiert.

## Wer die E-Mail erhält

`email_address` ist optional.
Ohne diesen Wert geht die E-Mail an die eigene Adresse der Person: an die Adresse, die sie in einem E-Mail-Verifizierungsschritt des Workflows verifiziert hat, andernfalls an die Adresse aus `contact_details`, die bei der Erstellung der Sitzung angegeben wurde.
Eine in `email_address` übergebene Adresse hat Vorrang.

`recipient_source` zeigt an, welche Adresse gilt:

| `recipient_source` | Woher `recipient` stammt |
| - | - |
| `email_verification` | Die Adresse, die die Person im Workflow verifiziert hat |
| `contact_details` | Die Adresse, die bei der Erstellung der Sitzung in `contact_details` angegeben wurde |
| `request` | Die von Ihnen übergebene `email_address` |
| `""` (leer) | Keine Adresse bekannt: `recipient` und `preview_token` sind leer, und es kann keine E-Mail gesendet werden |

## Ob die E-Mail versendet wird

`will_be_sent` ist `true`, wenn die erneute Einreichung mit `send_email: true` bestätigt wird und die E-Mail versendet wird.
Ist der Wert `false`, erklärt `not_sent_reason` den Grund:

| `not_sent_reason` | Bedeutung |
| - | - |
| `no_user_action` | Jeder ausgewählte Schritt läuft ohne die Person (zum Beispiel AML-Screening oder Datenbankvalidierung), daher wird die erneute Einreichung automatisch abgeschlossen und es wird keine E-Mail versendet. `requires_user_action` ist ebenfalls `false`. |
| `no_recipient` | Für die Person ist keine Adresse bekannt, und Sie haben keine übergeben. |
| `sandbox` | Die Sitzung ist eine Sandbox-Sitzung, und der Empfänger hat sich nicht für den E-Mail-Versand im Sandbox-Modus angemeldet; die E-Mail wird daher nur simuliert. Siehe [E-Mail-Opt-in](https://docs.didit.me/de/integration/sandbox-testing.md#otp-codes-und-e-mail-opt-in). |

## Erneute Einreichung bestätigen

Rufen Sie [Session-Status aktualisieren](https://docs.didit.me/de/sessions-api/update-status.md) mit diesen Feldern auf:

| Feld von Session-Status aktualisieren | Wert |
| - | - |
| `new_status` | `Resubmitted` |
| `nodes_to_resubmit` | Dieselbe Auswahl wie in der Vorschau (lassen Sie das Feld weg, wenn Sie es dort weggelassen haben) |
| `send_email` | `true` |
| `email_address` | `recipient` aus der Vorschau |
| `email_language` | Dieselbe `email_language`, die Sie an die Vorschau übergeben haben |
| `email_preview_token` | `preview_token` aus der Vorschau |

Die `language` in der Antwort gibt die Sprache an, in der die E-Mail verfasst ist: Englisch, wenn die angeforderte Sprache nicht angeboten wird.

## Wiederholte rein serverseitige erneute Einreichungen

Wenn jeder erneut einzureichende Schritt ohne die Person läuft (AML, Datenbankvalidierung oder IP-Analyse), kann eine Sitzung nur alle 30 Sekunden für die Person erneut eingereicht werden.
Innerhalb dieses Zeitfensters liefert die Vorschau `429` wie bei Session-Status aktualisieren, und die Wartezeit steht im Header `Retry-After`.

## Verwandte Themen

* [Session-Status aktualisieren](https://docs.didit.me/de/sessions-api/update-status.md): die erneute Einreichung bestätigen.
* [Entscheidungs-E-Mail vorab anzeigen](https://docs.didit.me/de/sessions-api/preview-decision-email.md): stattdessen die E-Mail für „genehmigt“ oder „abgelehnt“ vorab anzeigen.
* [White-Label](https://docs.didit.me/de/console/white-label.md): Absender und Branding, die in der E-Mail verwendet werden.


## OpenAPI

````yaml de/openapi-25.json POST /v3/session/{sessionId}/resubmission-preview/
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/session/{sessionId}/resubmission-preview/:
    post:
      tags:
        - Sessions
      summary: Vorschau einer E-Mail zur erneuten Einreichung anzeigen
      description: >-
        Rendern Sie die E-Mail, die einer erneuten KYC- oder KYB-Einreichung
        beiliegen würde, ohne die Sitzung zu ändern, Prüfungen zurückzusetzen,
        den Ablauf der Sitzung zu verlängern, Prüfungen durchzuführen oder
        E-Mails zu senden. Erfordert die Berechtigung `write:sessions` (ein
        berechtigungsbeschränkter API-Schlüssel benötigt Schreibzugriff auf
        Entscheidungen) und eine Sitzung im Status `Approved`, `Declined`, `In
        Review`, `Kyc Expired` oder `Abandoned`. Der Server validiert die
        ausgewählten Workflow-Schritte und rendert seine feste übersetzte
        Vorlage mit dem entsprechenden verifizierten White-Label-Absender und
        Branding. Die Anfrage kann weder Betreff, Nachrichtentext noch
        Aktions-URL festlegen.


        `email_address` ist optional. Ohne diesen Parameter geht die E-Mail an
        die eigene Adresse der Person: diejenige, die sie in einem
        E-Mail-Verifizierungsschritt des Workflows bestätigt hat, andernfalls
        die bei der Sitzungserstellung in `contact_details` angegebene Adresse.
        Eine von Ihnen übergebene Adresse hat Vorrang (`recipient_source:
        request`). Wenn keine Adresse bekannt ist und Sie keine übergeben, sind
        `recipient` und `preview_token` leere Zeichenfolgen und es kann keine
        E-Mail gesendet werden.


        Die Antwort enthält den Empfänger und die Quelle, aus der er stammt, den
        Absender, den Betreff, das HTML, die Sprache, die ermittelten Schritte,
        die Angabe, ob die Bestätigung die E-Mail sendet (`will_be_sent`,
        `not_sent_reason`) und ein signiertes `preview_token`.
        `requires_user_action` ist `false`, wenn jeder ausgewählte Schritt ohne
        die Person ausgeführt wird: Die erneute Einreichung wird dann
        selbstständig abgeschlossen und es wird keine E-Mail versendet
        (`not_sent_reason: no_user_action`).


        Diese Vorschau reserviert weder den Sitzungsstatus noch autorisiert sie
        die Zustellung. Rufen Sie nach der Prüfung [Update Session
        Status](/de/sessions-api/update-status) mit `new_status: Resubmitted`,
        denselben `nodes_to_resubmit` und derselben `email_language` wie in der
        Vorschau, `send_email: true`, `email_address` auf `recipient` gesetzt
        und `email_preview_token` auf `preview_token` gesetzt auf. Der Beleg
        läuft nach 15 Minuten ab. Wenn ein Beleg angegeben ist, geben geänderte
        Eingaben, Nachrichteninhalte, Absender oder der Sitzungsstatus vor jeder
        Mutation oder jedem Senden `409` zurück. Bestehende Integrationen können
        den Beleg weglassen. Generieren Sie die Vorschau nach einem Konflikt
        neu. Behandeln Sie die Antwort als vertraulichen Verifizierungsinhalt;
        Antworten verwenden `Cache-Control: no-store`. Rendern Sie HTML in einem
        Sandbox-Frame, niemals direkt im DOM Ihrer Anwendung.
      operationId: post_v3_session_resubmission_preview
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            UUID der zu aktualisierenden Verifizierungssitzung. Akzeptiert
            sowohl Benutzer- (KYC) als auch Unternehmens- (KYB) Sitzungs-IDs —
            der Dienst löst die ID über beide Sitzungstypen hinweg auf.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                nodes_to_resubmit:
                  type: array
                  description: >-
                    Schritte für die Vorschau unter Verwendung derselben
                    Validierung, Auswahl und Workflow-Reihenfolge wie bei einer
                    erneuten Einreichung. Weglassen, um aufgezeichnete Versuche,
                    die eine erneute Einreichung erfordern, automatisch
                    auszuwählen.
                  items:
                    type: object
                    required:
                      - node_id
                      - feature
                    properties:
                      node_id:
                        type: string
                        description: >-
                          Knotenbezeichner, wie er in der Workflow-Definition
                          der Sitzung vorkommt (z. B. `feature_ocr`,
                          `feature_liveness`).
                        example: feature_ocr
                      feature:
                        type: string
                        description: >-
                          Funktionstyp des Knotens. Die Aliase
                          `ID_VERIFICATION`, `POA`, `PHONE` und `EMAIL` werden
                          serverseitig zu `OCR`, `PROOF_OF_ADDRESS`,
                          `PHONE_VERIFICATION` und `EMAIL_VERIFICATION`
                          normalisiert. `KYB_REGISTRY`, `KYB_KEY_PEOPLE` und
                          `KYB` bestehen die Schema-Validierung, werden jedoch
                          immer mit dem in den Beispielen gezeigten
                          Business-Rule-`400`-Fehler abgelehnt.
                        enum:
                          - OCR
                          - OCR_BACK
                          - NFC
                          - AML
                          - FACE
                          - LIVENESS
                          - FACE_MATCH
                          - IP_ANALYSIS
                          - AGE_ESTIMATION
                          - PROOF_OF_ADDRESS
                          - PHONE_VERIFICATION
                          - EMAIL_VERIFICATION
                          - FACE_SEARCH
                          - DATABASE_VALIDATION
                          - QUESTIONNAIRE
                          - DOCUMENT_AI
                          - KYB_DOCUMENTS
                          - ID_VERIFICATION
                          - POA
                          - PHONE
                          - EMAIL
                          - KYB_REGISTRY
                          - KYB_KEY_PEOPLE
                          - KYB
                          - GEOLOCATION
                        example: OCR
                email_address:
                  type: string
                  format: email
                  description: >-
                    Optional. Sendet die E-Mail an diese Adresse statt an die
                    eigene Adresse der Person. Ohne diese Angabe ist der
                    Empfänger die Adresse, die die Person im Ablauf verifiziert
                    hat, andernfalls die in `contact_details` angegebene
                    Adresse. Durch diesen Aufruf wird keine E-Mail versendet.
                  example: user@example.com
                email_language:
                  type: string
                  description: >-
                    Sprache für die Benachrichtigungs-E-Mail. Akzeptiert auf
                    Schemaebene beliebige Zeichenketten; bei nicht unterstützten
                    Codes wird stillschweigend auf Englisch (`en`)
                    zurückgegriffen.
                  default: en
                  example: en
            examples:
              Person's Own Address:
                summary: >-
                  Vorschau einer erneuten Adressnachweis-Einreichung für die
                  eigene Adresse der Person anzeigen
                value:
                  nodes_to_resubmit:
                    - node_id: feature_poa_1
                      feature: POA
                  email_language: en
              Named Recipient:
                summary: >-
                  Vorschau der E-Mail für eine von Ihnen angegebene Adresse
                  anzeigen
                value:
                  nodes_to_resubmit:
                    - node_id: feature_ocr
                      feature: OCR
                  email_address: person@example.com
                  email_language: en
      responses:
        '200':
          description: >-
            Nur Vorschau. Die Sitzung bleibt unverändert und es wird keine
            E-Mail gesendet.
          content:
            application/json:
              schema:
                type: object
                required:
                  - recipient
                  - recipient_source
                  - sender
                  - sender_name
                  - sender_email
                  - sender_kind
                  - subject
                  - html
                  - text
                  - language
                  - will_be_sent
                  - not_sent_reason
                  - preview_token
                  - nodes_to_resubmit
                  - requires_user_action
                properties:
                  recipient:
                    type: string
                    description: >-
                      Die Adresse, an die die E-Mail gesendet wird. Eine leere
                      Zeichenkette, wenn keine Adresse für die Person bekannt
                      ist: Dann kann keine E-Mail gesendet werden und
                      `preview_token` ist ebenfalls leer. Übergeben Sie sie als
                      `email_address`, wenn Sie bestätigen.
                    example: person@example.com
                  recipient_source:
                    type: string
                    enum:
                      - email_verification
                      - contact_details
                      - request
                      - ''
                    description: >-
                      Woher `recipient` stammt. `request`: die von Ihnen
                      übergebene `email_address`. `email_verification`: die
                      Adresse, die die Person in einem
                      E-Mail-Verifizierungsschritt des Ablaufs verifiziert hat.
                      `contact_details`: die in `contact_details` bei der
                      Erstellung der Sitzung angegebene Adresse. Eine leere
                      Zeichenkette, wenn keine Adresse vorhanden ist.
                    example: email_verification
                  sender:
                    type: string
                    description: Der `From`-Header, mit dem die E-Mail gesendet wird.
                    example: Example App <no-reply@mail.example.com>
                  sender_name:
                    type: string
                    description: Der Teil des Anzeigenamens von `sender`.
                    example: Example App
                  sender_email:
                    type: string
                    format: email
                    description: Der Adressteil von `sender`.
                    example: no-reply@mail.example.com
                  sender_kind:
                    type: string
                    enum:
                      - customer
                      - didit
                    description: >-
                      `customer`: Die E-Mail wird von der verifizierten
                      Absender-Domain Ihrer Anwendung versendet (White-Label).
                      `didit`: Sie wird vom Didit-eigenen Absender versendet.
                    example: customer
                  subject:
                    type: string
                    description: Die Betreffzeile genau so, wie sie gesendet wird.
                    example: 'Action Required: Complete your verification in Example App'
                  html:
                    type: string
                    description: >-
                      Das HTML der E-Mail exakt so, wie es versendet wird, mit
                      eingebettetem Logo als Data-URL. Rendern Sie es in einem
                      Sandboxed-Frame, niemals direkt im DOM Ihrer Anwendung.
                    example: <!DOCTYPE html><html><body>...</body></html>
                  text:
                    type: string
                    description: >-
                      Der Text der E-Mail als Klartext, wie ihn der
                      Nachrichtenverlauf der Person speichert, für eine kompakte
                      Vorschau (das HTML bleibt die E-Mail, die die Person
                      erhält).
                    example: |-
                      Almost there

                      Some steps need to be completed again.
                      Here’s what to fix:

                      https://verify.didit.me/session/abc123
                  language:
                    type: string
                    description: >-
                      Die Sprache, in der die E-Mail verfasst ist. Englisch
                      (`en`), wenn das angeforderte `email_language` nicht
                      angeboten wird.
                    example: en
                  will_be_sent:
                    type: boolean
                    description: >-
                      Gibt an, ob das Bestätigen der Änderung mit `send_email:
                      true` diese E-Mail versendet. `false`, wenn
                      `not_sent_reason` gesetzt ist.
                    example: true
                  not_sent_reason:
                    type: string
                    nullable: true
                    enum:
                      - no_user_action
                      - no_recipient
                      - sandbox
                      - null
                    description: >-
                      Warum bei der Bestätigung keine E-Mail gesendet werden
                      würde, oder `null`, wenn sie gesendet wird.
                      `no_user_action`: Jeder ausgewählte Schritt wird ohne die
                      Person ausgeführt, sodass die erneute Einreichung von
                      selbst abgeschlossen wird und keine E-Mail versendet wird.
                      `no_recipient`: Für die Person ist keine Adresse bekannt
                      und Sie haben keine übergeben. `sandbox`: Eine
                      Sandbox-Sitzung, deren Empfänger die
                      Sandbox-E-Mail-Zustellung nicht aktiviert hat, sodass der
                      Versand nur simuliert wird.
                    example: null
                  nodes_to_resubmit:
                    type: array
                    items:
                      type: object
                      required:
                        - node_id
                        - feature
                      properties:
                        node_id:
                          type: string
                          description: >-
                            Knotenbezeichner, wie er in der Workflow-Definition
                            der Sitzung vorkommt (z. B. `feature_ocr`,
                            `feature_liveness`).
                          example: feature_ocr
                        feature:
                          type: string
                          description: >-
                            Funktionstyp des Knotens. Die Aliase
                            `ID_VERIFICATION`, `POA`, `PHONE` und `EMAIL` werden
                            serverseitig zu `OCR`, `PROOF_OF_ADDRESS`,
                            `PHONE_VERIFICATION` und `EMAIL_VERIFICATION`
                            normalisiert. `KYB_REGISTRY`, `KYB_KEY_PEOPLE` und
                            `KYB` bestehen die Schema-Validierung, werden jedoch
                            immer mit dem in den Beispielen gezeigten
                            Business-Rule-`400`-Fehler abgelehnt.
                          enum:
                            - OCR
                            - OCR_BACK
                            - NFC
                            - AML
                            - FACE
                            - LIVENESS
                            - FACE_MATCH
                            - IP_ANALYSIS
                            - AGE_ESTIMATION
                            - PROOF_OF_ADDRESS
                            - PHONE_VERIFICATION
                            - EMAIL_VERIFICATION
                            - FACE_SEARCH
                            - DATABASE_VALIDATION
                            - QUESTIONNAIRE
                            - DOCUMENT_AI
                            - KYB_DOCUMENTS
                            - ID_VERIFICATION
                            - POA
                            - PHONE
                            - EMAIL
                            - KYB_REGISTRY
                            - KYB_KEY_PEOPLE
                            - KYB
                            - GEOLOCATION
                          example: OCR
                  requires_user_action:
                    type: boolean
                    description: >-
                      Gibt an, ob mindestens eine ausgewählte Prüfung eine
                      Benutzerinteraktion erfordert. Dies lässt keinen
                      Rückschluss auf das endgültige Workflow-Ergebnis zu.
                  preview_token:
                    type: string
                    description: >-
                      Signierte Quittung für genau diese E-Mail, gültig für 15
                      Minuten. Übergeben Sie sie als `email_preview_token` an
                      [Sitzungsstatus
                      aktualisieren](/de/sessions-api/update-status). Eine leere
                      Zeichenfolge, wenn kein Empfänger vorhanden ist.
                    example: >-
                      eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000
              examples:
                Will Be Sent:
                  summary: 'Standardempfänger: die im Ablauf verifizierte Adresse'
                  value:
                    recipient: person@example.com
                    recipient_source: email_verification
                    sender: Example App <no-reply@mail.example.com>
                    sender_name: Example App
                    sender_email: no-reply@mail.example.com
                    sender_kind: customer
                    subject: 'Action Required: Complete your verification in Example App'
                    html: <!DOCTYPE html><html><body>...</body></html>
                    language: en
                    will_be_sent: true
                    not_sent_reason: null
                    nodes_to_resubmit:
                      - node_id: feature_poa_1
                        feature: PROOF_OF_ADDRESS
                    requires_user_action: true
                    preview_token: >-
                      eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000
                No User Action:
                  summary: >-
                    Es sind nur Backend-Schritte ausgewählt, daher wird keine
                    E-Mail versendet
                  value:
                    recipient: person@example.com
                    recipient_source: contact_details
                    sender: Example App <no-reply@mail.example.com>
                    sender_name: Example App
                    sender_email: no-reply@mail.example.com
                    sender_kind: customer
                    subject: 'Action Required: Complete your verification in Example App'
                    html: <!DOCTYPE html><html><body>...</body></html>
                    language: en
                    will_be_sent: false
                    not_sent_reason: no_user_action
                    nodes_to_resubmit:
                      - node_id: feature_aml
                        feature: AML
                    requires_user_action: false
                    preview_token: >-
                      eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000
          headers:
            Cache-Control:
              description: >-
                Immer `no-store`: Die Vorschau enthält Verifizierungsinhalte und
                darf nicht zwischengespeichert werden.
              schema:
                type: string
                example: no-store
        '400':
          description: >-
            Die Sitzung befindet sich nicht in einem Status, den dieser Endpoint
            akzeptiert, sie ist bereits `Resubmitted`, die ausgewählten Schritte
            können nicht erneut eingereicht werden, oder ein Feld ist ungültig.
          content:
            application/json:
              examples:
                Wrong Current Status:
                  summary: >-
                    Sitzung befindet sich nicht in einem Status, den dieser
                    Endpoint akzeptiert
                  value:
                    detail: >-
                      Only sessions with status Approved, Declined, In Review,
                      Kyc Expired, Abandoned, Resubmitted can be updated.
                      Current status: In Progress
                Already Resubmitted:
                  summary: Die Sitzung ist bereits Resubmitted
                  value:
                    - The new status is the same as the current status.
                Nothing To Resubmit:
                  summary: >-
                    Automatische Auswahl fand keinen Schritt, der erneut
                    übermittelt werden muss
                  value:
                    nodes_to_resubmit: >-
                      No features found that need resubmission. All features are
                      already approved.
                Invalid Email:
                  summary: email_address ist keine E-Mail-Adresse
                  value:
                    email_address:
                      - Enter a valid email address.
        '401':
          description: >-
            Der API-Schlüssel mit eingeschränktem Geltungsbereich ist
            abgelaufen.
          content:
            application/json:
              examples:
                Expired API Key:
                  summary: >-
                    API-Schlüssel mit eingeschränktem Berechtigungsumfang nach
                    Ablaufdatum
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Fehlende Anmeldedaten, ein Aufrufer ohne das
            `write:sessions`-Privileg, ein API-Schlüssel mit Gültigkeitsbereich
            ohne den für diesen Endpoint erforderlichen Zugriff oder eine
            `session_id`, die zu einer anderen Anwendung gehört.
          content:
            application/json:
              examples:
                Invalid Credentials:
                  summary: Fehlender oder ungültiger x-api-key
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Missing Privilege:
                  summary: Dem Aufrufer fehlt write:sessions
                  value:
                    detail: You do not have permission to perform this action.
                Scoped Key Without Access:
                  summary: >-
                    API-Schlüssel mit eingeschränktem Berechtigungsumfang ohne
                    diesen Zugriff
                  value:
                    detail: This API key has no write access to decisions.
        '404':
          description: Es existiert keine KYC- oder KYB-Sitzung mit dieser `session_id`.
          content:
            application/json:
              examples:
                Not Found:
                  summary: Unbekannte session_id
                  value:
                    detail: Not found.
        '429':
          description: >-
            Die erneut einzureichenden Schritte sind alle reine Backend-Schritte
            (AML, DATABASE_VALIDATION, IP_ANALYSIS), und die Sitzung wurde
            innerhalb der letzten 30 Sekunden bereits für reine Backend-Schritte
            erneut übermittelt, sodass Update Session Status die erneute
            Übermittlung verweigern würde. Versuchen Sie es nach dem Intervall
            in `Retry-After` erneut.
          content:
            application/json:
              examples:
                Backend-only resubmit throttled:
                  value:
                    detail: >-
                      This session was already resubmitted for backend-only
                      features within the last 30 seconds; repeating it cannot
                      change the outcome. Wait before resubmitting again.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.preview_resubmission(
                "11111111-2222-3333-4444-555555555555",
                nodes_to_resubmit=[{
                    "node_id": "feature_poa_1",
                    "feature": "POA",
                }],
                email_language="en",
            )
            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.sessions.previewResubmission("11111111-2222-3333-4444-555555555555",
            {
              nodes_to_resubmit: [{
                node_id: "feature_poa_1",
                feature: "POA",
              }],
              email_language: "en",
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.PreviewResubmission(ctx, \"11111111-2222-3333-4444-555555555555\", didit.SessionsPreviewResubmissionParams{\n\tNodesToResubmit: didit.Some([]didit.SessionsPreviewResubmissionParamsNodesToResubmit{{\n\t\tNodeID:  \"feature_poa_1\",\n\t\tFeature: \"POA\",\n\t}}),\n\tEmailLanguage: didit.String(\"en\"),\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.SessionsPreviewResubmissionParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().previewResubmission("11111111-2222-3333-4444-555555555555",
            SessionsPreviewResubmissionParams.builder()
                    .nodesToResubmit(List.of(SessionsPreviewResubmissionParams.NodesToResubmit.builder()
                            .nodeId("feature_poa_1")
                            .feature(SessionsPreviewResubmissionParams.NodesToResubmit.Feature.of("POA"))
                            .build()))
                    .emailLanguage("en")
                    .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->sessions->previewResubmission('11111111-2222-3333-4444-555555555555',
            [
                'nodes_to_resubmit' => [[
                    'node_id' => 'feature_poa_1',
                    'feature' => 'POA',
                ]],
                'email_language' => 'en',
            ]);

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

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

            result = didit.sessions.preview_resubmission(
              "11111111-2222-3333-4444-555555555555",
              nodes_to_resubmit: [{
                node_id: "feature_poa_1",
                feature: "POA",
              }],
              email_language: "en"
            )
            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.Sessions.PreviewResubmissionAsync("11111111-2222-3333-4444-555555555555",
            new SessionsPreviewResubmissionParams

            {
                NodesToResubmit = new SessionsPreviewResubmissionParamsNodesToResubmit[]
                {
                    new()
                    {
                        NodeId = "feature_poa_1",
                        Feature = "POA",
                    },
                },
                EmailLanguage = "en",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  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.