> ## 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: 공급업체 KYB 엔티티

> Didit 기업(KYB) 정보 중 변경 가능한 필드(표시 이름, 메타데이터, 태그)를 업데이트합니다. 등기부 기반 신원 필드는 변경할 수 없습니다. 호출당 과금되는 KYB 관리.



기업 업데이트 프롬프트
        프롬프트를 클립보드에 복사



      
      

\<pre>

\`Goal: Partial-update a Didit Business (KYB) entity by vendor_data.

Endpoint: PATCH https://verification.didit.me/v3/businesses/{vendor_data}/
Auth header: x-api-key: <DIDIT_API_KEY>
Content-Type: application/json

Path param:
\- vendor_data (string, REQUIRED) — free-form string, NOT a UUID. URL-encode.

Request body (PARTIAL — only included fields are touched; counters and session history are left alone):
\- display_name (string, nullable)
\- legal_name (string, nullable)
\- registration_number (string, nullable)
\- country_code (string, nullable) — ISO 3166-1 alpha-2.
\- region (string, nullable) — ISO 3166-2.
\- status (enum) — "ACTIVE" | "FLAGGED" | "BLOCKED" (VendorBusinessStatusChoices). Setting "BLOCKED" auto-adds vendor_data to the system blocklist.
\- metadata (object, nullable) — REPLACES existing metadata wholesale; merge client-side if you only want to add keys.
\- reason (string, optional, max 1000): why the status changed. Recorded on the status-change entry in the company's Activity in the Business Console, only when this update actually changes status. Webhooks do not carry it.

curl:
curl -X PATCH 'https://verification.didit.me/v3/businesses/company-123/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"display_name": "Acme", "metadata": {"tier": "enterprise"}}'

Response 200: full updated BusinessDetailItem (same shape as GET). See /reference/data-models.

Side effects:
\- Every edit is recorded in the company's activity (actor derived from the API key): a status change with reason, and a profile update when display_name, legal_name, registration_number, country_code or metadata change.
\- last_activity_at bumped to now().
\- Re-sending an unchanged body is safe.

Failure modes:
\- 400 — validation. Common: { "status": ["Invalid status. Valid options are: ACTIVE, FLAGGED, BLOCKED"] }, { "metadata": ["Metadata must be a JSON object."] }
\{ "reason": ["Ensure this field has no more than 1000 characters."] }
\- 401 — missing/invalid x-api-key.
\- 403: a scoped API key without businesses write. { "detail": "This API key has no write access to companies." }
\- 404 — vendor_data not found.
\- 429 — rate-limited.

Notes:
\- vendor_data in the URL cannot be changed via this endpoint.
\- For status-only flips, prefer the dedicated PATCH /v3/businesses/{vendor_data}/update-status/.
\- Overriding registry-derived fields is allowed but flagged in the audit log.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

붙여넣을 곳

## 개요[기업 엔티티](https://docs.didit.me/ko/entities/businesses/overview.md)의 변경 가능한 필드를 업데이트합니다. 법인 등기부 조회로 채워진 필드(`legal_name`, `registration_number`, `country_code`)는 기업 확인(KYB) 세션이 처음 승인된 후 읽기 전용이 됩니다.## 사용 시기- **이름 바꾸기**: 내부 화면에서 사용할 더 적절한 `display_name`을 설정합니다.
- **메타데이터 업데이트**: 기업을 내부 등급 사이에서 옮기거나, 내부 메모를 기록하거나, 태그를 변경합니다.
- **법인 등기부 데이터 재정의**(주의해서 사용): 재정의는 허용되지만 [감사 로그](https://docs.didit.me/ko/console/audit-logs.md)에 표시됩니다.## 참고 사항- URL의 `vendor_data`는 이 엔드포인트로 변경할 수 없습니다.
- `changed_fields` 배열이 포함된 `business.data.updated` webhook을 전송합니다.
- 모든 편집 내용은 Business Console의 해당 기업 **활동**에 기록됩니다.
  `status` 변경은 선택 사항인 `reason`(최대 1000자)과 함께 기록되며, `display_name`, `legal_name`, `registration_number`, `country_code` 또는 `metadata` 변경은 프로필 업데이트로 기록됩니다.
  `business.status.updated` webhook에는 `reason`이 포함되지 않습니다.## 권한기본 시크릿 키와 전체 액세스 [API 키](https://docs.didit.me/ko/console/api-keys.md)는 언제든지 이 엔드포인트를 호출할 수 있습니다.
사용자 지정 액세스 권한이 있는 키에는 **기업**(`businesses`) 쓰기 권한이 필요합니다.
일부 워크플로나 승인된 세션으로만 제한된 키는 이 엔드포인트에 접근할 수 없습니다.Console의 [역할 및 권한](https://docs.didit.me/ko/console/roles-permissions.md)은 팀원이 Console에서 할 수 있는 작업을 결정합니다. 이 설정은 API 키 요청에는 평가되지 않습니다.## 관련 문서- [기업 운영](https://docs.didit.me/ko/entities/businesses/operations.md)
- [데이터 모델](https://docs.didit.me/ko/entities/businesses/data-model.md)
- [상태 업데이트](https://docs.didit.me/ko/management-api/businesses/update-status.md)


## OpenAPI

````yaml ko/openapi-25.json PATCH /v3/businesses/{vendor_data}/
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/businesses/{vendor_data}/:
    patch:
      tags:
        - Businesses
      summary: 기업 업데이트
      description: >-
        기업 정보의 부분 업데이트: `display_name`, `legal_name`, `registration_number`,
        `country_code`, `status`, `metadata`. `metadata`는 전체가 대체됩니다. `status`를
        `BLOCKED`로 설정하면 `vendor_data`가 시스템 차단 목록에 추가되며, `BLOCKED`에서 다른 상태로 변경하면
        해당 항목이 제거됩니다. 모든 수정 사항은 기업 활동에 기록됩니다. 상태 변경은 선택적 `reason`과 함께 기록되며,
        `display_name`, `legal_name`, `registration_number`, `country_code` 또는
        `metadata` 변경은 프로필 업데이트로 기록됩니다.
      operationId: update_business
      parameters:
        - name: vendor_data
          in: path
          required: true
          schema:
            type: string
          description: 귀하가 지정한 기업의 고유 식별자입니다(자유 형식 문자열, UUID 아님).
          example: company-123
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: 부분 업데이트 본문입니다. 변경하려는 필드만 제공하십시오.
              properties:
                display_name:
                  type: string
                  nullable: true
                  description: 콘솔에 표시되는 친숙한 표시 이름입니다(UI 표시 시 `legal_name`보다 우선 적용됨).
                legal_name:
                  type: string
                  nullable: true
                  description: 등기부 또는 직접 입력에서 가져온 공식 법인명입니다.
                registration_number:
                  type: string
                  nullable: true
                  description: 기업 등록번호 또는 법인 설립 번호입니다.
                country_code:
                  type: string
                  nullable: true
                  description: '설립 국가(ISO 3166-1 alpha-2, 예: `GB`, `US`).'
                status:
                  type: string
                  enum:
                    - ACTIVE
                    - FLAGGED
                    - BLOCKED
                  description: >-
                    기업 수명 주기 상태입니다. `BLOCKED`로 설정하면 `vendor_data`가 시스템 차단 목록에
                    자동으로 추가되며, `BLOCKED`가 아닌 상태로 변경하면 해당 차단 목록 항목이 제거됩니다.
                metadata:
                  type: object
                  nullable: true
                  description: >-
                    기업에 연결하는 임의의 JSON 객체입니다. 업데이트 시 기존 메타데이터를 **완전히 대체**합니다. 키만
                    추가하려면 클라이언트 측에서 병합하십시오.
                reason:
                  type: string
                  nullable: true
                  maxLength: 1000
                  description: >-
                    상태가 변경된 이유입니다. 상태가 실제로 변경될 때만 Business Console의 회사
                    **Activity** 상태 변경 항목에 기록됩니다. webhook에는 포함되지 않습니다.
            examples:
              Update name:
                summary: 표시 이름 업데이트
                value:
                  display_name: Acme Corp
              Flag for review:
                summary: 상태 전환
                value:
                  status: FLAGGED
              Add metadata:
                summary: 메타데이터 JSON 대체
                value:
                  metadata:
                    industry: fintech
                    risk_level: low
              Fix registry data:
                summary: 정확하게 추출된 필드
                value:
                  legal_name: Acme Trading International Ltd
                  registration_number: '12345678'
                  country_code: GB
              Flag with reason:
                summary: 기업 플래그 지정 및 사유 기록
                value:
                  status: FLAGGED
                  reason: Ownership structure under review
      responses:
        '200':
          description: 기업이 업데이트되었습니다. 업데이트된 전체 기업 레코드가 반환됩니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessDetailItem'
              examples:
                Updated:
                  value:
                    didit_internal_id: a1b2c3d4-e5f6-4890-abcd-ef1234567890
                    vendor_data: company-123
                    display_name: Acme Corp
                    legal_name: Acme Trading Ltd
                    registration_number: '12345678'
                    country_code: GB
                    effective_name: Acme Corp
                    status: FLAGGED
                    session_count: 2
                    approved_count: 1
                    declined_count: 0
                    in_review_count: 1
                    features:
                      KYB: Approved
                    features_list:
                      - feature: KYB
                        status: Approved
                    last_session_at: '2026-03-15T10:30:00Z'
                    last_activity_at: '2026-03-15T10:30:00Z'
                    first_session_at: '2026-01-10T08:00:00Z'
                    tags:
                      - uuid: 9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d
                        name: VIP
                        color: '#2567FF'
                    created_at: '2026-01-10T08:00:00Z'
                    metadata:
                      industry: fintech
                      risk_level: low
                    updated_at: '2026-03-15T10:30:00Z'
        '400':
          description: >-
            유효하지 않은 본문: 일반적으로 알 수 없는 `status`, 잘못된 형식의 `metadata`, 또는 1000자를
            초과하는 `reason`입니다.
          content:
            application/json:
              examples:
                Bad status:
                  value:
                    status:
                      - >-
                        Invalid status. Valid options are: ACTIVE, FLAGGED,
                        BLOCKED
                Bad metadata:
                  value:
                    metadata:
                      - Metadata must be a JSON object.
                Reason too long:
                  value:
                    reason:
                      - Ensure this field has no more than 1000 characters.
        '403':
          description: >-
            API 키가 누락되었거나 유효하지 않거나 폐기되었거나, 해당 키에 이 애플리케이션의 기업을 업데이트할 수 있는 권한이
            없습니다. 누락된 키는 `403`을 반환하며, 잘못되었거나 폐기되었거나 만료된 키는 `401`을 반환합니다.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: 제공된 `vendor_data`를 가진 (삭제되지 않은) 기업이 이 애플리케이션에 존재하지 않습니다.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Not found.
        '429':
          description: 속도 제한 초과. 대기 후 `Retry-After`에 지정된 시간 간격이 지난 뒤 재시도하세요.
          content:
            application/json:
              examples:
                Rate limited:
                  value:
                    detail: Request was throttled. Expected available in 30 seconds.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X PATCH
            'https://verification.didit.me/v3/businesses/company-123/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"display_name": "Acme Corp", "status": "FLAGGED"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.businesses.update(
                "company-123",
                display_name="Acme Corp",
            )
            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.businesses.update("company-123", {
              display_name: "Acme Corp",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Businesses.Update(ctx, \"company-123\", didit.BusinessesUpdateParams{\n\tDisplayName: didit.String(\"Acme Corp\"),\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.BusinessesUpdateParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result = client.businesses().update("company-123",
            BusinessesUpdateParams.builder()
                    .displayName("Acme Corp")
                    .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->businesses->update('company-123', [
                'display_name' => 'Acme Corp',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.businesses.update(
              "company-123",
              display_name: "Acme Corp"
            )
            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.Businesses.UpdateAsync("company-123", new
            BusinessesUpdateParams

            {
                DisplayName = "Acme Corp",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    BusinessDetailItem:
      type: object
      description: 전체 기업 상세 정보입니다. 메타데이터 및 updated_at으로 BusinessListItem을 확장합니다.
      allOf:
        - $ref: '#/components/schemas/BusinessListItem'
        - type: object
          properties:
            metadata:
              type: object
              description: 이 기업에 첨부한 커스텀 메타데이터 JSON입니다. 기본값은 `{}`입니다.
            updated_at:
              type: string
              format: date-time
    BusinessListItem:
      type: object
      description: 인증된 기업입니다.
      properties:
        didit_internal_id:
          type: string
          format: uuid
          description: 이 기업에 대한 Didit의 고유 내부 UUID입니다.
        vendor_data:
          type: string
          nullable: true
          description: >-
            귀하가 지정한 해당 기업의 고유 식별자입니다(세션 생성 시 전달됨). 벤더 식별자가 제공되지 않은 경우 null일 수
            있습니다.
        display_name:
          type: string
          nullable: true
          description: 직접 설정한 커스텀 표시 이름
        legal_name:
          type: string
          nullable: true
          description: 등기부 또는 직접 입력에서 가져온 공식 법인명
        registration_number:
          type: string
          nullable: true
          description: 기업 등록번호 또는 법인 설립 번호
        country_code:
          type: string
          nullable: true
          description: '설립 국가(ISO 3166-1 alpha-2, 예: `GB`, `US`).'
        effective_name:
          type: string
          nullable: true
          description: '사용 가능한 최적의 이름: display_name이 설정된 경우 해당 값, 그렇지 않으면 legal_name'
        status:
          type: string
          enum:
            - ACTIVE
            - FLAGGED
            - BLOCKED
          description: >-
            기업 레코드의 수명 주기 상태입니다(세션 상태가 아님). 기본값은 `ACTIVE`이며, `FLAGGED`는 수동 확인
            필요로 표시하고, `BLOCKED`는 해당 `vendor_data`에 대한 새 세션을 방지합니다.
        session_count:
          type: integer
          description: 해당 기업의 총 인증 세션 수
        approved_count:
          type: integer
          description: 승인된 세션 수
        declined_count:
          type: integer
          description: 거부된 세션 수
        in_review_count:
          type: integer
          description: 검토 중인 세션 수
        features:
          type: object
          description: >-
            이 기업의 모든 KYB 세션에 걸쳐 집계된 기능별 상태입니다. 현재 유일한 키는 `KYB`(법인 등기부 기업 확인
            상태)입니다. 가능한 값: `Approved`, `Declined`, `In Review`, `Not Finished`,
            `Resub Requested`.
        features_list:
          type: array
          items:
            type: object
            properties:
              feature:
                type: string
              status:
                type: string
          description: '`features`와 동일한 데이터로, `{feature, status}` 객체의 정렬된 배열입니다.'
        last_session_at:
          type: string
          format: date-time
          nullable: true
          description: 가장 최근 세션의 타임스탬프
        first_session_at:
          type: string
          format: date-time
          nullable: true
          description: 첫 번째 세션의 타임스탬프
        last_activity_at:
          type: string
          format: date-time
          nullable: true
          description: 가장 최근 활동(상태 변경, 세션 업데이트 등)의 타임스탬프
        tags:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              name:
                type: string
              color:
                type: string
          description: 이 기업에 할당된 태그
        created_at:
          type: string
          format: date-time
  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.