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

# KYB 레지스트리 검색 API - 기업 검색

> Didit의 POST /v3/kyb/search/는 기업 후보를 찾습니다. 유료 기업 데이터 소스에서 성공한 검색은 요청당 $0.50이며, 프로필 조회는 별도 과금됩니다.

이 endpoint를 가장 먼저 호출해 일치하는 법인 등기부 후보를 찾으세요. 검색만으로는 저장된 Manual Check가 만들어지지 않습니다.

유료 기업 데이터 소스를 사용하는 독립형 검색이 성공하면 후보 수와 관계없이 **요청당 \$0.50**이 청구됩니다. 결과가 없거나, 검색이 실패하거나, 다른 소스에서만 결과가 제공된 경우에는 청구되지 않습니다. 이후 프로필을 가져오는 요청은 별도로 과금됩니다.

유료 소스를 사용할 수 있는 검색의 경우, Didit는 레지스트리에 연결하기 전에 해당 검색 가격을 확인하고 예약합니다. 잔액이 부족하면 `403`과 `code: "insufficient_credits"`가 반환됩니다. 계약 과금은 합의된 검색 요율을 따르며, 설정되지 않은 계약 요율은 검색 전에 거부됩니다. 샌드박스 검색은 무료입니다. 성공한 검색을 반복할 때마다 새로운 과금 대상 요청이 되며, 콜백 전송은 검색 요금을 추가로 부과하지 않습니다.

