> ## 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 (Fraud Check API)

> Didit의 사기 확인 API로 신원, 연락처 위험, 데이터 보강, 네트워크 검사 중 원하는 항목을 하나의 요청으로 계획하고 실행하세요.

입력한 식별자와 사용자가 주장하는 신원 속성을 제출하고, 실행할 검사를 선택한 뒤 각 결과를 개별적으로 확인합니다.
입력 요건과 예상 과금을 먼저 확인하려면 [사기 검사 계획](https://docs.didit.me/ko/standalone-apis/fraud-check-plan.md)을 사용하십시오.

## 프로필 선택

선택한 기본값과 결정 정책이 명확하도록 `profile_version`을 고정하십시오.
기본 프로필은 `standard`이며 버전은 `2026-08-27`입니다.
`2026-09-14` 버전은 선택 사항인 이메일 및 전화번호 소셜 데이터 보강을 추가하고, 완료된 모든 검사를 기본 사용자 인증 세션으로 기록합니다.
이 버전에서 유료 부가 기능은 옵트인 방식입니다.
`2026-09-14.1` 버전은 Enterprise 요금제를 사용하면서 글로벌하게 공유하는 조직을 대상으로 글로벌 사기 네트워크 식별자 조회도 활성화합니다.
`2026-09-14.2` 버전은 브라질용 선택 사항인 셀피-CPF 참조 검사를 추가합니다.
이전 버전은 원래 동작을 유지합니다.

현재 프로필은 이메일 위험, 전화번호 위험, IP 위험, 해당하는 데이터베이스 검증, 그리고 귀사 애플리케이션의 비공개 네트워크 이력을 지원합니다.
셀피 기반 신원 결합에는 `2026-09-14.2` 버전이 필요합니다.
이전 버전에서 이를 선택하면 `not_available_in_profile_version`이 반환됩니다.

## 주장된 신원 및 맥락

이메일, 전화번호, 정부 식별자는 `subject.identifiers`에 넣으십시오.
정부 식별자에는 발급 국가가 필요하며, 번호가 지역 내에서만 고유한 경우에는 발급 기관도 필요할 수 있습니다.
이름, 생년월일, 국적, 주소는 `subject.attributes`에 넣으십시오.
이 값들은 선택한 데이터 소스가 지원하는 범위에서 비교할 주장 값이며, 제출되었다는 사실만으로 검증된 정보가 되지는 않습니다.

`context`에는 검증 시도의 IP 주소, 사용자 에이전트, 목적, 국가, 그리고 필요한 동의 확인 정보를 넣으십시오.
이렇게 하면 검증 시도에 관한 정보와 사람에 관한 정보가 분리됩니다.
지원되는 생체 검사의 경우, `subject.selfie`에 base64로 인코딩된 JPEG, PNG 또는 WebP 이미지를 최대 6MB까지 제공하십시오.
일치하는 이미지 데이터 URI도 허용됩니다.
참조 이미지, 원격 URL, 스토리지 키는 보내지 마십시오.

## 셀피와 주장된 식별자

`biometric_identity`를 선택하고, 브라질 `tax_number` 식별자와 셀피를 제출한 뒤 `context.consent_obtained`를 확인하십시오.
참조 검사는 해당 셀피가 주장된 CPF 소유자의 것인지 확인합니다.
동의가 없으면 `consent_required`가, 지원되지 않는 국가이면 `unsupported_region`이 반환됩니다.
이 모듈은 귀사 조직의 데이터베이스 검증 요금을 기준으로 한 확인 건당 가격이 적용됩니다. 실행하기 전에 요금제를 확인하십시오.

참조 검사가 응답하면 `identity_relationship.result`는 `match`, `mismatch`, `inconclusive` 중 하나가 됩니다.
불확정 응답은 검토가 필요하며, 불일치로 처리해서는 안 됩니다.
결과는 셀피와 CPF의 관계만 확인합니다.
제출된 이름이나 생년월일을 검증하지 않으며, 라이브니스를 입증하지 않고, 인터넷 또는 글로벌 사기 네트워크에서 얼굴을 검색하지도 않습니다.
다른 선택된 소스가 해당 필드에 대한 증거를 제공하지 않는 한, 이름과 생년월일은 여전히 주장 값입니다.
시간 초과와 소스 오류는 사용 불가 결과로 처리되며 과금되지 않습니다.
완료된 불확정 응답은 동일한 참조 검사 요금으로 과금됩니다.
이 검사는 셀피를 결과에 포함하지 않으며, 세션 미디어로 저장하지도 않습니다.

## 검사 선택

`checks.include`는 모듈을 선택하며, `checks.exclude`가 우선합니다.
명시적으로 빈 `include` 목록을 지정하면 선택 사항인 모든 작업이 비활성화되며, 정규화는 계속 실행됩니다.
`include`를 생략하면 고정된 프로필의 기본값이 사용됩니다.
이메일 및 전화번호 소셜 데이터 보강은 `email_social`과 `phone_social`로 별도로 선택합니다.
이들은 유효하고 일치하는 식별자가 필요하며, OTP를 보내지 않습니다.

```json theme={null}
{
  "profile_version": "2026-09-14.1",
  "client_reference": "review-attempt-001",
  "subject": {
    "identifiers": [
      { "type": "email", "value": "applicant@example.com" }
    ],
    "attributes": { "first_name": "Alex", "last_name": "Example" }
  },
  "checks": { "include": ["networks_same_org", "networks_cross_org", "email_risk"] }
}
```

## 결과를 뒤섞지 않고 읽기

각 모듈은 실행 상태, 사유, 과금 단위를 보고합니다.
`not_requested`, `excluded_by_caller`, `missing_required_input`, `source_unavailable`은 서로 다른 결과를 나타냅니다.
소스가 없다는 것은 신원 불일치나 위험 없음(0)을 뜻하지 않습니다.

`attribute_evidence`는 필드 수준의 증거를 나타내며, `risk`는 신원, 연락처, 기기, 행동, 사기 네트워크 차원을 분리하여 보여 줍니다.
이메일, 기기, 또는 기타 식별자가 공유되는 것은 관찰된 연결일 뿐이며, 두 계정이 같은 사람에게 속한다거나 사기를 저질렀다는 증거가 아닙니다.
`recommendation`은 해당 검사의 권고 사항이며, 다른 레코드의 상태를 변경하지 않습니다.
소셜 데이터 보강 결과는 `enrichment` 아래에 표시되며, 사용 불가 결과는 완료된 결과와 구분됩니다.

## 글로벌 사기 네트워크

`networks_cross_org`를 선택하면 지원되는 이메일, 전화번호, 올바르게 네임스페이스가 지정된 문서 식별자를 공유 네트워크에 대해 조회합니다.
이 조회에는 Enterprise 요금제와 조직의 공유 모드를 `global`로 설정해야 합니다.
이 조건이 충족되지 않으면 요금제는 해당 모듈을 `available: false`와 `availability_reason: "entitlement_required"`로 보고합니다. 이 모듈을 선택한 검사는 상태 `skipped`와 사유 `entitlement_required`로 건너뜁니다.
조직에서 Networks가 활성화되어 있지 않은 경우에도 같은 사유가 적용됩니다.
샌드박스 애플리케이션은 요금제나 공유 모드의 제한을 받지 않습니다. 지원되는 식별자를 사용하면 모듈이 실행되고 빈 샘플 결과를 반환합니다.
이 조회는 기존 조직 읽기 한도를 사용하며, 읽기 작업을 감사 로그에 기록합니다.
조회당 별도의 요금은 없습니다.
검사를 계획하는 것만으로는 공유 인덱스를 조회하지 않으며 읽기 한도도 사용하지 않습니다.

`network.cross_organization`에는 검사가 완료되면 `signals_checked`와 공개된 집계 `insights`가 포함됩니다.
각 인사이트에는 신호 유형, 결과 분류, 기여자 수, 최근성 구간이 포함되며, 공개가 활성화된 경우에만 업종 분류가 포함됩니다.
다른 조직, 계정, 개인 또는 인증을 식별하지 않습니다.
공개 임계값 미만의 결과는 생략됩니다. 빈 목록은 사기 이력이 없다는 것을 증명하지 않습니다.
공개된 공유 신호는 검토 권고를 발생시킵니다. 자동 거부나 신원 일치를 발생시키지 않습니다.

조회를 사용할 수 없는 사유는 조회가 완료되었지만 결과가 비어 있는 경우와 별도로 보고됩니다.
나중에 조직이 교차 조직 액세스 권한을 잃으면(예: 요금제 변경 또는 공유 모드가 더 이상 `global`이 아닌 경우), 결과 조회, 재시도, 세션 세부 정보에서 공유 집계와 그로부터 파생된 위험 근거가 숨겨집니다.
원래의 권고는 과거 결정으로 남으며, 읽기 작업은 인증 상태를 변경하지 않습니다.

## 세션, 재시도 및 요금

`check_id`는 [Fraud Check 조회](https://docs.didit.me/ko/standalone-apis/fraud-check-result.md)를 통해 저장된 결과를 가져옵니다.
`request_id`가 있으면 해당 네이티브 인증 세션을 식별합니다.
버전 `2026-09-14`, `2026-09-14.1`, `2026-09-14.2`에서는 비공개 네트워크 이력만 선택된 경우에도 항상 해당 세션을 생성합니다.

`client_reference`를 같은 요청 본문과 함께 재사용하면, 해당 검사가 존재하는 동안 다시 실행하거나 요금을 청구하지 않고 원래 결과를 반환합니다.
같은 참조에 다른 본문을 보내면 `409`가 반환됩니다.
실행이 아직 진행 중이면, 응답의 `Retry-After` 간격이 지난 후 같은 요청을 다시 시도하십시오.
연결된 인증을 삭제하면 Fraud Check 결과도 삭제되며, 이후 조회는 `404`를 반환합니다.
실행 중에 삭제된 검사는 완료된 결과를 게시할 수 없습니다.

가격은 조직의 현재 선불 또는 계약 요율에 따릅니다.
사용할 수 없거나 건너뛴 모듈은 과금되지 않으며, 비공개 네트워크 이력에는 검사당 요금이 없습니다.
샌드박스 검사는 유료 공급업체 호출이나 요금 없이 샘플 응답을 사용합니다.


## OpenAPI

````yaml ko/openapi-25.json POST /v3/fraud/checks/
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/fraud/checks/:
    post:
      tags:
        - Fraud Check
      summary: 사기 검사 실행
      description: >-
        하나 이상의 유형화된 식별자를 제출하고, 단일 응답으로 정규화, 최신 데이터 보강, 지원되는 국가 및 식별자 유형에 대한 신뢰할
        수 있는 검증, 독립적인 위험 차원 분석 및 권장 사항을 수신합니다.


        이 프로필들은 식별자 검사를 지원합니다. 셀피 기반 신원 바인딩(`biometric_identity`)에는 프로필 버전
        `2026-09-14.2`와 브라질 CPF가 필요합니다. 이는 사용자의 동의가 있고 조직에 해당 권한이 부여된 경우에만
        실행됩니다. 이전 버전에서는 `not_available_in_profile_version`으로 보고됩니다. 실행할 수 없는 모듈은
        확정적인 이유와 함께 건너뜀으로 보고되며, 응답할 수 없는 소스는 결코 신원 불일치로 보고되지 않습니다.
      operationId: create_fraud_check
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FraudCheckRequestRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/FraudCheckRequestRequest'
            example:
              client_reference: review-attempt-001
              subject:
                identifiers:
                  - type: email
                    value: applicant@example.com
                attributes:
                  first_name: Alex
                  last_name: Example
              checks:
                include:
                  - networks_same_org
                  - networks_cross_org
                  - email_risk
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FraudCheckRequestRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FraudCheckResponse'
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FraudClientCredentialsErrorMessage'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/FraudClientCredentialsForbiddenErrorMessage
          description: ''
        '409':
          description: >-
            충돌(비용 청구 없이 반환됨): `client_reference`가 이미 다른 요청 본문에서 사용되었거나, 동일한
            `client_reference`를 가진 검사가 아직 실행 중이거나(`Retry-After` 초 후에 동일한 참조로
            재시도), 이 검사가 기록되는 인증이 검사 완료 전에 삭제되었습니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
              examples:
                different_body:
                  summary: 다른 본문과 함께 재사용된 레퍼런스
                  value:
                    error: >-
                      client_reference has already been used with a different
                      request body.
                still_running:
                  summary: 이 참조를 가진 확인이 아직 실행 중입니다
                  value:
                    error: >-
                      A check with this client_reference is already running.
                      Retry with the same reference later.
                verification_deleted:
                  summary: 확인이 완료되기 전에 인증이 삭제되었습니다
                  value:
                    error: This verification was deleted before the check completed.
          headers:
            Retry-After:
              description: >-
                동일한 `client_reference`를 가진 검사가 아직 실행 중일 때 전송되는, 재시도 전 대기
                시간(초)입니다.
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.fraud_checks.create(
                client_reference="review-attempt-001",
                subject={
                    "identifiers": [{
                        "type": "email",
                        "value": "applicant@example.com",
                    }],
                    "attributes": {
                        "first_name": "Alex",
                        "last_name": "Example",
                    },
                },
                checks={
                    "include": ["networks_same_org", "networks_cross_org", "email_risk"],
                },
            )
            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.fraudChecks.create({
              client_reference: "review-attempt-001",
              subject: {
                identifiers: [{
                  type: "email",
                  value: "applicant@example.com",
                }],
                attributes: {
                  first_name: "Alex",
                  last_name: "Example",
                },
              },
              checks: {
                include: ["networks_same_org", "networks_cross_org", "email_risk"],
              },
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.FraudChecks.Create(ctx, didit.FraudCheckRequestRequest{\n\tClientReference: didit.String(\"review-attempt-001\"),\n\tSubject: didit.FraudCheckSubjectRequest{\n\t\tIdentifiers: []didit.FraudCheckIdentifierRequest{{\n\t\t\tType:  didit.FraudTypeEnum(\"email\"),\n\t\t\tValue: \"applicant@example.com\",\n\t\t}},\n\t\tAttributes: didit.Some(didit.FraudCheckAttributesRequest{\n\t\t\tFirstName: didit.String(\"Alex\"),\n\t\t\tLastName:  didit.String(\"Example\"),\n\t\t}),\n\t},\n\tChecks: didit.Some(didit.FraudCheckModuleSelectionRequest{\n\t\tInclude: didit.Some([]didit.FraudExcludeEnum{didit.FraudExcludeEnum(\"networks_same_org\"), didit.FraudExcludeEnum(\"networks_cross_org\"), didit.FraudExcludeEnum(\"email_risk\")}),\n\t}),\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.FraudCheckAttributesRequest;

            import me.didit.types.FraudCheckIdentifierRequest;

            import me.didit.types.FraudCheckModuleSelectionRequest;

            import me.didit.types.FraudCheckRequestRequest;

            import me.didit.types.FraudCheckSubjectRequest;

            import me.didit.types.FraudExcludeEnum;

            import me.didit.types.FraudTypeEnum;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.fraudChecks().create(FraudCheckRequestRequest.builder()
                    .clientReference("review-attempt-001")
                    .subject(FraudCheckSubjectRequest.builder()
                            .identifiers(List.of(FraudCheckIdentifierRequest.builder()
                                    .type(FraudTypeEnum.of("email"))
                                    .value("applicant@example.com")
                                    .build()))
                            .attributes(FraudCheckAttributesRequest.builder()
                                    .firstName("Alex")
                                    .lastName("Example")
                                    .build())
                            .build())
                    .checks(FraudCheckModuleSelectionRequest.builder()
                            .include(List.of(FraudExcludeEnum.of("networks_same_org"), FraudExcludeEnum.of("networks_cross_org"), FraudExcludeEnum.of("email_risk")))
                            .build())
                    .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->fraudChecks->create([
                'client_reference' => 'review-attempt-001',
                'subject' => [
                    'identifiers' => [[
                        'type' => 'email',
                        'value' => 'applicant@example.com',
                    ]],
                    'attributes' => [
                        'first_name' => 'Alex',
                        'last_name' => 'Example',
                    ],
                ],
                'checks' => [
                    'include' => ['networks_same_org', 'networks_cross_org', 'email_risk'],
                ],
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.fraud_checks.create(
              client_reference: "review-attempt-001",
              subject: {
                identifiers: [{
                  type: "email",
                  value: "applicant@example.com",
                }],
                attributes: {
                  first_name: "Alex",
                  last_name: "Example",
                },
              },
              checks: {
                include: ["networks_same_org", "networks_cross_org", "email_risk"],
              }
            )
            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.FraudChecks.CreateAsync(new
            FraudCheckRequestRequest

            {
                ClientReference = "review-attempt-001",
                Subject = new()
                {
                    Identifiers = new FraudCheckIdentifierRequest[]
                    {
                        new()
                        {
                            Type = "email",
                            Value = "applicant@example.com",
                        },
                    },
                    Attributes = new FraudCheckAttributesRequest
                    {
                        FirstName = "Alex",
                        LastName = "Example",
                    },
                },
                Checks = new FraudCheckModuleSelectionRequest
                {
                    Include = new FraudExcludeEnum[] { "networks_same_org", "networks_cross_org", "email_risk" },
                },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    FraudCheckRequestRequest:
      type: object
      properties:
        client_reference:
          type: string
          minLength: 1
          description: >-
            이 검사에 대한 귀하 고유의 참조값입니다. 멱등성 키 역할을 겸합니다. 동일한 본문으로 재사용하면 모듈을 다시 실행하거나
            비용을 청구하지 않고 원래 검사 결과를 반환하며, 다른 본문으로 재사용하면 409를 반환합니다.
          maxLength: 255
        profile:
          type: string
          minLength: 1
          default: standard
          description: 오케스트레이션 프로필 ID입니다. Didit `standard` 프로필이 기본값으로 사용됩니다.
          maxLength: 64
        profile_version:
          type: string
          minLength: 1
          description: 동결된 프로필 버전을 고정합니다. 기본값은 프로필의 현재 버전입니다.
          maxLength: 32
        subject:
          $ref: '#/components/schemas/FraudCheckSubjectRequest'
        context:
          $ref: '#/components/schemas/FraudCheckContextRequest'
        checks:
          $ref: '#/components/schemas/FraudCheckModuleSelectionRequest'
        vendor_data:
          type: string
          maxLength: 1000
        metadata: {}
      required:
        - subject
    FraudCheckResponse:
      type: object
      properties:
        check_id:
          type: string
          format: uuid
        request_id:
          type: string
          format: uuid
          description: 이 검사를 위해 생성된 네이티브 인증 세션입니다.
        client_reference:
          type: string
          nullable: true
        processing_status:
          $ref: '#/components/schemas/FraudProcessingStatusEnum'
        profile_id:
          type: string
        profile_version:
          type: string
        created_at:
          type: string
          format: date-time
        completed_at:
          type: string
          format: date-time
          nullable: true
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckInput'
        modules:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckModuleReport'
        attribute_evidence:
          type: array
          items:
            type: object
            additionalProperties: {}
        compound_evidence:
          type: array
          items:
            type: object
            additionalProperties: {}
        risk:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckRisk'
        network:
          type: object
          additionalProperties: {}
        enrichment:
          type: object
          additionalProperties: {}
        identity_relationship:
          allOf:
            - $ref: '#/components/schemas/FraudCheckIdentityRelationship'
          nullable: true
        recommendation:
          $ref: '#/components/schemas/FraudRecommendationEnum'
        next_action:
          $ref: '#/components/schemas/FraudNextActionEnum'
        decision_reasons:
          type: array
          items:
            type: string
        coverage:
          type: object
          additionalProperties: {}
        usage:
          type: array
          items:
            type: object
            additionalProperties: {}
        vendor_data:
          type: string
          nullable: true
        metadata:
          nullable: true
      required:
        - attribute_evidence
        - check_id
        - client_reference
        - completed_at
        - compound_evidence
        - coverage
        - created_at
        - decision_reasons
        - inputs
        - modules
        - network
        - next_action
        - processing_status
        - profile_id
        - profile_version
        - recommendation
        - risk
        - usage
    FraudClientCredentialsErrorMessage:
      type: object
      properties:
        detail:
          type: string
          default: 'Authentication failed: Invalid client access token.'
    FraudClientCredentialsForbiddenErrorMessage:
      type: object
      properties:
        detail:
          type: string
          default: Forbidden - User doesn't have permission
    FraudCheckSubjectRequest:
      type: object
      properties:
        selfie:
          type: string
          minLength: 1
          description: Base64 JPEG, PNG 또는 WebP 셀피로, 최대 6MB입니다. 참조 이미지나 URL은 허용되지 않습니다.
          maxLength: 8388672
        identifiers:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckIdentifierRequest'
          description: 하나 이상의 유형이 지정된 식별자입니다. 하나만 있어도 충분합니다.
          maxItems: 10
          minItems: 1
        attributes:
          $ref: '#/components/schemas/FraudCheckAttributesRequest'
      required:
        - identifiers
    FraudCheckContextRequest:
      type: object
      properties:
        ip_address:
          type: string
          minLength: 1
        user_agent:
          type: string
          maxLength: 512
        country:
          type: string
          description: 대상자가 위치한다고 주장하는 국가입니다. 맥락 정보로만 사용되며, 신원 소유권의 증거로는 절대 사용할 수 없습니다.
          maxLength: 3
        purpose:
          type: string
          maxLength: 128
        consent_obtained:
          type: boolean
    FraudCheckModuleSelectionRequest:
      type: object
      properties:
        include:
          type: array
          items:
            $ref: '#/components/schemas/FraudExcludeEnum'
        exclude:
          type: array
          items:
            $ref: '#/components/schemas/FraudExcludeEnum'
    FraudProcessingStatusEnum:
      enum:
        - pending
        - running
        - completed
        - failed
      type: string
      description: |-
        * `pending` - 대기 중
        * `running` - 실행 중
        * `completed` - 완료됨
        * `failed` - 실패함
    FraudCheckInput:
      type: object
      properties:
        reference:
          type: string
          description: 제출된 식별자에 대해 마스킹 처리된 핸들입니다.
        type:
          $ref: '#/components/schemas/FraudTypeEnum'
        namespace:
          type: object
          additionalProperties: {}
        quality:
          type: string
        normalization:
          type: object
          additionalProperties: {}
        availability:
          $ref: '#/components/schemas/FraudAvailabilityEnum'
      required:
        - availability
        - namespace
        - normalization
        - quality
        - reference
        - type
    FraudCheckModuleReport:
      type: object
      properties:
        module:
          $ref: '#/components/schemas/FraudExcludeEnum'
        status:
          $ref: '#/components/schemas/FraudStatusEnum'
        reason:
          type: string
          nullable: true
        latency_ms:
          type: integer
        freshness:
          type: string
          nullable: true
        billable_units:
          type: integer
      required:
        - billable_units
        - freshness
        - latency_ms
        - module
        - reason
        - status
    FraudCheckRisk:
      type: object
      properties:
        dimension:
          $ref: '#/components/schemas/FraudDimensionEnum'
        score:
          type: integer
          nullable: true
        band:
          $ref: '#/components/schemas/FraudBandEnum'
        availability:
          $ref: '#/components/schemas/FraudAvailabilityEnum'
        requested_but_unavailable:
          type: boolean
          description: >-
            요청이 이 차원에 필요한 모든 것을 제공했음에도 플랫폼에서 응답할 수 없는 경우 true입니다. 이러한 확인은 응답한
            차원의 결과만을 근거로 승인을 권장하지 않습니다.
        reason_codes:
          type: array
          items:
            type: string
        evidence_indexes:
          type: array
          items:
            type: integer
      required:
        - availability
        - band
        - dimension
        - evidence_indexes
        - reason_codes
        - requested_but_unavailable
        - score
    FraudCheckIdentityRelationship:
      type: object
      properties:
        result:
          $ref: '#/components/schemas/FraudResultEnum'
        reference_type:
          type: string
        country:
          type: string
        availability:
          $ref: '#/components/schemas/FraudAvailabilityEnum'
        reason_codes:
          type: array
          items:
            type: string
      required:
        - availability
        - country
        - reason_codes
        - reference_type
        - result
    FraudRecommendationEnum:
      enum:
        - approve
        - review
        - reject
      type: string
      description: |-
        * `approve` - 승인
        * `review` - 검토
        * `reject` - 거부
    FraudNextActionEnum:
      enum:
        - none
        - manual_review
        - step_up
        - resubmit_capture
      type: string
      description: |-
        * `none` - 없음
        * `manual_review` - 수동 검토
        * `step_up` - 추가 인증
        * `resubmit_capture` - 캡처 재제출
    FraudCheckIdentifierRequest:
      type: object
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/FraudTypeEnum'
          description: |-
            식별자 유형입니다. 필수 네임스페이스 필드를 결정합니다.

            * `email` - 이메일
            * `phone` - 전화번호
            * `national_id` - 국가 ID
            * `tax_number` - 납세자 번호
            * `passport_number` - 여권 번호
            * `driving_licence_number` - 운전면허증 번호
            * `residence_permit_number` - 거주 허가증 번호
            * `voter_id` - 유권자 ID
            * `external_id` - 외부 ID
        value:
          type: string
          minLength: 1
          description: 통상적으로 사용되는 형식의 식별자 값입니다.
          maxLength: 255
        country:
          type: string
          description: >-
            ISO-3166 alpha-2 또는 alpha-3 발급 국가입니다. 정부 발급 식별자 유형에 필수입니다. 동일한 번호라도
            국가마다 다른 사람을 나타냅니다.
          maxLength: 3
        issuer:
          type: string
          description: 국가만으로는 고유하지 않은 경우의 선택적 발급 기관 또는 국가 하위 단위 발급 기관입니다.
          maxLength: 128
      required:
        - type
        - value
    FraudCheckAttributesRequest:
      type: object
      description: 보강 속성입니다. 모두 선택 사항이며 모듈 적용 범위를 넓혀줍니다.
      properties:
        first_name:
          type: string
          maxLength: 128
        last_name:
          type: string
          maxLength: 128
        full_name:
          type: string
          maxLength: 256
        date_of_birth:
          type: string
          format: date
        nationality:
          type: string
          maxLength: 3
        gender:
          type: string
          maxLength: 16
        address:
          type: string
          maxLength: 512
        city:
          type: string
          maxLength: 128
        state:
          type: string
          maxLength: 128
        postal_code:
          type: string
          maxLength: 32
    FraudExcludeEnum:
      enum:
        - normalization
        - email_risk
        - email_social
        - phone_social
        - phone_risk
        - ip_risk
        - database_validation
        - networks_same_org
        - networks_cross_org
        - biometric_identity
      type: string
      description: |-
        * `normalization` - 정규화
        * `email_risk` - 이메일 위험
        * `email_social` - 이메일 소셜
        * `phone_social` - 전화번호 소셜
        * `phone_risk` - 전화번호 위험
        * `ip_risk` - IP 위험
        * `database_validation` - 데이터베이스 검증
        * `networks_same_org` - 동일 조직 네트워크
        * `networks_cross_org` - 조직 간 네트워크
        * `biometric_identity` - 생체 신원
    FraudTypeEnum:
      enum:
        - email
        - phone
        - national_id
        - tax_number
        - passport_number
        - driving_licence_number
        - residence_permit_number
        - voter_id
        - external_id
      type: string
      description: |-
        * `email` - 이메일
        * `phone` - 전화번호
        * `national_id` - 국가 신분증 번호
        * `tax_number` - 납세자 번호
        * `passport_number` - 여권 번호
        * `driving_licence_number` - 운전면허증 번호
        * `residence_permit_number` - 거주 허가증 번호
        * `voter_id` - 유권자 ID
        * `external_id` - 외부 ID
    FraudAvailabilityEnum:
      enum:
        - available
        - not_requested
        - no_reference
        - insufficient_history
        - unsupported_region
        - source_unavailable
      type: string
      description: |-
        * `available` - 사용 가능
        * `not_requested` - 요청되지 않음
        * `no_reference` - 참조 정보 없음
        * `insufficient_history` - 이력 불충분
        * `unsupported_region` - 미지원 지역
        * `source_unavailable` - 소스 사용 불가
    FraudStatusEnum:
      enum:
        - planned
        - completed
        - skipped
        - failed
      type: string
      description: |-
        * `planned` - 예정됨
        * `completed` - 완료됨
        * `skipped` - 건너뜀
        * `failed` - 실패함
    FraudDimensionEnum:
      enum:
        - identity
        - contact
        - device_network
        - behavioral
        - fraud_network
      type: string
      description: |-
        * `identity` - 신원
        * `contact` - 연락처
        * `device_network` - 기기 및 네트워크
        * `behavioral` - 행동
        * `fraud_network` - 사기 네트워크
    FraudBandEnum:
      enum:
        - low
        - medium
        - high
        - unknown
      type: string
      description: |-
        * `low` - 낮음
        * `medium` - 보통
        * `high` - 높음
        * `unknown` - 알 수 없음
    FraudResultEnum:
      enum:
        - match
        - mismatch
        - inconclusive
        - no_reference
      type: string
      description: |-
        * `match` - 일치
        * `mismatch` - 불일치
        * `inconclusive` - 판정 불가
        * `no_reference` - 참조 정보 없음
  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 를 참고하십시오.
    BearerAuth:
      type: http
      scheme: bearer
      description: 애플리케이션의 클라이언트 자격 증명 액세스 token입니다.

````

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