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

# 재제출 이메일 미리보기

> Didit에서 재제출을 요청하기 전에 수신자, 발신자, 현지화된 메시지, 인증 링크를 검토하세요.

미리보기는 세션을 변경하거나 이메일을 보내지 않습니다.
응답을 검토한 후에는 [Update Session Status](https://docs.didit.me/ko/sessions-api/update-status.md)로 확인하고, 반환된 `preview_token`을 `email_preview_token`으로 전달합니다.
이 영수증은 15분 후에 만료됩니다.
변경되었거나 만료된 영수증은 세션이 변경되거나 이메일이 발송되기 전에 `409`를 반환합니다.
충돌이 발생하면 새 미리보기를 생성합니다.
기존 API 연동에서는 영수증을 생략할 수 있습니다. 콘솔은 미리보기를 확인할 때 영수증을 자동으로 제공합니다.

발신자와 브랜딩은 기존 [화이트 라벨 설정](https://docs.didit.me/ko/console/white-label.md)을 따릅니다.
메시지 내용은 번역된 인증 템플릿에서 가져옵니다. 임의의 제목, 본문, 작업 URL은 템플릿 입력으로 허용되지 않습니다.

## 이메일을 받는 사람

`email_address`는 선택 사항입니다.
이 값을 생략하면 이메일은 해당 사람의 본인 주소로 전송됩니다. 흐름의 이메일 인증 단계에서 인증한 주소가 우선이며, 그런 주소가 없으면 세션을 생성할 때 `contact_details`에 입력한 주소로 전송됩니다.
`email_address`에 전달한 주소가 우선합니다.

`recipient_source`는 적용되는 주소를 알려 줍니다:

| `recipient_source` | `recipient` 값의 출처 |
| - | - |
| `email_verification` | 사람이 흐름에서 인증한 주소 |
| `contact_details` | 세션을 생성할 때 `contact_details`에 입력한 주소 |
| `request` | 전달한 `email_address` |
| `""` (비어 있음) | 주소를 알 수 없음: `recipient`와 `preview_token`이 비어 있으며 이메일을 보낼 수 없습니다. |

## 이메일 발송 여부

`send_email: true`로 재제출을 확인할 때 이메일이 발송되면 `will_be_sent`는 `true`입니다.
`false`이면 `not_sent_reason`에 이유가 나타납니다:

| `not_sent_reason` | 의미 |
| - | - |
| `no_user_action` | 선택한 모든 단계가 사람의 개입 없이 실행됩니다(예: AML 또는 데이터베이스 검증). 따라서 재제출은 자동으로 완료되며 이메일은 발송되지 않습니다. `requires_user_action`도 `false`입니다. |
| `no_recipient` | 사람의 주소를 알 수 없고 전달한 주소도 없습니다. |
| `sandbox` | 샌드박스 세션이며 수신자가 샌드박스 이메일 발송에 동의하지 않았으므로 이메일은 시뮬레이션만 됩니다. [이메일 수신 동의](https://docs.didit.me/ko/integration/sandbox-testing.md#otp-코드와-이메일-수신-동의)를 참고하십시오. |

## 재제출 확인

다음 필드와 함께 [Update Session Status](https://docs.didit.me/ko/sessions-api/update-status.md)를 호출합니다:

| Update Session Status 필드 | 값 |
| - | - |
| `new_status` | `Resubmitted` |
| `nodes_to_resubmit` | 미리보기에서 선택한 것과 동일한 선택 항목(여기서 생략했다면 생략합니다) |
| `send_email` | `true` |
| `email_address` | 미리보기의 `recipient` |
| `email_language` | 미리보기 요청에 지정한 것과 동일한 `email_language` |
| `email_preview_token` | 미리보기의 `preview_token` |

응답의 `language`는 이메일이 작성되는 언어입니다. 요청한 언어가 제공되지 않으면 영어로 작성됩니다.

## 백엔드 전용 재제출 반복

재제출할 모든 단계가 사람의 개입 없이 실행되는 경우(AML, 데이터베이스 검증 또는 IP 분석), 세션은 30초에 한 번만 해당 사람을 위해 재제출할 수 있습니다.
이 기간 내에는 Update Session Status와 마찬가지로 미리보기가 `429`를 반환하며, 대기 시간은 `Retry-After` 헤더에 담깁니다.

## 관련 문서

* [Update Session Status](https://docs.didit.me/ko/sessions-api/update-status.md): 재제출을 확인합니다.
* [Preview Decision Email](https://docs.didit.me/ko/sessions-api/preview-decision-email.md): 대신 승인 또는 거부 이메일을 미리 봅니다.
* [화이트 라벨](https://docs.didit.me/ko/console/white-label.md): 이메일에 사용되는 발신자와 브랜딩입니다.


## OpenAPI

````yaml ko/openapi-25.json POST /v3/session/{sessionId}/resubmission-preview/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: 신분증 인증 API입니다. x-api-key 헤더로 인증합니다.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/resubmission-preview/:
    post:
      tags:
        - Sessions
      summary: 재제출 이메일 미리보기
      description: >-
        세션을 변경하거나 검사를 재설정하거나 만료 기간을 연장하거나 검사를 실행하거나 메일을 발송하지 않고, KYC 또는 KYB 재제출
        시 함께 발송될 이메일을 렌더링합니다. `write:sessions` 권한(범위가 지정된 API 키에는 결정에 대한 쓰기 권한
        필요)과 `Approved`, `Declined`, `In Review`, `Kyc Expired` 또는 `Abandoned`
        상태의 세션이 필요합니다. 서버는 선택된 워크플로 단계를 검증하고 적용 가능한 인증된 화이트 라벨 발신자 및 브랜딩이 적용된 고정
        번역 템플릿을 렌더링합니다. 요청에서 제목, 메시지 본문 또는 작업 URL을 설정할 수 없습니다.


        `email_address`는 선택 사항입니다. 이를 지정하지 않으면 이메일은 해당 사용자의 주소(워크플로의 이메일 인증 단계에서
        검증한 주소이며, 해당 주소가 없으면 세션 생성 시 `contact_details`에 입력된 주소)로 발송됩니다. 직접 전달한
        주소가 우선 적용됩니다(`recipient_source: request`). 알려진 주소가 없고 전달한 주소도 없는 경우,
        `recipient` 및 `preview_token`은 빈 문자열이 되며 이메일을 발송할 수 없습니다.


        응답에는 수신자 및 해당 출처, 발신자, 제목, HTML, 언어, 확정된 단계, 확정 시 이메일 발송
        여부(`will_be_sent`, `not_sent_reason`), 서명된 `preview_token`이 포함됩니다. 선택된
        모든 단계가 사용자 없이 실행되는 경우 `requires_user_action`은 `false`가 되며, 이 경우 재제출은
        자체적으로 완료되고 이메일은 발송되지 않습니다(`not_sent_reason: no_user_action`).


        이 미리보기는 세션 상태를 예약하거나 전송을 승인하지 않습니다. 검토 후 [Update Session
        Status](/ko/sessions-api/update-status)를 호출할 때 `new_status:
        Resubmitted`, 미리 본 것과 동일한 `nodes_to_resubmit` 및 `email_language`,
        `send_email: true`, `email_address`를 `recipient`로,
        `email_preview_token`을 `preview_token`으로 설정하여 호출하십시오. 영수증은 15분 후 만료됩니다.
        영수증이 제공되면 입력값, 메시지 내용, 발신자 또는 세션 상태 중 변경된 항목이 있을 때 어떤 변경이나 발송도 하기 전에
        `409`가 반환됩니다. 기존 연동에서는 영수증을 생략할 수 있습니다. 충돌 발생 후에는 미리보기를 다시 생성하십시오. 응답을
        민감한 인증 콘텐츠로 취급하십시오. 응답은 `Cache-Control: no-store`를 사용합니다. HTML은 애플리케이션
        DOM에 직접 렌더링하지 말고 반드시 샌드박스 처리된 프레임에서 렌더링하십시오.
      operationId: post_v3_session_resubmission_preview
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            업데이트할 인증 세션의 UUID입니다. 사용자(KYC) 및 기업(KYB) 세션 ID를 모두 지원하며, 서비스는 두 세션
            유형 전체에서 ID를 확인합니다.
          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: >-
                    재제출과 동일한 검증, 선택 및 워크플로 순서를 사용하여 미리 볼 단계입니다. 재제출이 필요한 기록된 시도를
                    자동 선택하려면 생략하십시오.
                  items:
                    type: object
                    required:
                      - node_id
                      - feature
                    properties:
                      node_id:
                        type: string
                        description: >-
                          세션의 워크플로 정의에 표시되는 노드 식별자(예: `feature_ocr`,
                          `feature_liveness`).
                        example: feature_ocr
                      feature:
                        type: string
                        description: >-
                          노드의 기능 유형입니다. `ID_VERIFICATION`, `POA`, `PHONE`,
                          `EMAIL` 별칭은 서버 측에서 `OCR`, `PROOF_OF_ADDRESS`,
                          `PHONE_VERIFICATION`, `EMAIL_VERIFICATION`으로 정규화됩니다.
                          `KYB_REGISTRY`, `KYB_KEY_PEOPLE`, `KYB`는 스키마 유효성 검사를
                          통과하지만 예시에 표시된 비즈니스 규칙 `400` 오류로 항상 거부됩니다.
                        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: >-
                    선택 사항입니다. 개인 본인의 주소 대신 이 주소로 이메일을 전송합니다. 지정하지 않으면 워크플로에서 개인이
                    인증한 주소가 수신자가 되며, 그렇지 않으면 `contact_details`에 입력된 주소가 사용됩니다. 이
                    호출로는 이메일이 전송되지 않습니다.
                  example: user@example.com
                email_language:
                  type: string
                  description: >-
                    알림 이메일 언어입니다. 스키마 수준에서 모든 문자열을 허용하며, 지원되지 않는 코드는 영어(`en`)로
                    자동 대체됩니다.
                  default: en
                  example: en
            examples:
              Person's Own Address:
                summary: 해당 인물 본인 주소에 대한 주소 증명 재제출 미리보기
                value:
                  nodes_to_resubmit:
                    - node_id: feature_poa_1
                      feature: POA
                  email_language: en
              Named Recipient:
                summary: 지정한 주소에 대한 이메일 미리보기
                value:
                  nodes_to_resubmit:
                    - node_id: feature_ocr
                      feature: OCR
                  email_address: person@example.com
                  email_language: en
      responses:
        '200':
          description: 미리보기 전용입니다. 세션은 변경되지 않으며 이메일도 전송되지 않습니다.
          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: >-
                      이메일이 전송되는 주소입니다. 사용자의 주소를 알 수 없는 경우 빈 문자열입니다: 이 경우 이메일을
                      전송할 수 없으며 `preview_token`도 비어 있습니다. 확인할 때 `email_address`로
                      전달하십시오.
                    example: person@example.com
                  recipient_source:
                    type: string
                    enum:
                      - email_verification
                      - contact_details
                      - request
                      - ''
                    description: >-
                      `recipient`의 출처입니다. `request`: 전달한 `email_address`입니다.
                      `email_verification`: 플로우의 이메일 인증 단계에서 사용자가 인증한 주소입니다.
                      `contact_details`: 세션 생성 시 `contact_details`에 제공된 주소입니다.
                      주소가 없는 경우 빈 문자열입니다.
                    example: email_verification
                  sender:
                    type: string
                    description: 이메일 발송에 사용되는 `From` 헤더입니다.
                    example: Example App <no-reply@mail.example.com>
                  sender_name:
                    type: string
                    description: '`sender`의 표시 이름 부분입니다.'
                    example: Example App
                  sender_email:
                    type: string
                    format: email
                    description: '`sender`의 주소 부분입니다.'
                    example: no-reply@mail.example.com
                  sender_kind:
                    type: string
                    enum:
                      - customer
                      - didit
                    description: >-
                      `customer`: 이메일이 애플리케이션의 인증된 발신자 도메인(화이트 라벨)에서 발송됩니다.
                      `didit`: Didit의 자체 발신자에서 발송됩니다.
                    example: customer
                  subject:
                    type: string
                    description: 전송된 그대로의 제목 라인입니다.
                    example: 'Action Required: Complete your verification in Example App'
                  html:
                    type: string
                    description: >-
                      전송된 그대로의 이메일 HTML이며, 로고는 data URL로 임베드되어 있습니다. 애플리케이션 DOM에
                      직접 렌더링하지 말고 반드시 샌드박스 처리된 프레임에서 렌더링하세요.
                    example: <!DOCTYPE html><html><body>...</body></html>
                  text:
                    type: string
                    description: >-
                      간결한 미리보기를 제공하기 위해 수신자의 메시지 스레드에 보관되는 일반 텍스트 형태의 이메일
                      내용입니다(HTML은 수신자가 받는 이메일 그대로 유지됨).
                    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: >-
                      이메일이 작성된 언어입니다. 요청한 `email_language`가 제공되지 않는 경우 영어(`en`)로
                      설정됩니다.
                    example: en
                  will_be_sent:
                    type: boolean
                    description: >-
                      `send_email: true`로 변경 사항을 확인할 때 이 이메일을 발송할지 여부입니다.
                      `not_sent_reason`이 설정된 경우 `false`입니다.
                    example: true
                  not_sent_reason:
                    type: string
                    nullable: true
                    enum:
                      - no_user_action
                      - no_recipient
                      - sandbox
                      - null
                    description: >-
                      확인 시 이메일이 전송되지 않는 이유 또는 전송될 예정인 경우 `null`입니다.
                      `no_user_action`: 선택한 모든 단계가 사용자 없이 실행되므로 재제출이 자동으로 완료되고
                      이메일이 발송되지 않습니다. `no_recipient`: 사용자의 알려진 주소가 없으며 전달된 주소도
                      없습니다. `sandbox`: 수신자가 샌드박스 이메일 전송에 동의하지 않은 샌드박스 세션이므로 전송이
                      시뮬레이션만 됩니다.
                    example: null
                  nodes_to_resubmit:
                    type: array
                    items:
                      type: object
                      required:
                        - node_id
                        - feature
                      properties:
                        node_id:
                          type: string
                          description: >-
                            세션의 워크플로 정의에 표시되는 노드 식별자(예: `feature_ocr`,
                            `feature_liveness`).
                          example: feature_ocr
                        feature:
                          type: string
                          description: >-
                            노드의 기능 유형입니다. `ID_VERIFICATION`, `POA`, `PHONE`,
                            `EMAIL` 별칭은 서버 측에서 `OCR`, `PROOF_OF_ADDRESS`,
                            `PHONE_VERIFICATION`, `EMAIL_VERIFICATION`으로 정규화됩니다.
                            `KYB_REGISTRY`, `KYB_KEY_PEOPLE`, `KYB`는 스키마 유효성 검사를
                            통과하지만 예시에 표시된 비즈니스 규칙 `400` 오류로 항상 거부됩니다.
                          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: >-
                      선택한 검사 중 하나 이상에 사용자 상호작용이 필요한지 여부입니다. 이는 최종 워크플로 결과를 예측하지
                      않습니다.
                  preview_token:
                    type: string
                    description: >-
                      해당 이메일에 대한 서명된 영수증으로, 15분 동안 유효합니다. [세션 상태
                      업데이트](/ko/sessions-api/update-status)에
                      `email_preview_token`으로 전달하십시오. 수신자가 없는 경우 빈 문자열입니다.
                    example: >-
                      eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000
              examples:
                Will Be Sent:
                  summary: '기본 수취인: 플로우에서 검증된 주소'
                  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: 백엔드 단계만 선택되었으므로 이메일이 발송되지 않습니다
                  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: 항상 `no-store`입니다. 미리보기에는 인증 콘텐츠가 포함되어 있으므로 캐시해서는 안 됩니다.
              schema:
                type: string
                example: no-store
        '400':
          description: >-
            세션이 이 endpoint에서 허용하는 상태가 아니거나, 이미 `Resubmitted` 상태이거나, 선택한 단계를 다시
            제출할 수 없거나, 필드가 올바르지 않습니다.
          content:
            application/json:
              examples:
                Wrong Current Status:
                  summary: 세션이 이 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: 세션이 이미 Resubmitted 상태입니다
                  value:
                    - The new status is the same as the current status.
                Nothing To Resubmit:
                  summary: 자동 선택 결과 다시 제출해야 하는 단계를 찾지 못했습니다
                  value:
                    nodes_to_resubmit: >-
                      No features found that need resubmission. All features are
                      already approved.
                Invalid Email:
                  summary: email_address가 이메일 주소가 아닙니다
                  value:
                    email_address:
                      - Enter a valid email address.
        '401':
          description: 스코프가 지정된 API 키가 만료되었습니다.
          content:
            application/json:
              examples:
                Expired API Key:
                  summary: 만료일이 지난 스코프 지정 API 키
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            자격 증명이 누락되었거나, 호출자에게 `write:sessions` 권한이 없거나, 범위 지정 API 키에 이
            endpoint가 필요로 하는 접근 권한이 없거나, `session_id`가 다른 애플리케이션에 속해 있습니다.
          content:
            application/json:
              examples:
                Invalid Credentials:
                  summary: x-api-key가 누락되었거나 유효하지 않음
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Missing Privilege:
                  summary: 호출자에게 write:sessions 권한이 없습니다
                  value:
                    detail: You do not have permission to perform this action.
                Scoped Key Without Access:
                  summary: 이 접근 권한이 없는 스코프 지정 API 키
                  value:
                    detail: This API key has no write access to decisions.
        '404':
          description: 이 `session_id`를 가진 KYC 또는 KYB 세션이 존재하지 않습니다.
          content:
            application/json:
              examples:
                Not Found:
                  summary: 알 수 없는 session_id
                  value:
                    detail: Not found.
        '429':
          description: >-
            재제출할 단계가 모두 백엔드 전용(AML, DATABASE_VALIDATION, IP_ANALYSIS)이며, 최근 30초
            이내에 해당 세션에 대해 백엔드 전용 단계의 재제출이 이미 수행되었으므로 Update Session Status에서
            재제출을 거부합니다. `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: >-
        Business Console의 Developers -> API keys에서 발급받은 귀하 애플리케이션의 API 키입니다. 기본
        키는 전체 접근 권한을 갖습니다. 이름이 지정된 키는 리소스별 none, read, write 범위로 권한을 제한할 수 있으며
        특정 워크플로나 승인된 세션, IP 주소 목록, 만료일 등으로 제한할 수도 있습니다. 401은 키가 잘못되었거나 폐기되었거나
        만료되었음을 의미합니다. 403은 키가 전송되지 않았거나, 키에 해당 리소스나 작업에 대한 접근 권한이 없거나, 요청이 허용된
        IP 목록 외부 주소에서 발생했음을 의미합니다. 세션 경로에서의 404는 해당 세션이 키의 허용 워크플로 또는 상태 범위를
        벗어났음을 의미합니다. 미디어 접근 권한이 없는 키는 이미지, 비디오, PDF URL을 null로 수신하며, 세션 write
        권한이 없는 키는 세션 링크와 token을 null로 수신합니다.
        https://docs.didit.me/console/api-keys 를 참고하십시오.

````

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