`webhook_url`을 보내면 Didit는 제공업체가 검색을 처리하는 동안 즉시 응답하고, 후보가 준비되면 콜백 URL로 후보를 전송할 수 있습니다. 이 콜백은 설계상 서명되지 않으므로, 이 검색 알림을 위해 webhook 시크릿을 설정할 필요가 없습니다. [검색 콜백 페이로드 예시](https://docs.didit.me/ko/standalone-apis/kyb-registry.md#검색-콜백)를 참고하세요.

올바른 `kyb_response_id`를 선택한 후에는 `POST /v3/kyb/select/`(Lite), `POST /v3/kyb/shareholders/` 또는 `POST /v3/kyb/ubo/`를 호출해 필요한 등급으로 과금 대상 레지스트리 프로필을 가져오세요.

> [!NOTE]
>
> 각 후보의 `fetch_status`는 검색 시점에 `pending`이며, 해당 후보를 선택하기 전까지 `pending` 상태를 유지합니다. 검색은 후보 목록만 제공하고, 전체 프로필은 선택할 때 가져옵니다. 해결될 때까지 검색을 폴링하지 마세요.
>
> `kyb_response_id`는 하나의 검색 요청에만 범위가 지정된 불투명하고 일시적인 핸들입니다. 받은 그대로 다시 전달하고, 내용을 해석하거나 그것으로부터 아무것도 유도하지 마세요. 같은 검색을 반복하면 새로운 id가 반환된다는 점을 예상해야 합니다. 검색 후 가능한 한 빨리 후보를 선택하고, 회사 자체를 식별하는 안정적인 식별자가 필요하면 `registration_number`를 사용하세요.

## 검색 등급

`tier`는 검색이 실행될 레지스트리 등급의 제공업체 체인을 선택합니다. 값은 `basic`(기본값, Lite 체인), `shareholders` 또는 `ubo`입니다. 후보 목록은 해당 등급의 체인에서 가져오며, 이 체인이 Lite 검색이 조회하는 소스와 항상 같지는 않습니다. 따라서 Lite 검색 결과가 비어 있어도 레지스트리에 해당 회사가 없다는 뜻은 아닙니다. 필요한 등급으로 다시 검색하세요.

지정하신 등급을 국가에서 제공하지 않는 경우, 검색은 그 등급까지 제공되는 가장 높은 등급에서 실행됩니다. 레지스트리 데이터가 전혀 없는 국가는 레지스트리 확인 대상으로 제공되지 않으며, 이 경우 수동 기업 정보 입력을 계속 진행하세요.

구매할 등급으로 검색한 다음, 그 후보를 판매하는 endpoint에서 가져오세요.

| 검색한 `tier` | 후보를 가져오는 endpoint |
| - | - |
| `basic`(기본값) | `POST /v3/kyb/select/`(Lite) |
| `shareholders` | `POST /v3/kyb/shareholders/` |
| `ubo` | `POST /v3/kyb/ubo/` |

## search\_type

`search_type`은 `contains`만 허용하며, 이것이 기본값입니다. 검색의 기반이 되는 레지스트리 소스는 회사명이 포함되는지를 기준으로 일치시키므로, `start_with`와 `fuzzy`는 `400`(`"start_with" is not a valid choice`)으로 거부되며 `contains`로 조용히 처리되지 않습니다. 정확한 회사 일치를 원하면 `registration_number`를 보내세요.

## 호스티드 검색과 독립형 검색

`POST /v1/kyb/search/`는 호스티드 인증 흐름이 실행하는 검색입니다. 인증 세션으로 인증되며, API 키에는 `403`으로 응답하고, `tier`를 받지 않습니다. 워크플로의 KYB 레지스트리 설정이 체인을 선택합니다. 독립형 API는 `x-api-key`와 함께 `POST /v2/kyb/search/` 또는 `POST /v3/kyb/search/`를 호출합니다. `tier` 입력과 등급별 select endpoint는 독립형 연동이 같은 후보에 필요한 등급으로 접근하는 방법입니다.

## 레지스트리 중단 처리

레지스트리 제공업체를 일시적으로 사용할 수 없으면, endpoint는 안정적인 기계 판독용 코드와 함께 `502`를 반환합니다:

```json theme={null}
{
  "detail": "The company registry provider is temporarily unavailable.",
  "code": "kyb_registry_provider_unavailable"
}
```

이 코드를 받으면 사용자가 수동 기업 정보 입력을 계속하도록 하거나, 나중에 다시 시도하도록 안내하세요. 검증 오류는 별도로 처리하세요. 잘못된 검색 입력은 `400`을 반환하며, 이 중단 코드를 사용하지 않습니다.

## 지원되지 않는 국가 및 검색 한도 처리

재시도를 중단하고 수동 기업 정보 입력을 계속하라는 안정적인 코드가 두 가지 더 있습니다:

| 상태 | `code` | 발생 조건 |
| - | - | - |
| `400` | `kyb_registry_country_unsupported` | 해당 국가는 어떤 등급에도 기업 등기부 소스가 없습니다. 이 제한은 영구적이므로, 같은 검색을 다시 시도해도 성공하지 않습니다. |
| `429` | `kyb_registry_search_limit_reached` | 애플리케이션이 유료 기업 데이터 소스에 대해 시간당 600회의 검색 할당량을 모두 사용했고, 해당 국가에 사용 가능한 무료 소스가 없습니다. 시간 창이 지나기를 기다리거나 회사를 직접 입력하세요. |

호스티드 흐름에서는 레지스트리 단계마다 유료 기업 데이터 소스에 대해 3회까지 검색할 수 있습니다. 세 번째 검색 이후에는 신청자에게 수동 입력이 제공됩니다.

검색 결과 선택한 후보가 회사가 아니라 상표 등록인 경우, `400`과 `code: "kyb_registry_entry_not_a_company"`가 반환됩니다. 이때는 검색 결과에서 회사를 선택하세요.


## OpenAPI

````yaml ko/openapi-25.json POST /v3/kyb/search/
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/kyb/search/:
    post:
      tags:
        - Standalone APIs
      summary: KYB 등기부 기업 검색(독립 실행형)
      description: >-
        회사명 및/또는 등록번호로 공식 법인 등기부에서 후보 기업을 검색합니다. 이는 2단계 등기부 조회의 1단계입니다.
        **search**는 가벼운 후보 목록을 반환하고, `POST /v3/kyb/select/`가 한 후보의 전체 프로필을
        조회합니다.


        **검색 결제.** 유료 기업 데이터 소스를 사용한 성공한 검색에는 후보 수와 관계없이 요청당 USD 0.50가 부과됩니다. 빈
        결과, 실패 및 기타 소스로만 제공된 결과에는 요금이 부과되지 않습니다. 해당 가격은 검색 전에 예약되며, 잔액이 부족하면
        `insufficient_credits` 코드와 함께 403을 반환합니다. 합의된 계약 요율이 적용되며, 설정되지 않은 계약 검색
        요율은 403을 반환합니다. 샌드박스 검색은 무료입니다. 성공한 검색을 반복하면 추가 요금이 발생할 수 있으며, 콜백 전송에는
        추가 요금이 부과되지 않습니다. 프로필 조회는 별도로 청구됩니다. 이 검색 수수료는 v2에도 적용됩니다. 후보는 항상
        `fetch_status: "pending"` 상태로 반환되며, 전체 기업 데이터는 선택(select) 시에만 조회(및
        청구)됩니다.


        **`kyb_response_id`는 일회성입니다.** 이는 검색별 핸들이며, 영구적인 회사 ID가 아닙니다. 검색 후 즉시
        선택하고, 저장하는 대신 다시 검색하여 새로운 핸들을 받으십시오.


        **`tier`는 공급자 체인을 선택합니다.** `tier`는 검색이 실행되는 등기부 등급을 지정합니다. `basic`(기본값,
        Lite 체인), `shareholders` 또는 `ubo`입니다. 검색은 해당 등급을 제공하는 공급자 체인을 사용하며, Lite
        검색이 읽는 체인과 항상 동일하지는 않으므로 빈 Lite 검색 결과가 등기부에 회사가 없다는 증거는 아닙니다. 필요한 등급으로
        다시 검색하십시오. 지정한 등급을 제공하지 않는 국가는 해당 등급 이하에서 제공하는 최고 등급으로 검색됩니다. 해당 등급을
        판매하는 endpoint에서 후보를 조회하십시오. `POST /v3/kyb/select/`(Lite), `POST
        /v3/kyb/shareholders/` 또는 `POST /v3/kyb/ubo/`.


        **인증.** `POST /v3/kyb/search/`(및 `/v2/`)는 `x-api-key` 헤더에 애플리케이션의 API 키를
        받습니다. 호스팅된 `POST /v1/kyb/search/`는 호스팅 인증 플로우가 호출하는 세션 인증 경로입니다. API 키에
        대해 `403`을 반환하며 `tier`를 받지 않습니다. 워크플로의 KYB 등기부 구성이 체인을 선택합니다.


        **두 가지 모드.**

        - *동기(기본값):* API가 검색이 완료될 때까지 등기부를 폴링하고 최종 후보 목록을
        반환합니다(`search_resolved: true`).

        - *비동기:* `webhook_url`을 전달하면 API가 즉시 반환되며(일반적으로 `search_status:
        "pending"` 및 빈 후보 목록), 등기부 조회가 완료되면 URL로 `kyb.registry_search.resolved`
        콜백을 POST합니다. 콜백 본문은 `{"event_id", "event_type":
        "kyb.registry_search.resolved", "request_id", "vendor_data", "metadata",
        "search_status", "search_resolved", "kyb_registry", "timestamp",
        "created_at"}`이며(이 endpoint의 ISO `created_at`과 달리 콜백의 `timestamp` 및
        `created_at`은 에포크 정수임에 유의), **서명되지 않은** 상태로 전송됩니다(헤더
        `X-Didit-Unsigned-Callback: true`, `X-Signature` 없음).


        **국가 코드.** ISO 3166-1 alpha-2(`GB`, `DE`)와 등기부가 지역별로 나뉜 경우 `XX-YY` 하위 분할
        코드(예: 캘리포니아의 경우 `US-CA`)를 사용합니다.


        **샌드박스.** 샌드박스 애플리케이션의 키는 등기부에 접속하지 않고 하나의 정적 후보를 반환합니다.
      operationId: post_v3_kyb_search
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - country_code
              properties:
                country_code:
                  type: string
                  maxLength: 10
                  description: >-
                    검색할 법인 등기부가 있는 국가의 ISO 3166-1 alpha-2 코드입니다. 예를 들어 `GB`입니다.
                    법인 등기부가 주 또는 도 단위로 운영되는 경우 `XX-YY` 형식으로 ISO 3166-2 행정 구역 코드를
                    추가합니다. `US-CA`는 캘리포니아 등기부를 검색합니다. 미국 검색 시에는 항상 행정 구역이 필요하며
                    단순 `US`는 거부됩니다. 대소문자를 구분하지 않으며 대문자로 정규화됩니다.
                  example: GB
                name:
                  type: string
                  maxLength: 255
                  description: 검색할 기업명입니다. `name` 또는 `registration_number` 중 하나는 필수입니다.
                  example: Tesco
                registration_number:
                  type: string
                  maxLength: 100
                  description: >-
                    검색할 법인 등기부 등록번호입니다. `name` 또는 `registration_number` 중 하나가
                    필요합니다.
                tier:
                  type: string
                  enum:
                    - basic
                    - shareholders
                    - ubo
                  default: basic
                  description: >-
                    이 검색이 실행되는 제공업체 체인의 법인 등기부 등급입니다. `basic`(기본값)은 해당 국가의 Lite
                    체인을 검색합니다. `shareholders` 및 `ubo`는 해당 등급의 소유 구조 체인을 검색하며 다른
                    출처일 수 있으므로, Lite 검색 결과가 비어 있다고 해서 법인 등기부에 해당 기업이 없다는 것을
                    증명하지는 않습니다. 지정된 등급을 제공하지 않는 국가는 해당 등급 이하에서 제공하는 가장 높은 등급으로
                    검색됩니다. 검색한 등급을 판매하는 endpoint에서 후보를 검색하십시오: `POST
                    /v3/kyb/select/`(Lite), `POST /v3/kyb/shareholders/` 또는
                    `POST /v3/kyb/ubo/`.
                  example: basic
                search_type:
                  type: string
                  enum:
                    - contains
                  default: contains
                  description: >-
                    등기부 검색에 적용되는 이름 일치 전략입니다. 허용되는 유일한 값은 `contains`입니다. 검색 대상인
                    등기부 소스 중 접두사 또는 퍼지 모드를 지원하는 소스가 없으므로 `start_with` 및 `fuzzy`는
                    `400`(`not a valid choice`) 오류로 거부됩니다.
                vendor_data:
                  type: string
                  description: 해당 조회에 대한 귀하의 식별자입니다. webhook 콜백에 포함되며 그대로 다시 반환됩니다.
                metadata:
                  type: object
                  nullable: true
                  description: 자유 형식 JSON입니다. 그대로 반환되며 webhook 콜백에 포함됩니다.
                webhook_url:
                  type: string
                  format: uri
                  maxLength: 500
                  description: >-
                    검색을 비동기 모드로 전환합니다. API가 즉시 반환되며, 후보 목록이 준비되면 이 URL로 서명되지 않은
                    `kyb.registry_search.resolved` 콜백을 POST합니다.
            example:
              country_code: GB
              name: Tesco
              search_type: contains
              vendor_data: company-1234
      responses:
        '200':
          description: >-
            검색이 접수되었습니다. 동기 모드는 확인된 후보 목록을 반환하며, webhook 모드는 즉시 반환(주로
            `search_status: "pending"`)하고 `kyb.registry_search.resolved` 콜백을 통해
            최종 목록을 전송합니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  request_id:
                    type: string
                    format: uuid
                    description: >-
                      `webhook_url`이 있는 경우: 영구 저장된 검색 요청 ID로,
                      `kyb.registry_search.resolved` 콜백에서 `request_id`로 반환됩니다.
                      `webhook_url`이 없는 경우: 일회성 상관관계 UUID입니다(검색이 저장되지 않음).
                  kyb_registry:
                    $ref: '#/components/schemas/KYBRegistrySearchResults'
                  vendor_data:
                    type: string
                    nullable: true
                    description: 전송한 `vendor_data`의 에코 값입니다.
                  metadata:
                    type: object
                    nullable: true
                    description: 전송한 `metadata`의 에코 값입니다.
                  created_at:
                    type: string
                    format: date-time
              examples:
                Resolved search:
                  summary: 동기 모드 — 최종 후보 목록
                  value:
                    request_id: 0c7e9a40-3a13-4f7e-8a44-9d2e2f1c5b6a
                    kyb_registry:
                      companies:
                        - kyb_response_id: 69aeeb95febb0f1704042259
                          name: Tesco PLC
                          registration_number: '00445790'
                          status: active
                          type: Public Limited Company
                          risk_level: null
                          fetch_status: pending
                        - kyb_response_id: 69aeeb95febb0f170404225a
                          name: E-TESCO LTD
                          registration_number: '15168476'
                          status: active
                          type: Private Limited Company
                          risk_level: null
                          fetch_status: pending
                      pagination:
                        total: 2
                        page: 1
                        per_page: 25
                      search_status: resolved
                      search_resolved: true
                    vendor_data: company-1234
                    metadata: null
                    created_at: '2026-06-11T10:40:00.000000+00:00'
                Pending search (webhook mode):
                  summary: >-
                    `webhook_url` 제공됨 — 후보 목록은 kyb.registry_search.resolved 콜백을
                    통해 전달됩니다
                  value:
                    request_id: 5f2d8c1b-7e4a-4b9c-9f0d-3a6e8c2b1d4f
                    kyb_registry:
                      companies: []
                      pagination:
                        total: 0
                        page: 1
                        per_page: 25
                      search_status: pending
                      search_resolved: false
                    vendor_data: company-1234
                    metadata:
                      source: onboarding
                    created_at: '2026-06-11T10:41:00.000000+00:00'
        '400':
          description: >-
            유효성 검사 오류입니다. 필드 수준 문제는 DRF의 표준 엔벨로프를 사용하며, 이름/등록번호 규칙은
            `non_field_errors` 아래에 보고됩니다. 등기소에서 지원하지 않는 국가는 `code:
            kyb_registry_country_unsupported`와 함께 `400`으로 응답합니다.
          content:
            application/json:
              examples:
                Missing search criteria:
                  summary: '`name`과 `registration_number`가 모두 제공되지 않았습니다'
                  value:
                    non_field_errors:
                      - Either 'name' or 'registration_number' is required.
                Invalid country_code:
                  summary: '`XX`(alpha-2) 또는 `XX-YY` 행정 구역이어야 합니다.'
                  value:
                    country_code:
                      - country_code must be a 2-letter ISO code.
                Invalid search_type:
                  summary: '`contains`만 허용됩니다'
                  value:
                    search_type:
                      - '"start_with" is not a valid choice.'
                Invalid webhook_url:
                  summary: '`webhook_url`은 유효한 URL이어야 합니다'
                  value:
                    webhook_url:
                      - Enter a valid URL.
                Country not covered:
                  summary: 해당 국가를 지원하는 법인 등기부가 없습니다
                  value:
                    detail: >-
                      Company registry search is not available for this country.
                      Enter the company details manually to continue.
                    code: kyb_registry_country_unsupported
        '403':
          description: >-
            권한이 거부되었습니다. `x-api-key` 헤더가 누락되었을 때 반환됩니다. 잘못되었거나 취소되었거나 만료된 키는
            `401`을 반환합니다. 키가 누락된 경우 `{"detail": ...}`과 함께 `403`을 반환하고, 잘못되었거나
            취소되었거나 만료된 키는 `401`을 반환합니다. 또한 검색 전에 해당 검색 요금을 충당할 수 없거나(`code:
            "insufficient_credits"`), 계약 검색 요금이 누락된 경우에도 반환됩니다.
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  summary: '`x-api-key` 헤더가 없거나, 키가 유효하지 않거나 해지되었습니다'
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: >-
            속도 제한을 초과했거나 검색 한도를 소진했습니다. POST/PATCH/DELETE endpoint는 API 키당 분당
            300회의 쓰기 요청 한도를 공유하며(거래 생성 및 이벤트 수집은 별도로 600회 한도 적용),
            `X-RateLimit-*` 및 `Retry-After` 헤더가 제공됩니다. 이와 별도로 유료 등기부 검색은 애플리케이션당
            시간당 600회로 제한됩니다. 이를 초과하면 `code: kyb_registry_search_limit_reached`와
            함께 `429` 응답이 반환되며, 무료 소스로만 제공되는 검색은 여전히 작동합니다. 잠시 기다린 후 다시 검색하세요.
          content:
            application/json:
              examples:
                Write rate limit exceeded:
                  summary: 현재 분 동안 300건을 초과하는 쓰기 요청 발생
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
                Search allowance spent:
                  summary: 지난 1시간 동안 600회를 초과하는 유료 검색 발생
                  value:
                    detail: >-
                      The maximum number of company registry searches for this
                      session has been reached. Enter the company details
                      manually to continue.
                    code: kyb_registry_search_limit_reached
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
        '502':
          description: >-
            KYB 등기소 제공업체를 일시적으로 사용할 수 없습니다(업스트림 등기소의 5xx 응답, 시간 초과 또는 연결 실패). 검색
            비용은 청구되지 않습니다. 나중에 다시 시도하거나, Didit의 호스팅 인증 플로우에서는 사용자에게 재시도 전용 오류 대신
            수동 기업 정보 입력 기능이 자동으로 제공됩니다.
          content:
            application/json:
              examples:
                Registry provider outage:
                  summary: 등기소 공급자가 검색에 응답하지 않았습니다.
                  value:
                    detail: >-
                      The KYB registry provider is temporarily unavailable.
                      Please try again shortly.
                    code: kyb_registry_provider_unavailable
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST https://verification.didit.me/v3/kyb/search/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "country_code": "GB",
                "name": "Tesco",
                "search_type": "contains",
                "vendor_data": "company-1234"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.kyb.search(
                country_code="GB",
                name="Tesco",
                search_type="contains",
                vendor_data="company-1234",
            )
            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.kyb.search({
              country_code: "GB",
              name: "Tesco",
              search_type: "contains",
              vendor_data: "company-1234",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.KYB.Search(ctx, didit.KYBSearchParams{\n\tCountryCode: \"GB\",\n\tName:        didit.String(\"Tesco\"),\n\tSearchType:  didit.Some(didit.KYBSearchParamsSearchType(\"contains\")),\n\tVendorData:  didit.String(\"company-1234\"),\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.KybSearchParams;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            var result = client.kyb().search(KybSearchParams.builder()
                    .countryCode("GB")
                    .name("Tesco")
                    .searchType(KybSearchParams.SearchType.of("contains"))
                    .vendorData("company-1234")
                    .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->kyb->search([
                'country_code' => 'GB',
                'name' => 'Tesco',
                'search_type' => 'contains',
                'vendor_data' => 'company-1234',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.kyb.search(
              country_code: "GB",
              name: "Tesco",
              search_type: "contains",
              vendor_data: "company-1234"
            )
            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.Kyb.SearchAsync(new KybSearchParams
            {
                CountryCode = "GB",
                Name = "Tesco",
                SearchType = new KybSearchParamsSearchType("contains"),
                VendorData = "company-1234",
            });
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    KYBRegistrySearchResults:
      type: object
      properties:
        companies:
          type: array
          items:
            type: object
            properties:
              kyb_response_id:
                type: string
                nullable: true
                description: >-
                  이 후보에 대한 핸들입니다. 전체 프로필을 조회하려면 `POST /v3/kyb/select/`로 전달하십시오.
                  임시적이며 이 검색 범위로 제한됩니다. 장기 보관하지 말고 새로운 핸들을 얻으려면 다시 검색하십시오.
                example: 69aeeb95febb0f1704042259
              name:
                type: string
                nullable: true
                description: 등록 회사명입니다.
                example: Tesco PLC
              registration_number:
                type: string
                nullable: true
                description: 법인 등기부 등록번호입니다.
                example: '00445790'
              status:
                type: string
                nullable: true
                description: >-
                  기업의 정규화된 등기 상태입니다(예: `active`, `dissolved`, `inactive`,
                  `struck off`).
                example: active
              type:
                type: string
                nullable: true
                description: 등기소에서 보고된 법적 형태입니다.
                example: Public Limited Company
              registered_address:
                type: string
                nullable: true
                description: >-
                  등기부에서 반환된 경우의 후보 등록 주소입니다. 등록번호와 함께 동일한 이름의 회사를 구별하는 데 사용합니다.
                  미국의 경우 후보 회사가 검색한 주가 아닌 회사가 운영되는 주에 등재되어 있을 수 있습니다.
                example: >-
                  Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, AL7
                  1GA
              risk_level:
                type: string
                nullable: true
                description: 제공되는 경우, 법인 등기부에 보고된 위험 수준입니다. 검색 시에는 일반적으로 `null`입니다.
              fetch_status:
                type: string
                nullable: true
                description: 검색 후보의 경우 항상 `pending`입니다. 전체 기업 프로필은 후보를 선택할 때만 조회(및 결제)됩니다.
                example: pending
          description: >-
            중복 제거된 후보 목록입니다. `search_resolved=false`(webhook 모드)이거나 일치하는 항목이 없는
            경우 비어 있습니다.
        pagination:
          type: object
          properties:
            total:
              type: integer
              description: 반환된 후보 수입니다.
            page:
              type: integer
            per_page:
              type: integer
              example: 25
        search_status:
          type: string
          nullable: true
          enum:
            - pending
            - resolved
          description: 법인 등기부 검색 라이프사이클 상태입니다.
        search_resolved:
          type: boolean
          description: 후보자 목록이 확정되면 `true`입니다.
  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.