> ## 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 Business (KYB) को ब्लॉक, फ़्लैग या सक्रिय करें। स्थिति भविष्य के KYB सत्रों और लेन-देन स्क्रीनिंग पर लागू होती है। प्रति कॉल भुगतान वाला व्यवसाय प्रबंधन।



व्यवसाय स्थिति अपडेट करने का प्रॉम्प्ट
        प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें



      
      

\<pre>

\`Goal: Flip ONLY the lifecycle status of a Didit Business (KYB) entity. Use the full PATCH /v3/businesses/{vendor_data}/ when you also need to touch other fields.

Endpoint: PATCH https://verification.didit.me/v3/businesses/{vendor_data}/update-status/
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:
\- status (enum, REQUIRED) — "ACTIVE" | "FLAGGED" | "BLOCKED" (VendorBusinessStatusChoices, NOT the session enum).
\- 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 the status actually changes. Webhooks do not carry it.

Status semantics:
\- ACTIVE  → normal. New KYB sessions allowed for this vendor_data.
\- FLAGGED → still accepted, highlighted in Console for manual review; filterable with ?status=FLAGGED.
\- BLOCKED → terminal. Adds vendor_data to the system blocklist. Subsequent KYB session creations for the same identifier are rejected. Flipping back to ACTIVE/FLAGGED removes the blocklist entry automatically.

curl:
curl -X PATCH 'https://verification.didit.me/v3/businesses/company-123/update-status/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"status": "BLOCKED", "reason": "Registry shows the company dissolved"}'

Response 200: full updated BusinessDetailItem (same shape as GET /v3/businesses/{vendor_data}/). See /reference/data-models.

Side effects:
\- Toggles the system blocklist entry when entering/leaving BLOCKED.
\- Writes one status-change entry to the company's activity (actor = API key identity), with reason as its comment.
\- Idempotent — re-sending the same status is a no-op (no extra audit row, no extra blocklist toggle).

Failure modes:
\- 400 — validation:
\{ "status": "This field is required." }
\{ "status": "Invalid status. Valid options are: ACTIVE, FLAGGED, BLOCKED" }
\{ "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 (or deleted). { "detail": "Not found." }
\- 429 — rate-limited.

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

\</pre>



      
      

यहाँ पेस्ट करें

## अवलोकनयह [व्यवसाय इकाई](https://docs.didit.me/hi/entities/businesses/overview.md) को `ACTIVE`, `FLAGGED` और `BLOCKED` के बीच बदलता है। पूरी स्टेट मशीन के लिए [इकाई जीवनचक्र](https://docs.didit.me/hi/entities/lifecycle.md) देखें।## इसका उपयोग कब करें- किसी प्रतिबंधित व्यवसाय या ऐसे व्यवसाय को **ब्लॉक करें** जिसकी धोखाधड़ी की पुष्टि हो चुकी है।
- किसी व्यवसाय को मैन्युअल समीक्षा लंबित होने पर **फ़्लैग करें**।
- सुधार के बाद **अनब्लॉक करें**।
- अपनी अनुपालन प्रणालियों के बाहरी संकेतों को **प्रसारित करें**।## नोट्स- मान्य मान: `ACTIVE`, `FLAGGED`, `BLOCKED`।
- स्थिति क्यों बदली, यह दर्ज करने के लिए वैकल्पिक `reason` (1000 अक्षरों तक) भेजें।
  Didit इसे Business Console में कंपनी की **गतिविधि** में स्थिति-बदलाव की प्रविष्टि में सहेजता है।
  यह तभी दर्ज होता है जब स्थिति सचमुच बदलती है।
- `BLOCKED` व्यवसायों के सभी नए व्यवसाय सत्यापन (KYB) सत्र स्वचालित रूप से अस्वीकृत हो जाते हैं, और उनके सभी नए लेन-देन भी स्वचालित रूप से अस्वीकृत हो जाते हैं, भले ही वे प्रतिपक्ष के रूप में आएँ।
- `business.status.updated` इवेंट भेजता है, जिसमें `previous_status` और `status` होते हैं।
  webhook में `reason` शामिल नहीं होता।## प्रवर्तन| स्थिति | नए व्यवसाय सत्यापन (KYB) सत्र | इस व्यवसाय से जुड़े लेन-देन |
| - | - | - |
| `ACTIVE` | सामान्य प्रवाह | सामान्य प्रवाह |
| `FLAGGED` | `IN_REVIEW` को भेजा जाता है | नियमों के ज़रिए स्वचालित रूप से एस्केलेट किया जा सकता है |
| `BLOCKED` | स्वचालित रूप से अस्वीकृत | स्वचालित रूप से अस्वीकृत |## अनुमतियाँप्राथमिक सीक्रेट और पूर्ण-पहुँच वाली [API कुंजियाँ](https://docs.didit.me/hi/console/api-keys.md) इस endpoint को हमेशा कॉल कर सकती हैं।
कस्टम पहुँच वाली कुंजी को **कंपनियां** (`businesses`) में लिखने की अनुमति चाहिए।
जो कुंजी केवल कुछ वर्कफ़्लो या केवल स्वीकृत सत्रों तक सीमित है, वह इस endpoint तक नहीं पहुँच सकती।Console की [भूमिकाएँ और अनुमतियाँ](https://docs.didit.me/hi/console/roles-permissions.md) तय करती हैं कि कोई टीम सदस्य Console में क्या कर सकता है।
API कुंजी के अनुरोधों के लिए इन्हें नहीं जाँचा जाता।## संबंधित- [इकाई जीवनचक्र](https://docs.didit.me/hi/entities/lifecycle.md)
- [व्यवसाय ब्लॉकलिस्ट](https://docs.didit.me/hi/entities/businesses/blocklist.md)
- [इकाई webhook](https://docs.didit.me/hi/entities/webhooks.md)


## OpenAPI

````yaml hi/openapi-25.json PATCH /v3/businesses/{vendor_data}/update-status/
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}/update-status/:
    patch:
      tags:
        - Businesses
      summary: व्यवसाय स्थिति अपडेट करें
      description: >-
        केवल किसी व्यवसाय की लाइफ़साइकिल `status` बदलें: `ACTIVE`, `FLAGGED` या
        `BLOCKED` (सत्र स्थितियाँ नहीं)। `BLOCKED` करने पर `vendor_data` सिस्टम
        ब्लॉकलिस्ट में जुड़ जाता है; `BLOCKED` से हटाने पर वह प्रविष्टि हट जाती
        है। प्रत्येक परिवर्तन कंपनी की गतिविधि में वैकल्पिक `reason` के साथ दर्ज
        किया जाता है। वर्तमान स्थिति भेजने से कुछ भी नहीं बदलता और कोई `reason`
        रिकॉर्ड नहीं होता है। `business.status.updated` webhook में `reason`
        नहीं होता है।
      operationId: update_business_status
      parameters:
        - name: vendor_data
          in: path
          required: true
          schema:
            type: string
          description: >-
            व्यवसाय के लिए आपका विशिष्ट पहचानकर्ता (मुक्त-रूप स्ट्रिंग, UUID
            नहीं)।
          example: company-123
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/EntityStatusUpdateRequest'
                - type: object
                  properties:
                    reason:
                      type: string
                      nullable: true
                      maxLength: 1000
                      description: >-
                        स्थिति क्यों बदली। Business Console में कंपनी की
                        **Activity** की स्थिति-परिवर्तन प्रविष्टि पर रिकॉर्ड
                        किया जाता है, केवल तभी जब स्थिति वास्तव में बदलती है।
                        Webhooks इसे शामिल नहीं करते हैं।
            examples:
              Flag:
                summary: समीक्षा के लिए व्यवसाय को फ़्लैग करें
                value:
                  status: FLAGGED
              Block:
                summary: व्यवसाय को ब्लॉक करें (सिस्टम ब्लॉकलिस्ट में जोड़ता है)
                value:
                  status: BLOCKED
              Reactivate:
                summary: व्यवसाय को पुनः सक्रिय करें
                value:
                  status: ACTIVE
              Block with reason:
                summary: व्यवसाय को ब्लॉक करें और कारण दर्ज करें
                value:
                  status: BLOCKED
                  reason: Registry shows the company dissolved
      responses:
        '200':
          description: व्यवसाय की स्थिति अपडेट की गई। पूरा व्यवसाय रिकॉर्ड लौटाया गया।
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessDetailItem'
              examples:
                Blocked:
                  value:
                    didit_internal_id: a1b2c3d4-e5f6-4890-abcd-ef1234567890
                    vendor_data: company-123
                    display_name: null
                    legal_name: Acme Trading Ltd
                    registration_number: '12345678'
                    country_code: GB
                    effective_name: Acme Trading Ltd
                    status: BLOCKED
                    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
                    updated_at: '2026-03-15T10:30:00Z'
        '400':
          description: अनुपलब्ध या अमान्य `status`, या 1000 वर्णों से अधिक का `reason`।
          content:
            application/json:
              examples:
                Missing status:
                  value:
                    status:
                      - This field is required.
                Bad status:
                  value:
                    status:
                      - >-
                        Invalid status. Valid options are: ACTIVE, FLAGGED,
                        BLOCKED
                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/update-status/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"status": "BLOCKED"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.businesses.update_status(
                "company-123",
                status="FLAGGED",
            )
            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.updateStatus("company-123", {
              status: "FLAGGED",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Businesses.UpdateStatus(ctx, \"company-123\", didit.BusinessesUpdateStatusParams{\n\tStatus: \"FLAGGED\",\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.BusinessesUpdateStatusParams;

            import me.didit.types.EntityStatusUpdateRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result = client.businesses().updateStatus("company-123",
            BusinessesUpdateStatusParams.builder()
                    .status(EntityStatusUpdateRequest.Status.of("FLAGGED"))
                    .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->updateStatus('company-123', [
                'status' => 'FLAGGED',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.businesses.update_status(
              "company-123",
              status: "FLAGGED"
            )
            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.UpdateStatusAsync("company-123", new
            BusinessesUpdateStatusParams

            {
                Status = "FLAGGED",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    EntityStatusUpdateRequest:
      type: object
      required:
        - status
      properties:
        status:
          type: string
          enum:
            - ACTIVE
            - FLAGGED
            - BLOCKED
          description: >-
            नई लाइफ़साइकिल स्थिति। `BLOCKED` सिस्टम ब्लॉकलिस्ट में `vendor_data`
            भी जोड़ता है।
    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: >-
        आपकी एप्लिकेशन की API कुंजी, Business Console में Developers -> API keys
        से। प्राथमिक कुंजी के पास पूर्ण एक्सेस होता है। एक नामित कुंजी को स्कोप
        किया जा सकता है: प्रति संसाधन 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.