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

# Prévisualiser l'e-mail de resoumission

> Avec Didit, vérifiez le destinataire, l'expéditeur, le message localisé et le lien de vérification avant de demander une resoumission.

Un aperçu ne modifie pas la session et n'envoie pas d'e-mail.
Après avoir examiné la réponse, confirmez avec [Mettre à jour le statut de la session](https://docs.didit.me/fr/sessions-api/update-status.md) en transmettant le `preview_token` renvoyé comme `email_preview_token`.
Le reçu expire au bout de 15 minutes.
Un reçu modifié ou expiré renvoie `409` avant que la session ne soit modifiée et qu'un e-mail ne soit envoyé.
Générez un nouvel aperçu après un conflit.
Les intégrations API existantes peuvent omettre le reçu : la console le fournit lors de la confirmation d'un aperçu.

L'expéditeur et l'image de marque suivent votre [configuration de marque blanche](https://docs.didit.me/fr/console/white-label.md).
Le contenu du message provient du modèle de vérification traduit : les objets, les corps de message et les URL d'action personnalisés ne sont pas acceptés comme entrées de modèle.

## Qui reçoit l'e-mail

`email_address` est facultatif.
Sans ce champ, l'e-mail est envoyé à l'adresse de la personne : celle qu'elle a vérifiée lors d'une étape de vérification de l'e-mail du parcours, sinon celle indiquée dans `contact_details` lors de la création de la session.
Une adresse transmise dans `email_address` prévaut.

`recipient_source` indique l'adresse applicable :

| `recipient_source` | Origine de `recipient` |
| - | - |
| `email_verification` | L'adresse que la personne a vérifiée dans le parcours |
| `contact_details` | L'adresse indiquée dans `contact_details` lors de la création de la session |
| `request` | L'`email_address` que vous avez transmise |
| `""` (vide) | Aucune adresse n'est connue : `recipient` et `preview_token` sont vides et aucun e-mail ne peut être envoyé |

## Si l'e-mail est envoyé

`will_be_sent` vaut `true` lorsque la confirmation de la nouvelle soumission avec `send_email: true` envoie l'e-mail.
Lorsqu'il vaut `false`, `not_sent_reason` en indique la raison :

| `not_sent_reason` | Signification |
| - | - |
| `no_user_action` | Toutes les étapes sélectionnées s'exécutent sans la personne (par exemple Filtrage AML ou Validation en base de données), si bien que la nouvelle soumission se termine d'elle-même et aucun e-mail n'est envoyé. `requires_user_action` vaut aussi `false`. |
| `no_recipient` | Aucune adresse n'est connue pour la personne et vous n'en avez transmis aucune. |
| `sandbox` | La session est une session sandbox et le destinataire n'a pas accepté l'envoi d'e-mails en sandbox : l'e-mail est seulement simulé. Voir [consentement à l'envoi d'e-mails](https://docs.didit.me/fr/integration/sandbox-testing.md#codes-otp-et-consentement-à-recevoir-des-e-mails). |

## Confirmer la nouvelle soumission

Appelez [Mettre à jour le statut de la session](https://docs.didit.me/fr/sessions-api/update-status.md) avec ces champs :

| Champ (Mettre à jour le statut de la session) | Valeur |
| - | - |
| `new_status` | `Resubmitted` |
| `nodes_to_resubmit` | La même sélection que celle de l'aperçu (omettez-le si vous l'avez omis ici) |
| `send_email` | `true` |
| `email_address` | `recipient` de l'aperçu |
| `email_language` | Le même `email_language` que celui que vous avez envoyé pour l'aperçu |
| `email_preview_token` | `preview_token` de l'aperçu |

La valeur `language` de la réponse correspond à la langue de rédaction de l'e-mail : l'anglais est utilisé lorsque la langue demandée n'est pas proposée.

## Nouvelles soumissions répétées sans action de la personne

Lorsque chaque étape à soumettre à nouveau s'exécute sans la personne (AML, Validation en base de données ou Analyse IP), une session ne peut être soumise à nouveau pour elle qu'une fois toutes les 30 secondes.
Pendant cette fenêtre, l'aperçu renvoie `429`, comme le ferait Mettre à jour le statut de la session, avec le délai d'attente dans l'en-tête `Retry-After`.

## Voir aussi

* [Mettre à jour le statut de la session](https://docs.didit.me/fr/sessions-api/update-status.md) : confirmer la nouvelle soumission.
* [Aperçu de l'e-mail de décision](https://docs.didit.me/fr/sessions-api/preview-decision-email.md) : prévisualiser à la place l'e-mail d'approbation ou de refus.
* [Marque blanche](https://docs.didit.me/fr/console/white-label.md) : l'expéditeur et l'image de marque utilisés pour l'e-mail.


## OpenAPI

````yaml fr/openapi-25.json POST /v3/session/{sessionId}/resubmission-preview/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de vérification d'identité. Authentifiez-vous avec l'en-tête x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/resubmission-preview/:
    post:
      tags:
        - Sessions
      summary: Prévisualiser un e-mail de nouvelle soumission
      description: >-
        Générez un aperçu de l'e-mail qui accompagnerait une nouvelle soumission
        KYC ou KYB sans modifier la session, réinitialiser les vérifications,
        prolonger son expiration, effectuer les vérifications ni envoyer
        d'e-mail. Nécessite le privilège `write:sessions` (une clé API
        restreinte nécessite un accès en écriture aux décisions) et une session
        au statut `Approved`, `Declined`, `In Review`, `Kyc Expired` ou
        `Abandoned`. Le serveur valide les étapes de workflow sélectionnées et
        génère son modèle traduit fixe avec l'expéditeur vérifié en marque
        blanche et l'image de marque applicables. La requête ne peut pas définir
        d'objet, de corps de message ou d'URL d'action.


        `email_address` est facultatif. Sans ce paramètre, l'e-mail est envoyé à
        l'adresse propre de la personne : celle qu'elle a vérifiée lors d'une
        étape de vérification d'e-mail du flux, ou à défaut celle fournie dans
        `contact_details` lors de la création de la session. Une adresse que
        vous transmettez prévaut (`recipient_source: request`). Lorsqu'aucune
        adresse n'est connue et que vous n'en transmettez aucune, `recipient` et
        `preview_token` sont des chaînes vides et aucun e-mail ne peut être
        envoyé.


        La réponse inclut le destinataire et sa provenance, l'expéditeur,
        l'objet, le HTML, la langue, les étapes résolues, l'information
        indiquant si la confirmation entraîne l'envoi de l'e-mail
        (`will_be_sent`, `not_sent_reason`) et un `preview_token` signé.
        `requires_user_action` vaut `false` lorsque chaque étape sélectionnée
        s'exécute sans l'intervention de la personne : la nouvelle soumission se
        termine alors d'elle-même et aucun e-mail n'est envoyé
        (`not_sent_reason: no_user_action`).


        Cet aperçu ne réserve pas l'état de la session et n'autorise pas
        l'envoi. Après l'avoir examiné, appelez [Update Session
        Status](/fr/sessions-api/update-status) avec `new_status: Resubmitted`,
        les mêmes `nodes_to_resubmit` et `email_language` que ceux
        prévisualisés, `send_email: true`, `email_address` défini sur
        `recipient` et `email_preview_token` défini sur `preview_token`. Le reçu
        expire après 15 minutes. Lorsqu'un reçu est fourni, toute modification
        des entrées, du contenu du message, de l'expéditeur ou de l'état de la
        session renvoie un code `409` avant toute mutation ou tout envoi. Les
        intégrations existantes peuvent omettre le reçu. Régénérez l'aperçu
        après un conflit. Traitez la réponse comme un contenu de vérification
        sensible ; les réponses utilisent `Cache-Control: no-store`. Restituez
        le HTML dans un cadre sandboxé, jamais directement dans le DOM de votre
        application.
      operationId: post_v3_session_resubmission_preview
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            UUID de la session de vérification à mettre à jour. Accepte les
            identifiants de session d'utilisateur (KYC) et d'entreprise (KYB) —
            le service résout l'identifiant pour les deux types de session.
          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: >-
                    Étapes à prévisualiser, en utilisant les mêmes règles de
                    validation, de sélection et d'ordonnancement du workflow
                    qu'une nouvelle soumission. Omettez ce paramètre pour
                    sélectionner automatiquement les tentatives enregistrées
                    nécessitant une nouvelle soumission.
                  items:
                    type: object
                    required:
                      - node_id
                      - feature
                    properties:
                      node_id:
                        type: string
                        description: >-
                          Identifiant du nœud tel qu'il apparaît dans la
                          définition du workflow de la session (par exemple
                          `feature_ocr`, `feature_liveness`).
                        example: feature_ocr
                      feature:
                        type: string
                        description: >-
                          Type de fonctionnalité du nœud. Les alias
                          `ID_VERIFICATION`, `POA`, `PHONE` et `EMAIL` sont
                          normalisés côté serveur en `OCR`, `PROOF_OF_ADDRESS`,
                          `PHONE_VERIFICATION` et `EMAIL_VERIFICATION`.
                          `KYB_REGISTRY`, `KYB_KEY_PEOPLE` et `KYB` passent la
                          validation du schéma mais sont toujours rejetés avec
                          l'erreur de règle métier `400` montrée dans les
                          exemples.
                        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: >-
                    Optionnel. Envoie l'e-mail à cette adresse au lieu de celle
                    de la personne. Sans cela, le destinataire est l'adresse
                    vérifiée par la personne dans le workflow, sinon celle
                    indiquée dans `contact_details`. Aucun e-mail n'est envoyé
                    par cet appel.
                  example: user@example.com
                email_language:
                  type: string
                  description: >-
                    Langue de l'e-mail de notification. Accepte n'importe quelle
                    chaîne au niveau du schéma ; les codes non pris en charge
                    basculent silencieusement sur l'anglais (`en`).
                  default: en
                  example: en
            examples:
              Person's Own Address:
                summary: >-
                  Prévisualiser une nouvelle soumission de justificatif de
                  domicile pour l'adresse propre de la personne
                value:
                  nodes_to_resubmit:
                    - node_id: feature_poa_1
                      feature: POA
                  email_language: en
              Named Recipient:
                summary: Prévisualiser l'e-mail pour une adresse que vous indiquez
                value:
                  nodes_to_resubmit:
                    - node_id: feature_ocr
                      feature: OCR
                  email_address: person@example.com
                  email_language: en
      responses:
        '200':
          description: >-
            Prévisualisation uniquement. La session reste inchangée et aucun
            e-mail n'est envoyé.
          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: >-
                      L'adresse à laquelle l'e-mail est envoyé. Une chaîne vide
                      lorsqu'aucune adresse n'est connue pour la personne :
                      aucun e-mail ne peut alors être envoyé et `preview_token`
                      est également vide. Transmettez-la en tant que
                      `email_address` lors de la confirmation.
                    example: person@example.com
                  recipient_source:
                    type: string
                    enum:
                      - email_verification
                      - contact_details
                      - request
                      - ''
                    description: >-
                      Provenance de `recipient`. `request` : l'`email_address`
                      transmise. `email_verification` : l'adresse vérifiée par
                      la personne lors d'une étape de vérification de l'e-mail
                      du flux. `contact_details` : l'adresse fournie dans
                      `contact_details` lors de la création de la session. Une
                      chaîne vide lorsqu'il n'y a pas d'adresse.
                    example: email_verification
                  sender:
                    type: string
                    description: L'en-tête `From` avec lequel l'e-mail est envoyé.
                    example: Example App <no-reply@mail.example.com>
                  sender_name:
                    type: string
                    description: La partie nom d'affichage de `sender`.
                    example: Example App
                  sender_email:
                    type: string
                    format: email
                    description: La partie adresse de `sender`.
                    example: no-reply@mail.example.com
                  sender_kind:
                    type: string
                    enum:
                      - customer
                      - didit
                    description: >-
                      `customer` : l'e-mail est envoyé depuis le domaine
                      d'expéditeur vérifié de votre application (marque
                      blanche). `didit` : il est envoyé depuis le propre
                      expéditeur de Didit.
                    example: customer
                  subject:
                    type: string
                    description: La ligne d'objet exactement telle qu'elle est envoyée.
                    example: 'Action Required: Complete your verification in Example App'
                  html:
                    type: string
                    description: >-
                      Le HTML de l'e-mail exactement tel qu'il est envoyé, avec
                      son logo intégré sous forme de data URL. Affichez-le dans
                      un cadre sandboxé, jamais directement dans le DOM de votre
                      application.
                    example: <!DOCTYPE html><html><body>...</body></html>
                  text:
                    type: string
                    description: >-
                      Le texte brut de l'e-mail, tel qu'il apparaît dans le fil
                      Messages de la personne, pour un aperçu compact (le HTML
                      reste l'e-mail que la personne reçoit).
                    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: >-
                      La langue dans laquelle l'e-mail est rédigé. Anglais
                      (`en`) lorsque le `email_language` demandé n'est pas
                      proposé.
                    example: en
                  will_be_sent:
                    type: boolean
                    description: >-
                      Indique si la confirmation de la modification avec
                      `send_email: true` envoie cet e-mail. `false` lorsque
                      `not_sent_reason` est défini.
                    example: true
                  not_sent_reason:
                    type: string
                    nullable: true
                    enum:
                      - no_user_action
                      - no_recipient
                      - sandbox
                      - null
                    description: >-
                      Raison pour laquelle la confirmation n'enverrait aucun
                      e-mail, ou `null` lorsqu'il sera envoyé. `no_user_action`
                      : chaque étape sélectionnée s'exécute sans intervention de
                      la personne, la nouvelle soumission se termine donc
                      d'elle-même et aucun e-mail n'est envoyé. `no_recipient` :
                      aucune adresse n'est connue pour la personne et vous n'en
                      avez transmis aucune. `sandbox` : une session sandbox dont
                      le destinataire n'a pas activé la réception d'e-mails en
                      sandbox, l'envoi est donc seulement simulé.
                    example: null
                  nodes_to_resubmit:
                    type: array
                    items:
                      type: object
                      required:
                        - node_id
                        - feature
                      properties:
                        node_id:
                          type: string
                          description: >-
                            Identifiant du nœud tel qu'il apparaît dans la
                            définition du workflow de la session (par exemple
                            `feature_ocr`, `feature_liveness`).
                          example: feature_ocr
                        feature:
                          type: string
                          description: >-
                            Type de fonctionnalité du nœud. Les alias
                            `ID_VERIFICATION`, `POA`, `PHONE` et `EMAIL` sont
                            normalisés côté serveur en `OCR`,
                            `PROOF_OF_ADDRESS`, `PHONE_VERIFICATION` et
                            `EMAIL_VERIFICATION`. `KYB_REGISTRY`,
                            `KYB_KEY_PEOPLE` et `KYB` passent la validation du
                            schéma mais sont toujours rejetés avec l'erreur de
                            règle métier `400` montrée dans les exemples.
                          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: >-
                      Indique si au moins un contrôle sélectionné nécessite une
                      interaction de l'utilisateur. Cela ne présage pas du
                      résultat final du workflow.
                  preview_token:
                    type: string
                    description: >-
                      Récépissé signé pour cet e-mail exact, valide pendant 15
                      minutes. Transmettez-le en tant que `email_preview_token`
                      à [Mettre à jour le statut de la
                      session](/fr/sessions-api/update-status). Une chaîne vide
                      lorsqu'il n'y a aucun destinataire.
                    example: >-
                      eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000
              examples:
                Will Be Sent:
                  summary: 'Destinataire par défaut : l''adresse vérifiée dans le flux'
                  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: >-
                    Seules les étapes backend sont sélectionnées, aucun e-mail
                    n'est donc envoyé
                  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: >-
                Toujours `no-store` : l'aperçu contient du contenu de
                vérification et ne doit pas être mis en cache.
              schema:
                type: string
                example: no-store
        '400':
          description: >-
            La session n'est pas dans un statut accepté par cet endpoint, elle
            est déjà `Resubmitted`, les étapes sélectionnées ne peuvent pas être
            soumises à nouveau, ou un champ est invalide.
          content:
            application/json:
              examples:
                Wrong Current Status:
                  summary: La session n'est pas dans un statut accepté par cet endpoint
                  value:
                    detail: >-
                      Only sessions with status Approved, Declined, In Review,
                      Kyc Expired, Abandoned, Resubmitted can be updated.
                      Current status: In Progress
                Already Resubmitted:
                  summary: La session est déjà Resubmitted
                  value:
                    - The new status is the same as the current status.
                Nothing To Resubmit:
                  summary: >-
                    La sélection automatique n'a trouvé aucune étape nécessitant
                    une nouvelle soumission
                  value:
                    nodes_to_resubmit: >-
                      No features found that need resubmission. All features are
                      already approved.
                Invalid Email:
                  summary: email_address n'est pas une adresse e-mail
                  value:
                    email_address:
                      - Enter a valid email address.
        '401':
          description: La clé API restreinte a expiré.
          content:
            application/json:
              examples:
                Expired API Key:
                  summary: Clé API restreinte ayant dépassé sa date d'expiration
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Identifiants manquants, appelant sans le privilège `write:sessions`,
            clé API avec restriction de portée ne disposant pas de l'accès
            requis par cet endpoint, ou un `session_id` qui appartient à une
            autre application.
          content:
            application/json:
              examples:
                Invalid Credentials:
                  summary: x-api-key manquant ou invalide
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Missing Privilege:
                  summary: L'appelant n'a pas write:sessions
                  value:
                    detail: You do not have permission to perform this action.
                Scoped Key Without Access:
                  summary: Clé API restreinte sans cet accès
                  value:
                    detail: This API key has no write access to decisions.
        '404':
          description: Aucune session KYC ou KYB avec ce `session_id` n'existe.
          content:
            application/json:
              examples:
                Not Found:
                  summary: session_id inconnu
                  value:
                    detail: Not found.
        '429':
          description: >-
            Les étapes à soumettre de nouveau s'exécutent toutes exclusivement
            côté backend (AML, DATABASE_VALIDATION, IP_ANALYSIS), et la session
            a déjà été soumise à nouveau pour des étapes exclusivement backend
            au cours des 30 dernières secondes ; Update Session Status
            refuserait donc la nouvelle soumission. Réessayez après le délai
            indiqué dans `Retry-After`.
          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: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.

````

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