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

# Pratinjau Email Pengajuan Ulang

> Tinjau penerima, pengirim, pesan terlokalisasi, dan tautan verifikasi di Didit sebelum meminta pengajuan ulang.

Melakukan pratinjau tidak mengubah sesi atau mengirim email.
Setelah meninjau respons, konfirmasi dengan [Perbarui Status Sesi](https://docs.didit.me/id/sessions-api/update-status.md) dan kirimkan `preview_token` yang dikembalikan sebagai `email_preview_token`.
Tanda terima pratinjau kedaluwarsa setelah 15 menit.
Tanda terima yang berubah atau sudah kedaluwarsa mengembalikan `409` sebelum sesi diubah atau email dikirim.
Buat pratinjau baru setelah terjadi konflik.
Integrasi API yang sudah ada boleh tidak menyertakan tanda terima; konsol menyediakannya saat Anda mengonfirmasi pratinjau.

Pengirim dan identitas merek mengikuti [konfigurasi White Label](https://docs.didit.me/id/console/white-label.md) Anda yang sudah ada.
Isi pesan berasal dari templat verifikasi yang diterjemahkan; subjek, isi pesan, dan URL tindakan yang ditentukan sendiri tidak diterima sebagai input templat.

## Siapa yang menerima email

`email_address` bersifat opsional.
Jika tidak diisi, email dikirim ke alamat pengguna akhir sendiri: alamat yang diverifikasi pada langkah verifikasi email dalam alur, atau jika tidak ada, alamat yang diberikan di `contact_details` saat sesi dibuat.
Alamat yang Anda kirimkan di `email_address` selalu diutamakan.

`recipient_source` menunjukkan alamat mana yang berlaku:

| `recipient_source` | Asal `recipient` |
| - | - |
| `email_verification` | Alamat yang diverifikasi pengguna dalam alur |
| `contact_details` | Alamat yang diberikan di `contact_details` saat sesi dibuat |
| `request` | `email_address` yang Anda kirimkan |
| `""` (kosong) | Tidak ada alamat yang diketahui: `recipient` dan `preview_token` kosong dan tidak ada email yang dapat dikirim |

## Apakah email dikirim

`will_be_sent` bernilai `true` ketika konfirmasi pengiriman ulang dengan `send_email: true` mengirim email.
Jika bernilai `false`, `not_sent_reason` menjelaskan alasannya:

| `not_sent_reason` | Artinya |
| - | - |
| `no_user_action` | Setiap langkah yang dipilih berjalan tanpa pengguna (misalnya AML atau Validasi Database), sehingga pengiriman ulang selesai dengan sendirinya dan tidak ada email yang dikirim. `requires_user_action` juga bernilai `false`. |
| `no_recipient` | Tidak ada alamat yang diketahui untuk pengguna dan Anda tidak mengirimkan alamat. |
| `sandbox` | Sesi adalah sesi sandbox dan penerima belum menyetujui pengiriman email sandbox, sehingga email hanya disimulasikan. Lihat [persetujuan email](https://docs.didit.me/id/integration/sandbox-testing.md#kode-otp-dan-opt-in-email). |

## Konfirmasi pengiriman ulang

Panggil [Perbarui Status Sesi](https://docs.didit.me/id/sessions-api/update-status.md) dengan kolom berikut:

| Kolom Perbarui Status Sesi | Nilai |
| - | - |
| `new_status` | `Resubmitted` |
| `nodes_to_resubmit` | Pilihan yang sama dengan yang Anda pratinjau (jangan sertakan jika tadi Anda tidak menyertakannya) |
| `send_email` | `true` |
| `email_address` | `recipient` dari pratinjau |
| `email_language` | `email_language` yang sama dengan yang Anda kirimkan ke pratinjau |
| `email_preview_token` | `preview_token` dari pratinjau |

`language` dalam respons adalah bahasa yang digunakan untuk menulis email: bahasa Inggris jika bahasa yang Anda minta tidak tersedia.

## Pengiriman ulang berulang hanya di backend

Ketika setiap langkah yang akan dikirim ulang berjalan tanpa pengguna (AML, Validasi Database, atau Analisis IP), sesi hanya dapat dikirim ulang untuk pengguna tersebut sekali setiap 30 detik.
Dalam jendela waktu tersebut, pratinjau mengembalikan `429`, sama seperti Perbarui Status Sesi, dengan waktu tunggu di header `Retry-After`.

## Terkait

* [Perbarui Status Sesi](https://docs.didit.me/id/sessions-api/update-status.md): mengonfirmasi pengiriman ulang.
* [Pratinjau Email Keputusan](https://docs.didit.me/id/sessions-api/preview-decision-email.md): melakukan pratinjau email Approved atau Declined sebagai gantinya.
* [White Label](https://docs.didit.me/id/console/white-label.md): pengirim dan identitas merek yang digunakan untuk email.


## OpenAPI

````yaml id/openapi-25.json POST /v3/session/{sessionId}/resubmission-preview/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/resubmission-preview/:
    post:
      tags:
        - Sessions
      summary: Pratinjau email pengiriman ulang
      description: >-
        Me-render email yang akan menyertai pengiriman ulang KYC atau KYB tanpa
        mengubah sesi, mengatur ulang pemeriksaan, memperpanjang masa
        kedaluwarsanya, menjalankan pemeriksaan, atau mengirim email. Memerlukan
        hak istimewa `write:sessions` (kunci API ber-scope memerlukan akses
        tulis ke keputusan) dan sesi dalam status `Approved`, `Declined`, `In
        Review`, `Kyc Expired`, atau `Abandoned`. Server memvalidasi langkah
        alur kerja yang dipilih dan me-render templat terjemahan tetapnya dengan
        pengirim White Label terverifikasi dan branding yang berlaku. Permintaan
        tidak dapat menetapkan subjek, isi pesan, atau URL tindakan.


        `email_address` bersifat opsional. Tanpa parameter ini, email akan
        dikirim ke alamat pengguna itu sendiri: alamat yang mereka verifikasi
        dalam langkah verifikasi email pada alur, atau alamat yang diberikan di
        `contact_details` saat sesi dibuat. Alamat yang Anda teruskan akan
        diutamakan (`recipient_source: request`). Jika tidak ada alamat yang
        diketahui dan Anda tidak meneruskannya, `recipient` dan `preview_token`
        berupa string kosong dan email tidak dapat dikirim.


        Respons mencakup penerima dan asal alamatnya, pengirim, subjek, HTML,
        bahasa, langkah yang telah ditentukan, apakah konfirmasi akan mengirim
        email (`will_be_sent`, `not_sent_reason`), serta `preview_token` yang
        ditandatangani. `requires_user_action` bernilai `false` jika setiap
        langkah yang dipilih berjalan tanpa pengguna: pengiriman ulang kemudian
        selesai dengan sendirinya dan tidak ada email yang dikirim
        (`not_sent_reason: no_user_action`).


        Pratinjau ini tidak mencadangkan status sesi atau mengotorisasi
        pengiriman. Setelah meninjaunya, panggil [Update Session
        Status](/id/sessions-api/update-status) dengan `new_status:
        Resubmitted`, `nodes_to_resubmit` dan `email_language` yang sama seperti
        yang Anda pratinjau, `send_email: true`, `email_address` disetel ke
        `recipient`, dan `email_preview_token` disetel ke `preview_token`. Tanda
        terima kedaluwarsa setelah 15 menit. Saat tanda terima disertakan,
        perubahan input, konten pesan, pengirim, atau status sesi akan
        mengembalikan `409` sebelum mutasi atau pengiriman apa pun dilakukan.
        Integrasi yang sudah ada dapat mengabaikan tanda terima. Buat ulang
        pratinjau setelah terjadi konflik. Perlakukan respons sebagai konten
        verifikasi sensitif; respons menggunakan `Cache-Control: no-store`.
        Render HTML dalam frame sandbox, jangan pernah langsung di dalam DOM
        aplikasi Anda.
      operationId: post_v3_session_resubmission_preview
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            UUID sesi verifikasi yang akan diperbarui. Menerima ID sesi pengguna
            (KYC) dan bisnis (KYB) — layanan mencari ID tersebut di kedua jenis
            sesi.
          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: >-
                    Langkah-langkah yang akan dipratinjau, menggunakan validasi,
                    pemilihan, dan urutan alur kerja yang sama seperti
                    pengiriman ulang. Jangan sertakan untuk memilih otomatis
                    percobaan tercatat yang memerlukan pengiriman ulang.
                  items:
                    type: object
                    required:
                      - node_id
                      - feature
                    properties:
                      node_id:
                        type: string
                        description: >-
                          Pengenal node seperti yang muncul dalam definisi alur
                          kerja sesi (misalnya `feature_ocr`,
                          `feature_liveness`).
                        example: feature_ocr
                      feature:
                        type: string
                        description: >-
                          Tipe fitur dari node. Alias `ID_VERIFICATION`, `POA`,
                          `PHONE`, dan `EMAIL` dinormalisasi di sisi server
                          menjadi `OCR`, `PROOF_OF_ADDRESS`,
                          `PHONE_VERIFICATION`, dan `EMAIL_VERIFICATION`.
                          `KYB_REGISTRY`, `KYB_KEY_PEOPLE`, dan `KYB` lolos
                          validasi skema tetapi selalu ditolak dengan aturan
                          bisnis `400` yang ditunjukkan pada contoh.
                        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: >-
                    Opsional. Kirim email ke alamat ini alih-alih alamat orang
                    itu sendiri. Tanpa parameter ini, penerima adalah alamat
                    yang diverifikasi orang tersebut dalam alur, atau yang
                    diberikan di `contact_details`. Tidak ada email yang dikirim
                    oleh panggilan ini.
                  example: user@example.com
                email_language:
                  type: string
                  description: >-
                    Bahasa untuk email notifikasi. Menerima string apa pun pada
                    tingkat skema; kode yang tidak didukung akan beralih ke
                    bahasa Inggris (`en`) secara senyap.
                  default: en
                  example: en
            examples:
              Person's Own Address:
                summary: >-
                  Pratinjau pengiriman ulang bukti alamat untuk alamat orang
                  tersebut sendiri
                value:
                  nodes_to_resubmit:
                    - node_id: feature_poa_1
                      feature: POA
                  email_language: en
              Named Recipient:
                summary: Pratinjau email untuk alamat yang Anda tentukan
                value:
                  nodes_to_resubmit:
                    - node_id: feature_ocr
                      feature: OCR
                  email_address: person@example.com
                  email_language: en
      responses:
        '200':
          description: >-
            Hanya pratinjau. Sesi tidak berubah dan tidak ada email yang
            dikirim.
          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: >-
                      Alamat tujuan pengiriman email. String kosong jika tidak
                      ada alamat yang diketahui untuk orang tersebut: maka tidak
                      ada email yang dapat dikirim dan `preview_token` juga
                      kosong. Teruskan sebagai `email_address` saat Anda
                      mengonfirmasi.
                    example: person@example.com
                  recipient_source:
                    type: string
                    enum:
                      - email_verification
                      - contact_details
                      - request
                      - ''
                    description: >-
                      Dari mana asal `recipient`. `request`: `email_address`
                      yang Anda teruskan. `email_verification`: alamat yang
                      diverifikasi orang tersebut dalam langkah verifikasi email
                      pada alur. `contact_details`: alamat yang diberikan dalam
                      `contact_details` saat sesi dibuat. Berupa string kosong
                      jika tidak ada alamat.
                    example: email_verification
                  sender:
                    type: string
                    description: Header `From` yang digunakan untuk mengirim email.
                    example: Example App <no-reply@mail.example.com>
                  sender_name:
                    type: string
                    description: Bagian nama tampilan dari `sender`.
                    example: Example App
                  sender_email:
                    type: string
                    format: email
                    description: Bagian alamat dari `sender`.
                    example: no-reply@mail.example.com
                  sender_kind:
                    type: string
                    enum:
                      - customer
                      - didit
                    description: >-
                      `customer`: email dikirim dari domain pengirim
                      terverifikasi aplikasi Anda (White Label). `didit`: email
                      dikirim dari pengirim Didit sendiri.
                    example: customer
                  subject:
                    type: string
                    description: Baris subjek persis seperti yang dikirimkan.
                    example: 'Action Required: Complete your verification in Example App'
                  html:
                    type: string
                    description: >-
                      HTML email persis seperti yang dikirim, dengan logonya
                      disematkan sebagai URL data. Render dalam frame sandbox,
                      jangan pernah langsung di DOM aplikasi Anda.
                    example: <!DOCTYPE html><html><body>...</body></html>
                  text:
                    type: string
                    description: >-
                      Kata-kata email sebagai teks biasa, sebagaimana disimpan
                      dalam utas Pesan orang tersebut, untuk pratinjau ringkas
                      (HTML tetap berupa email yang diterima orang tersebut).
                    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: >-
                      Bahasa penulisan email. Bahasa Inggris (`en`) saat
                      `email_language` yang Anda minta tidak tersedia.
                    example: en
                  will_be_sent:
                    type: boolean
                    description: >-
                      Menentukan apakah mengonfirmasi perubahan dengan
                      `send_email: true` mengirimkan email ini. `false` jika
                      `not_sent_reason` diatur.
                    example: true
                  not_sent_reason:
                    type: string
                    nullable: true
                    enum:
                      - no_user_action
                      - no_recipient
                      - sandbox
                      - null
                    description: >-
                      Alasan mengapa konfirmasi tidak akan mengirim email, atau
                      `null` jika akan dikirim. `no_user_action`: setiap langkah
                      yang dipilih berjalan tanpa orang tersebut, sehingga
                      pengiriman ulang selesai dengan sendirinya dan tidak ada
                      email yang dikirim. `no_recipient`: tidak ada alamat yang
                      diketahui untuk orang tersebut dan Anda tidak
                      meneruskannya. `sandbox`: sesi sandbox yang penerimanya
                      belum menyetujui pengiriman email sandbox, sehingga
                      pengiriman hanya disimulasikan.
                    example: null
                  nodes_to_resubmit:
                    type: array
                    items:
                      type: object
                      required:
                        - node_id
                        - feature
                      properties:
                        node_id:
                          type: string
                          description: >-
                            Pengenal node seperti yang muncul dalam definisi
                            alur kerja sesi (misalnya `feature_ocr`,
                            `feature_liveness`).
                          example: feature_ocr
                        feature:
                          type: string
                          description: >-
                            Tipe fitur dari node. Alias `ID_VERIFICATION`,
                            `POA`, `PHONE`, dan `EMAIL` dinormalisasi di sisi
                            server menjadi `OCR`, `PROOF_OF_ADDRESS`,
                            `PHONE_VERIFICATION`, dan `EMAIL_VERIFICATION`.
                            `KYB_REGISTRY`, `KYB_KEY_PEOPLE`, dan `KYB` lolos
                            validasi skema tetapi selalu ditolak dengan aturan
                            bisnis `400` yang ditunjukkan pada contoh.
                          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: >-
                      Menentukan apakah setidaknya satu pemeriksaan yang dipilih
                      memerlukan interaksi pengguna. Ini tidak memprediksi hasil
                      akhir alur kerja.
                  preview_token:
                    type: string
                    description: >-
                      Tanda terima yang ditandatangani untuk email persis ini,
                      valid selama 15 menit. Teruskan sebagai
                      `email_preview_token` ke [Perbarui Status
                      Sesi](/id/sessions-api/update-status). String kosong jika
                      tidak ada penerima.
                    example: >-
                      eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000
              examples:
                Will Be Sent:
                  summary: 'Penerima default: alamat yang diverifikasi dalam alur'
                  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: >-
                    Hanya langkah backend yang dipilih, sehingga tidak ada email
                    yang dikirim
                  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: >-
                Selalu `no-store`: pratinjau memuat konten verifikasi dan tidak
                boleh disimpan dalam cache.
              schema:
                type: string
                example: no-store
        '400':
          description: >-
            Sesi tidak berada dalam status yang diterima endpoint ini, sudah
            `Resubmitted`, langkah yang dipilih tidak dapat dikirim ulang, atau
            suatu kolom tidak valid.
          content:
            application/json:
              examples:
                Wrong Current Status:
                  summary: >-
                    Sesi tidak berada dalam status yang diterima oleh endpoint
                    ini
                  value:
                    detail: >-
                      Only sessions with status Approved, Declined, In Review,
                      Kyc Expired, Abandoned, Resubmitted can be updated.
                      Current status: In Progress
                Already Resubmitted:
                  summary: Sesi sudah Resubmitted
                  value:
                    - The new status is the same as the current status.
                Nothing To Resubmit:
                  summary: >-
                    Pilihan otomatis tidak menemukan langkah yang memerlukan
                    pengiriman ulang
                  value:
                    nodes_to_resubmit: >-
                      No features found that need resubmission. All features are
                      already approved.
                Invalid Email:
                  summary: email_address bukan alamat email
                  value:
                    email_address:
                      - Enter a valid email address.
        '401':
          description: Kunci API dengan cakupan terbatas telah kedaluwarsa.
          content:
            application/json:
              examples:
                Expired API Key:
                  summary: Kunci API ber-scope melewati tanggal kedaluwarsanya
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Kredensial tidak ada, pemanggil tanpa hak istimewa `write:sessions`,
            kunci API dengan pembatasan cakupan tanpa akses yang dibutuhkan
            endpoint ini, atau `session_id` milik aplikasi lain.
          content:
            application/json:
              examples:
                Invalid Credentials:
                  summary: x-api-key tidak ada atau tidak valid
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Missing Privilege:
                  summary: Pemanggil tidak memiliki izin write:sessions
                  value:
                    detail: You do not have permission to perform this action.
                Scoped Key Without Access:
                  summary: Kunci API ber-scope tanpa akses ini
                  value:
                    detail: This API key has no write access to decisions.
        '404':
          description: Tidak ada sesi KYC atau KYB dengan `session_id` ini.
          content:
            application/json:
              examples:
                Not Found:
                  summary: session_id tidak dikenal
                  value:
                    detail: Not found.
        '429':
          description: >-
            Langkah-langkah yang akan diajukan ulang semuanya hanya untuk
            backend (AML, DATABASE_VALIDATION, IP_ANALYSIS), dan sesi telah
            diajukan ulang untuk langkah khusus backend dalam 30 detik terakhir,
            sehingga Update Session Status akan menolak pengajuan ulang. Coba
            lagi setelah interval di `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: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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