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

# 케이스 해결 API

> Didit에서 케이스를 오탐 또는 유효한 위협으로 해결합니다. 체크리스트 게이팅, 필수 메모 게이팅, 4-eyes 스테이징을 이해하세요.



케이스 해결 API 프롬프트
        프롬프트를 클립보드에 복사



      
      

\<pre>

\`Resolve a case through the Management API.

Endpoint:
POST https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/

Authentication:
Use the x-api-key header with my Didit API key.

Request body:
\{"resolution": "FALSE_POSITIVE", "note": "Confirmed legitimate activity after reviewing documents."}
\- resolution is required: FALSE_POSITIVE (no concern found) | VALID_THREAT (concern confirmed) | INCONCLUSIVE | REQUIREMENTS_NOT_MET | REQUIREMENTS_SATISFIED.
\- note is required only when the case's blueprint has require_resolution_note enabled.
\- checker is optional and only for a blueprint with a four-eyes checker step: the user uuid of the member who must approve the resolution (the same id as assigned_to.uuid on a case, or members[].user_id on a review team). Omit it or send null to leave the resolution to the checker queue.

Behavior:
\- Blocked with 400 if the blueprint's checklist is not optional and any item is incomplete - response lists the incomplete item labels.
\- Blocked with 400 if the blueprint requires a note and none was given.
\- If the blueprint has a four_eyes_checker_blueprint configured, the resolution is staged (case.pending_resolution) and the case moves to that checker blueprint's queue instead of closing - status stays OPEN. A different user must then call approve or reject-approval.
\- Submit a four-eyes resolution as a console member. A resolution an API key submits has no recorded maker (pending_resolution.maker_email is null), so approve and reject-approval return 403 {"detail": "Case has no recorded maker for this pending resolution; approve is not permitted."} for every caller.
\- Otherwise the case closes immediately: status becomes RESOLVED, resolved_at and resolved_by_email are set.
\- On a four-eyes blueprint with checker, only that member can approve or reject the staged resolution, and the response's checker {member_uuid, name, email} names them. Any other caller, including an API key, gets 403 on approve and reject-approval. Without checker, the response's checker is null and the checker blueprint's queue decides.

Example call:
curl -X POST "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"resolution": "FALSE_POSITIVE", "note": "Confirmed legitimate activity."}'

Response 200: CaseDetail. Check pending_resolution to tell staged-for-approval apart from a completed resolution.

Failure modes:
\- 400 - incomplete checklist, or missing required note (a list of strings).
\- 400 - when checker is sent, in the order they fire:
\- ["Reviewer access could not be verified. Try again."] or ["Choose an active reviewer with case access to this application."] - the member could not be checked, or is not an active reviewer with case access.
\- {"checker": ["The officer who submitted the resolution cannot be its checker."]} - you named the officer who is resolving.
\- {"checker": ["This review policy has no checker step, so the case resolves directly."]} - the case's blueprint has no four-eyes checker step.
\- 401/403 - auth/permission errors. A key with restricted access gets 403 {"detail": "This API key has no access to this endpoint."} (cases need a full-access key). A console member token needs write:cases.
\- 404 - case not found.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

붙여넣을 곳

케이스를 해결합니다. 케이스의 블루프린트가 [4-eyes 검토](https://docs.didit.me/ko/console/case-management/four-eyes.md)용 검토자 블루프린트와 짝을 이루면, 케이스를 닫는 대신 해결 처리를 대기 상태로 설정합니다. 두 결과를 구분하려면 응답의 `pending_resolution` 필드를 확인하세요.## 검토자 지정4-eyes 검토 단계가 있는 블루프린트에서는 `checker` 필드에 해결 처리를 승인해야 할 멤버의 사용자 UUID를 보냅니다.
그러면 해당 멤버만 해결 처리를 승인하거나 거부할 수 있습니다. API 키를 포함한 다른 누구든 `403`을 받습니다.
해결 처리가 승인되거나 거부되거나, 증거가 바뀌어 새 검토를 위해 반환되기 전까지 케이스의 `checker` 필드에 해당 멤버가 표시됩니다.
`checker`를 보내지 않으면 해결 처리는 검토자 블루프린트의 대기열에서 기다립니다.
멤버는 이 애플리케이션에 대한 케이스 액세스 권한이 있어야 하며, 해결 처리를 제출한 담당자일 수 없습니다.
검토자 단계가 없는 블루프린트에서 `checker`를 보내면 `400`이 반환됩니다.## 4-eyes 검토가 필요한 해결에는 콘솔 멤버가 필요합니다4-eyes 검토로 넘어가는 해결 처리는 API 키가 아니라 콘솔 멤버로 제출하세요.
API 키로 제출한 해결 처리에는 기록된 작성자가 없으므로, 승인 및 승인 거부 요청은 지정된 검토자를 포함한 모든 호출자에게 `403`을 반환합니다.## 액세스케이스 endpoint에는 전체 액세스 [API 키](https://docs.didit.me/ko/console/api-keys.md)가 필요합니다.
제한된 액세스 권한의 키는 `403`을 받습니다.## 관련 문서- [4-eyes 검토(콘솔)](https://docs.didit.me/ko/console/case-management/four-eyes.md)
- [케이스 조회](https://docs.didit.me/ko/management-api/cases/get.md)
- [체크리스트(콘솔)](https://docs.didit.me/ko/console/case-management/checklist.md)
- [상태 일괄 업데이트](https://docs.didit.me/ko/management-api/cases/bulk-status.md)


## OpenAPI

````yaml ko/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/
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/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/:
    post:
      tags:
        - Cases
      summary: 케이스 해결
      description: >-
        케이스를 다섯 가지 해결 상태 중 하나로 해결합니다: FALSE_POSITIVE(우려 사항 없음), VALID_THREAT(우려
        사항 확인됨), INCONCLUSIVE, REQUIREMENTS_NOT_MET 또는 REQUIREMENTS_SATISFIED.
        블루프린트의 체크리스트가 선택 사항이 아니며 완료되지 않은 항목이 남아 있거나, 블루프린트에서 해결 메모를 요구하지만 제공되지
        않은 경우 400 오류로 차단됩니다. 케이스의 블루프린트에 four-eyes 검토자
        단계(four_eyes_checker_blueprint)가 있는 경우, 해결이
        스테이징되며(case.pending_resolution) 케이스가 즉시 해결되는 대신 검토자 블루프린트로 이동합니다. 이때 다른
        담당자가 approve 또는 reject-approval을 호출해야 합니다. four-eyes 해결은 콘솔 멤버로서 제출해야
        합니다. API 키가 제출한 해결에는 기록된 작성자가 없으므로 모든 호출자에 대해 approve 및 reject-approval이
        403을 반환합니다. four-eyes 블루프린트에서는 승인해야 하는 멤버를 `checker`로 지정할 수 있으며, 이 경우 해당
        멤버만 해결을 승인하거나 거부할 수 있고 응답의 `checker`에 해당 멤버의 이름이 표시됩니다. `checker`가 없으면
        해결은 검토자 블루프린트의 대기열에서 대기합니다. 검토자 단계가 없는 블루프린트에 대해 `checker`를 전송하면 400이
        반환됩니다.
      operationId: resolve_case
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: 조직 UUID입니다.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: 애플리케이션 UUID입니다.
        - name: case_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: c1a5e000-0000-4000-8000-000000000001
          description: 케이스 UUID.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - resolution
              properties:
                resolution:
                  type: string
                  enum:
                    - FALSE_POSITIVE
                    - VALID_THREAT
                    - INCONCLUSIVE
                    - REQUIREMENTS_NOT_MET
                    - REQUIREMENTS_SATISFIED
                note:
                  type: string
                  nullable: true
                  description: 블루프린트에 require_resolution_note가 설정된 경우 필수입니다.
                checker:
                  type: string
                  format: uuid
                  nullable: true
                  description: >-
                    상호 검토(Four-eyes) 블루프린트 전용입니다. 이 해결 처리를 승인해야 하는 멤버의 사용자
                    uuid입니다(케이스의 `assigned_to.uuid` 또는 검토 팀의
                    `members[].user_id`와 동일한 ID). 해당 멤버는 이 애플리케이션에 대한 케이스 접근 권한이
                    있어야 하며 해결 처리를 제출하는 담당자일 수 없습니다. 생략하거나 null을 전송하면 해결 처리가 검토자
                    대기열에 남겨집니다.
            examples:
              Resolve:
                value:
                  resolution: FALSE_POSITIVE
                  note: Confirmed legitimate activity after reviewing documents.
              Four-eyes blueprint with a named checker:
                value:
                  resolution: VALID_THREAT
                  note: Document tampering confirmed.
                  checker: 3fa85f64-5717-4562-b3fc-2c963f66afa6
      responses:
        '200':
          description: 해결되었거나 4-eyes 승인을 위해 스테이징되었습니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseDetail'
        '400':
          description: >-
            해결이 거부되었습니다. 필드 외 오류는 문자열 목록으로 제공됩니다. 불완전한 체크리스트, 누락된 필수 메모, 확인될 수
            없거나 이 애플리케이션에 대한 케이스 접근 권한이 있는 활성 검토자가 아닌 `checker` 등이 해당됩니다.
            `checker` 오류는 필드별로 키가 지정되어 반환됩니다. 지정된 멤버가 해결을 제출하는 담당자이거나, 케이스의 청사진에
            검토자 단계가 없습니다.
          content:
            application/json:
              schema:
                oneOf:
                  - type: array
                    items:
                      type: string
                  - type: object
                    additionalProperties:
                      type: array
                      items:
                        type: string
              examples:
                Incomplete checklist:
                  value:
                    - >-
                      Case has incomplete checklist items: Verify source of
                      funds
                Resolution note required:
                  value:
                    - A resolution note is required to resolve this case.
                Reviewer access could not be verified:
                  value:
                    - Reviewer access could not be verified. Try again.
                Checker is not an active reviewer:
                  value:
                    - >-
                      Choose an active reviewer with case access to this
                      application.
                Checker is the submitting officer:
                  value:
                    checker:
                      - >-
                        The officer who submitted the resolution cannot be its
                        checker.
                Policy has no checker step:
                  value:
                    checker:
                      - >-
                        This review policy has no checker step, so the case
                        resolves directly.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/cases/c1a5e000-0000-4000-8000-000000000001/resolve/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"resolution": "FALSE_POSITIVE", "note": "Confirmed legitimate activity after reviewing documents."}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

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

            result = client.cases.resolve(
                "c1a5e000-0000-4000-8000-000000000001",
                resolution="FALSE_POSITIVE",
                note="Confirmed legitimate activity after reviewing documents.",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            const didit = new Didit();


            const result = await
            didit.cases.resolve("c1a5e000-0000-4000-8000-000000000001", {
              resolution: "FALSE_POSITIVE",
              note: "Confirmed legitimate activity after reviewing documents.",
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\nresult, err := client.Cases.Resolve(ctx, \"c1a5e000-0000-4000-8000-000000000001\", didit.CasesResolveParams{\n\tResolution: \"FALSE_POSITIVE\",\n\tNote:       didit.String(\"Confirmed legitimate activity after reviewing documents.\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.CasesResolveParams;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            var result =
            client.cases().resolve("c1a5e000-0000-4000-8000-000000000001",
            CasesResolveParams.builder()
                    .resolution(CasesResolveParams.Resolution.of("FALSE_POSITIVE"))
                    .note("Confirmed legitimate activity after reviewing documents.")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            $didit = new DiditClient();


            $result =
            $didit->cases->resolve('c1a5e000-0000-4000-8000-000000000001', [
                'resolution' => 'FALSE_POSITIVE',
                'note' => 'Confirmed legitimate activity after reviewing documents.',
            ]);

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

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

            result = didit.cases.resolve(
              "c1a5e000-0000-4000-8000-000000000001",
              resolution: "FALSE_POSITIVE",
              note: "Confirmed legitimate activity after reviewing documents."
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            using var client = new DiditClient();


            var result = await
            client.Cases.ResolveAsync("c1a5e000-0000-4000-8000-000000000001",
            new CasesResolveParams

            {
                Resolution = "FALSE_POSITIVE",
                Note = "Confirmed legitimate activity after reviewing documents.",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    CaseDetail:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        case_number:
          type: string
          nullable: true
        title:
          type: string
        status:
          type: string
          enum:
            - OPEN
            - AWAITING_USER
            - RESOLVED
        resolution:
          type: string
          enum:
            - FALSE_POSITIVE
            - VALID_THREAT
            - INCONCLUSIVE
            - REQUIREMENTS_NOT_MET
            - REQUIREMENTS_SATISFIED
          nullable: true
        resolution_notes:
          type: string
          nullable: true
        priority:
          type: string
          enum:
            - LOW
            - MEDIUM
            - HIGH
        source:
          type: string
          enum:
            - MANUAL
            - AML_SCREENING
            - TRANSACTION_RULE
            - WORKFLOW_BUILDER
        tags:
          type: array
          items:
            type: string
        subject:
          $ref: '#/components/schemas/CaseSubject'
        assigned_to:
          $ref: '#/components/schemas/CaseAssignee'
        assigned_at:
          type: string
          format: date-time
          nullable: true
        team:
          $ref: '#/components/schemas/CaseTeamSummary'
        due_at:
          type: string
          format: date-time
          nullable: true
        resolved_at:
          type: string
          format: date-time
          nullable: true
        resolved_by_email:
          type: string
          nullable: true
        pending_resolution:
          type: object
          nullable: true
          description: 체커 블루프린트에서 승인 또는 거부 승인을 기다리며 4-eyes 해결 절차가 스테이징되는 동안에만 설정됩니다.
          properties:
            resolution:
              type: string
              enum:
                - FALSE_POSITIVE
                - VALID_THREAT
                - INCONCLUSIVE
                - REQUIREMENTS_NOT_MET
                - REQUIREMENTS_SATISFIED
            resolution_notes:
              type: string
              nullable: true
            maker_email:
              type: string
              format: email
              nullable: true
              description: >-
                결정을 제출한 담당자의 이메일입니다. API 키로 제출한 경우 null입니다. 해당 결정에는 기록된 작성자가
                없으므로 모든 호출자에 대해 승인 및 승인 거부가 403을 반환합니다.
            maker_name:
              type: string
              nullable: true
            maker_user_id:
              type: string
              format: uuid
              nullable: true
              description: >-
                해결 조치를 제출한 담당자의 멤버 사용자 uuid입니다. API 키가 제출한 경우 null입니다. 해당 멤버는
                `checker`로 지정될 수 없습니다.
            maker_blueprint_id:
              type: string
              format: uuid
            staged_at:
              type: string
              format: date-time
        checker:
          $ref: '#/components/schemas/CaseChecker'
        metadata:
          type: object
        blueprint:
          $ref: '#/components/schemas/CaseBlueprintDetail'
        notes:
          type: array
          items:
            $ref: '#/components/schemas/CaseNote'
          description: 최신 50개 메모입니다.
        events:
          type: array
          items:
            $ref: '#/components/schemas/CaseEvent'
          description: 최신 100개 이벤트입니다.
        links:
          type: array
          items:
            $ref: '#/components/schemas/CaseLink'
        links_count:
          type: integer
        notes_count:
          type: integer
        checklist_items:
          type: array
          items:
            $ref: '#/components/schemas/CaseChecklistItem'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    CaseSubject:
      type: object
      nullable: true
      description: 케이스가 연결된 단일 사용자 또는 기업입니다.
      properties:
        type:
          type: string
          enum:
            - user
            - business
        uuid:
          type: string
          format: uuid
        name:
          type: string
        external_id:
          type: string
          nullable: true
          description: 대상자의 vendor_data입니다.
        country:
          type: string
          nullable: true
          description: >-
            주체의 3자리 국가 코드(ISO 3166-1 alpha-3)이며, 알 수 없는 경우 null입니다. 기업의 경우 법인 설립
            국가입니다. 개인의 경우 인증에서 확인된 신분증의 발급 국가입니다. 여러 국가의 신분증을 보유한 개인은 그중 하나가
            표시되며, `XXA`와 같은 ICAO 문서 코드가 나타날 수 있습니다.
          example: ESP
        portrait:
          type: string
          format: uri
          nullable: true
          description: >-
            해당 인물의 인물 사진 이미지에 대한 유효 기간이 짧은 서명된 URL입니다. 기업의 경우 항상 null이며, 인물 사진이
            없는 개인의 경우에도 null입니다. URL이 만료되므로 URL을 저장하지 말고 케이스를 조회할 때 이미지를
            다운로드하세요.
    CaseAssignee:
      type: object
      nullable: true
      properties:
        uuid:
          type: string
          format: uuid
        full_name:
          type: string
        email:
          type: string
          format: email
    CaseTeamSummary:
      type: object
      nullable: true
      description: >-
        케이스를 소유한 검토 팀이거나, 소유한 팀이 없는 경우 null입니다. 라우팅 규칙이 케이스를 해당 팀 중 하나에 배정할 때
        라우팅에 의해 설정됩니다. `PATCH .../cases/{case_uuid}/`(`team`)로 변경하거나 비울 수 있습니다.
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
    CaseChecker:
      type: object
      nullable: true
      description: >-
        대기 중인 결정을 승인하거나 거부하도록 지정된 멤버입니다. 4인 승인 결정이 지정된 검토자를 기다리는 동안에만 설정됩니다. 대기
        중인 항목이 없거나, 대기 중인 결정이 검토자 대기열에서 대기 중이거나, 증거가 변경되어 결정이 승인, 거부 또는 새로운 검토를
        위해 반환된 경우에는 null입니다.
      properties:
        member_uuid:
          type: string
          format: uuid
          description: 멤버의 사용자 uuid입니다. 케이스를 해결할 때 `checker`로 전달하는 값입니다.
        name:
          type: string
          nullable: true
          description: 멤버의 성명이며, 알 수 없는 경우 null입니다.
        email:
          type: string
          format: email
    CaseBlueprintDetail:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
          maxLength: 24
        description:
          type: string
          nullable: true
        assignment_method:
          type: string
          enum:
            - MANUAL
            - AUTOMATIC
        assignee_pool:
          type: array
          items:
            type: string
            format: uuid
        max_active_cases:
          type: integer
          nullable: true
        escalation_enabled:
          type: boolean
        transfer_enabled:
          type: boolean
        require_resolution_note:
          type: boolean
        is_active:
          type: boolean
        preset_key:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
        escalation_blueprint:
          type: string
          format: uuid
          nullable: true
        escalation_blueprint_name:
          type: string
          nullable: true
        four_eyes_checker_blueprint:
          type: string
          format: uuid
          nullable: true
        four_eyes_checker_blueprint_name:
          type: string
          nullable: true
        content_config:
          type: object
          description: 케이스 페이지에 표시될 탭과 필드를 결정하는 6개의 토글 가능한 섹션입니다. 알 수 없는 섹션이나 키는 거부됩니다.
          properties:
            checklist:
              type: object
              properties:
                enabled:
                  type: boolean
                optional:
                  type: boolean
                  description: true인 경우, 체크리스트 항목이 완료되지 않아도 케이스를 해결할 수 있습니다.
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      label:
                        type: string
                        maxLength: 255
                      order:
                        type: integer
            aml_control:
              type: object
              properties:
                enabled:
                  type: boolean
                financial:
                  type: boolean
                identity:
                  type: boolean
            identity:
              type: object
              properties:
                enabled:
                  type: boolean
                personal_information:
                  type: boolean
                applicant_tags:
                  type: boolean
                contact_information:
                  type: boolean
                risk_overview:
                  type: boolean
                poi_documents:
                  type: boolean
                poa_documents:
                  type: boolean
            verifications:
              type: object
              properties:
                enabled:
                  type: boolean
                summary:
                  type: boolean
            reporting:
              type: object
              properties:
                enabled:
                  type: boolean
                fiu_reports:
                  type: boolean
            financial:
              type: object
              properties:
                enabled:
                  type: boolean
                payment_methods:
                  type: boolean
                transactions:
                  type: boolean
        creation_sources:
          type: array
          description: 현재 새 케이스를 이 청사진으로 라우팅하는 커넥터입니다.
          items:
            type: object
            properties:
              kind:
                type: string
                enum:
                  - aml
                  - rule
                  - workflow
              id:
                type: string
              name:
                type: string
        receives_escalation_from:
          type: array
          description: 에스컬레이션 대상이 이 블루프린트를 가리키는 다른 블루프린트입니다.
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
        updated_at:
          type: string
          format: date-time
        version:
          type: integer
          readOnly: true
        default_deadline_hours:
          type: integer
          nullable: true
          minimum: 1
          maximum: 8760
    CaseNote:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        comment:
          type: string
        actor_email:
          type: string
          format: email
          nullable: true
        actor_name:
          type: string
          nullable: true
        mentioned_emails:
          type: array
          items:
            type: string
            format: email
        is_internal:
          type: boolean
        attachments:
          type: array
          items:
            type: object
            properties:
              s3_key:
                type: string
              filename:
                type: string
              file_size:
                type: integer
              url:
                type: string
                format: uri
        tags:
          type: array
          items:
            type: string
        created_at:
          type: string
          format: date-time
    CaseEvent:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        event_type:
          type: string
          enum:
            - CREATED
            - STATUS_CHANGED
            - ASSIGNED
            - UNASSIGNED
            - RESOLVED
            - REOPENED
            - LINK_ADDED
            - LINK_REMOVED
            - NOTE_ADDED
            - NOTE_PINNED
            - NOTE_UNPINNED
            - PRIORITY_CHANGED
            - DUE_DATE_CHANGED
            - TAG_ADDED
            - TAG_REMOVED
            - ESCALATED
            - TRANSFERRED
            - CHECKLIST_COMPLETED
            - REPORT_CREATED
            - REPORT_FINALIZED
            - SUBMITTED_FOR_APPROVAL
            - APPROVAL_GRANTED
            - APPROVAL_REJECTED
            - ENTITY_ACTION
            - APPROVAL_INVALIDATED
            - CUSTOMER_REQUEST
            - STAGE_CHANGED
            - TEAM_CHANGED
            - CHECKER_ASSIGNED
            - CHECKER_UNASSIGNED
        actor_email:
          type: string
          format: email
          nullable: true
        actor_name:
          type: string
          nullable: true
        previous_status:
          type: string
          enum:
            - OPEN
            - AWAITING_USER
            - RESOLVED
          nullable: true
        new_status:
          type: string
          enum:
            - OPEN
            - AWAITING_USER
            - RESOLVED
          nullable: true
        metadata:
          type: object
        created_at:
          type: string
          format: date-time
    CaseLink:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        linked_entity_type:
          type: string
          enum:
            - session
            - business_session
            - transaction
          nullable: true
        linked_entity_uuid:
          type: string
          format: uuid
          nullable: true
        linked_entity_summary:
          type: object
          nullable: true
          description: >-
            세션 및 business_session 링크의 경우 session_id/session_number/status, 거래
            링크의 경우 uuid/txn_id/status입니다.
        created_at:
          type: string
          format: date-time
    CaseChecklistItem:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        label:
          type: string
          maxLength: 255
        is_completed:
          type: boolean
        completed_by:
          type: string
          format: email
          nullable: true
        completed_at:
          type: string
          format: date-time
          nullable: true
        order:
          type: integer
  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.