> ## 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 के KYB सत्र की प्रमुख व्यक्ति सूची में किसी व्यक्ति या कंपनी को अभी घोषित किए बिना जोड़ने के लिए इस एंडपॉइंट का उपयोग करें।



## OpenAPI

````yaml hi/openapi-25.json POST /v3/session/{sessionId}/kyb/parties/drafts/
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/session/{sessionId}/kyb/parties/drafts/:
    post:
      tags:
        - Sessions
      summary: एक KYB पार्टी ड्राफ़्ट बनाएं
      description: >-
        इस KYB सत्र के लिए आपके द्वारा तैयार की जा रही सूची में एक पक्ष (एक
        व्यक्ति या एक कंपनी) जोड़ें। वही फ़ील्ड और नियम लागू होते हैं जो होस्टेड
        Key People स्क्रीन पर होते हैं: एक व्यक्ति के लिए `full_name` या
        `first_name` और `last_name`, कम से कम एक भूमिका और एक राष्ट्रीयता की
        आवश्यकता होती है; एक कंपनी के लिए `company_name` और `nationality` में
        निगमन का देश आवश्यक है। `POST
        /v3/session/{sessionId}/kyb/parties/submit/` तक कुछ भी घोषित या बिल नहीं
        किया जाता है। `write:businesses` की आवश्यकता है।
      operationId: post_v3_session_kyb_party_drafts
      parameters:
        - name: sessionId
          in: path
          required: true
          description: >-
            व्यवसाय सत्यापन (KYB) सत्र का UUID। यह API कुंजी के एप्लिकेशन से
            संबंधित होना चाहिए।
          schema:
            type: string
            format: uuid
            example: 33333333-4444-5555-6666-777777777777
        - name: node_id
          in: query
          required: false
          description: >-
            KYB चरण का वर्कफ़्लो नोड। केवल तभी आवश्यक जब वर्कफ़्लो में एक से
            अधिक KYB नोड हों; डिफ़ॉल्ट रूप से Didit सत्र के अपने नोड का उपयोग
            करता है।
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - entity_type
                - nationality
              properties:
                entity_type:
                  type: string
                  enum:
                    - person
                    - company
                  description: क्या पक्ष कोई व्यक्ति है या कंपनी।
                full_name:
                  type: string
                  maxLength: 255
                  description: >-
                    किसी व्यक्ति का पूरा नाम। इसे भेजें, या `first_name` और
                    `last_name` भेजें।
                first_name:
                  type: string
                  maxLength: 128
                last_name:
                  type: string
                  maxLength: 128
                role:
                  type: string
                  enum:
                    - director
                    - non_executive_director
                    - secretary
                    - chairman
                    - ubo
                    - shareholder
                    - representative
                    - founder
                    - legal_advisor
                    - authorized_signatory
                    - trustee
                    - beneficiary
                    - settlor
                    - protector
                    - company_officer
                    - investor
                    - other
                  description: >-
                    पक्ष द्वारा धारित भूमिका। `roles` के साथ विनिमेय; दोनों भेजे
                    जाने पर वे मर्ज हो जाते हैं।
                roles:
                  type: array
                  items:
                    type: string
                    enum:
                      - director
                      - non_executive_director
                      - secretary
                      - chairman
                      - ubo
                      - shareholder
                      - representative
                      - founder
                      - legal_advisor
                      - authorized_signatory
                      - trustee
                      - beneficiary
                      - settlor
                      - protector
                      - company_officer
                      - investor
                      - other
                  description: >-
                    पार्टी द्वारा धारण की गई प्रत्येक भूमिका। एक व्यक्ति को कम
                    से कम एक भूमिका की आवश्यकता होती है (यहाँ या `role` में)।
                position:
                  type: string
                  maxLength: 128
                  description: किसी व्यक्ति का पदनाम।
                date_of_birth:
                  type: string
                  format: date
                  nullable: true
                company_name:
                  type: string
                  maxLength: 255
                  description: >-
                    कंपनी पक्षकार का नाम। जब `entity_type` `company` हो तो
                    आवश्यक है।
                registration_number:
                  type: string
                  maxLength: 100
                  description: कंपनी पक्ष की पंजीकरण संख्या।
                email:
                  type: string
                  format: email
                  description: >-
                    सत्यापन लिंक कहाँ भेजा जाता है। तब आवश्यक होता है जब पक्ष को
                    सत्यापन पूरा करना होता है, जो वर्कफ़्लो की भूमिका सेटिंग्स
                    और स्वामित्व थ्रेशोल्ड पर निर्भर करता है।
                ownership_percent:
                  type: number
                  nullable: true
                  description: कंपनी का वह हिस्सा जिसका स्वामी वह पक्ष है।
                nationality:
                  type: string
                  maxLength: 100
                  description: >-
                    किसी व्यक्ति की राष्ट्रीयता, या किसी कंपनी के निगमन का देश।
                    प्रत्येक पक्ष के लिए आवश्यक।
                phone_number:
                  type: string
                  maxLength: 32
                custom_fields:
                  type: object
                  additionalProperties: true
                  description: वर्कफ़्लो-परिभाषित अतिरिक्त फ़ील्ड।
                skip_verification:
                  type: boolean
                  default: false
                  description: >-
                    इस पक्ष के सत्यापन को छोड़ने का अनुरोध करें। केवल तभी मान्य
                    होता है जब वर्कफ़्लो की प्रमुख व्यक्ति सेटिंग्स में पक्ष की
                    भूमिका छोड़ने की अनुमति देती है।
            example:
              entity_type: person
              first_name: Ana
              last_name: Lopez
              roles:
                - ubo
                - director
              ownership_percent: 60
              nationality: MEX
              email: ana.lopez@example.com
              date_of_birth: '1984-06-12'
      responses:
        '201':
          description: ड्राफ़्ट बनाया गया।
          content:
            application/json:
              schema:
                type: object
                required:
                  - draft_id
                  - created_at
                  - updated_at
                  - party
                properties:
                  draft_id:
                    type: string
                    format: uuid
                  created_at:
                    type: string
                    format: date-time
                  updated_at:
                    type: string
                    format: date-time
                  party:
                    type: object
                    required:
                      - entity_type
                      - nationality
                    properties:
                      entity_type:
                        type: string
                        enum:
                          - person
                          - company
                        description: क्या पक्ष कोई व्यक्ति है या कंपनी।
                      full_name:
                        type: string
                        maxLength: 255
                        description: >-
                          किसी व्यक्ति का पूरा नाम। इसे भेजें, या `first_name`
                          और `last_name` भेजें।
                      first_name:
                        type: string
                        maxLength: 128
                      last_name:
                        type: string
                        maxLength: 128
                      role:
                        type: string
                        enum:
                          - director
                          - non_executive_director
                          - secretary
                          - chairman
                          - ubo
                          - shareholder
                          - representative
                          - founder
                          - legal_advisor
                          - authorized_signatory
                          - trustee
                          - beneficiary
                          - settlor
                          - protector
                          - company_officer
                          - investor
                          - other
                        description: >-
                          पक्ष द्वारा धारित भूमिका। `roles` के साथ विनिमेय;
                          दोनों भेजे जाने पर वे मर्ज हो जाते हैं।
                      roles:
                        type: array
                        items:
                          type: string
                          enum:
                            - director
                            - non_executive_director
                            - secretary
                            - chairman
                            - ubo
                            - shareholder
                            - representative
                            - founder
                            - legal_advisor
                            - authorized_signatory
                            - trustee
                            - beneficiary
                            - settlor
                            - protector
                            - company_officer
                            - investor
                            - other
                        description: >-
                          पार्टी द्वारा धारण की गई प्रत्येक भूमिका। एक व्यक्ति
                          को कम से कम एक भूमिका की आवश्यकता होती है (यहाँ या
                          `role` में)।
                      position:
                        type: string
                        maxLength: 128
                        description: किसी व्यक्ति का पदनाम।
                      date_of_birth:
                        type: string
                        format: date
                        nullable: true
                      company_name:
                        type: string
                        maxLength: 255
                        description: >-
                          कंपनी पक्षकार का नाम। जब `entity_type` `company` हो तो
                          आवश्यक है।
                      registration_number:
                        type: string
                        maxLength: 100
                        description: कंपनी पक्ष की पंजीकरण संख्या।
                      email:
                        type: string
                        format: email
                        description: >-
                          सत्यापन लिंक कहाँ भेजा जाता है। तब आवश्यक होता है जब
                          पक्ष को सत्यापन पूरा करना होता है, जो वर्कफ़्लो की
                          भूमिका सेटिंग्स और स्वामित्व थ्रेशोल्ड पर निर्भर करता
                          है।
                      ownership_percent:
                        type: number
                        nullable: true
                        description: कंपनी का वह हिस्सा जिसका स्वामी वह पक्ष है।
                      nationality:
                        type: string
                        maxLength: 100
                        description: >-
                          किसी व्यक्ति की राष्ट्रीयता, या किसी कंपनी के निगमन का
                          देश। प्रत्येक पक्ष के लिए आवश्यक।
                      phone_number:
                        type: string
                        maxLength: 32
                      custom_fields:
                        type: object
                        additionalProperties: true
                        description: वर्कफ़्लो-परिभाषित अतिरिक्त फ़ील्ड।
                      skip_verification:
                        type: boolean
                        default: false
                        description: >-
                          इस पक्ष के सत्यापन को छोड़ने का अनुरोध करें। केवल तभी
                          मान्य होता है जब वर्कफ़्लो की प्रमुख व्यक्ति सेटिंग्स
                          में पक्ष की भूमिका छोड़ने की अनुमति देती है।
              example:
                draft_id: 5b0d7a52-9d3e-4f0c-8c6a-0e5f3a1b2c4d
                created_at: '2026-10-31T10:00:00Z'
                updated_at: '2026-10-31T10:00:00Z'
                party:
                  entity_type: person
                  first_name: Ana
                  last_name: Lopez
                  roles:
                    - ubo
                    - director
                  ownership_percent: 60
                  nationality: MEX
                  email: ana.lopez@example.com
                  date_of_birth: '1984-06-12'
        '400':
          description: एक पार्टी फ़ील्ड अमान्य है या कोई आवश्यक फ़ील्ड अनुपस्थित है।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: मानव-पठनीय त्रुटि संदेश।
              example:
                non_field_errors:
                  - Person parties require at least one role.
        '401':
          description: >-
            स्कोप्ड API कुंजी की समय-सीमा समाप्त हो गई है। यह एकमात्र मामला है
            जो `401` लौटाता है: अनुपलब्ध, अमान्य या निरस्त कुंजी `403` लौटाती
            है।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: मानव-पठनीय त्रुटि संदेश।
              examples:
                Expired key:
                  summary: कुंजी की समाप्ति तिथि बीत चुकी है
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            प्रमाणीकरण या प्राधिकरण विफलता। अनुपस्थित कुंजी `403` लौटाती है, और
            किसी अन्य एप्लिकेशन की कुंजी, इस endpoint के लिए आवश्यक अनुमति के
            बिना वाली स्कोप्ड कुंजी, तथा कुंजी की IP अनुमति सूची (allowlist) के
            बाहर से किया गया अनुरोध भी यही लौटाता है; गलत, निरस्त या समय-सीमा
            समाप्त कुंजी `401` लौटाती है। उन्हें `detail` द्वारा पहचानें।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: मानव-पठनीय त्रुटि संदेश।
              examples:
                Missing or invalid credentials:
                  summary: कोई x-api-key हेडर नहीं है, या कुंजी सत्यापन में विफल रही
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Other application:
                  summary: एक मान्य कुंजी जो सत्र से भिन्न एप्लिकेशन से संबंधित है
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without decisions write:
                  summary: 'स्कोप्ड कुंजी में decisions: write की कमी है'
                  value:
                    detail: This API key has no write access to decisions.
                IP not allowed:
                  summary: कुंजी की IP अनुमति सूची से बाहर का अनुरोध
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: >-
            सत्र मौजूद नहीं है, हटा दिया गया था, किसी अन्य एप्लिकेशन से संबंधित
            है या स्कोप्ड कुंजी की सीमाओं से बाहर है; कोई विवरण उनमें अंतर नहीं
            करता है।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: मानव-पठनीय त्रुटि संदेश।
              example:
                detail: Session not found.
        '409':
          description: सत्र समाप्त हो चुका है (`kyb_session_not_writable`)।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: मानव-पठनीय त्रुटि संदेश।
                  code:
                    type: string
              example:
                detail: This verification session is no longer accepting changes.
                code: kyb_session_not_writable
        '429':
          description: >-
            रेट लिमिट पार हो गई: प्रति मिनट प्रति API कुंजी 300 राइट (POST,
            PATCH, DELETE) अनुरोध। पुनः प्रयास करने से पहले `Retry-After` सेकंड
            प्रतीक्षा करें; `X-RateLimit-*` हेडर बजट दिखाते हैं।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: मानव-पठनीय त्रुटि संदेश।
              examples:
                Rate limited:
                  summary: वर्तमान मिनट का बजट समाप्त हो गया
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
          headers:
            Retry-After:
              description: पुनः प्रयास करने से पहले प्रतीक्षा करने के सेकंड।
              schema:
                type: integer
                minimum: 1
                example: 30
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.create_kyb_party_draft(
                "33333333-4444-5555-6666-777777777777",
                entity_type="person",
                first_name="Ana",
                last_name="Lopez",
                roles=["ubo", "director"],
                date_of_birth="1984-06-12",
                email="ana.lopez@example.com",
                ownership_percent=60.0,
                nationality="MEX",
            )
            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.sessions.createKybPartyDraft("33333333-4444-5555-6666-777777777777",
            {
              entity_type: "person",
              first_name: "Ana",
              last_name: "Lopez",
              roles: ["ubo", "director"],
              date_of_birth: "1984-06-12",
              email: "ana.lopez@example.com",
              ownership_percent: 60.0,
              nationality: "MEX",
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.CreateKYBPartyDraft(ctx, \"33333333-4444-5555-6666-777777777777\", didit.SessionsCreateKYBPartyDraftParams{\n\tEntityType:       \"person\",\n\tFirstName:        didit.String(\"Ana\"),\n\tLastName:         didit.String(\"Lopez\"),\n\tRoles:            didit.Some([]didit.SessionsCreateKYBPartyDraftParamsRoles{\"ubo\", \"director\"}),\n\tDateOfBirth:      didit.String(\"1984-06-12\"),\n\tEmail:            didit.String(\"ana.lopez@example.com\"),\n\tOwnershipPercent: didit.Float(60.0),\n\tNationality:      \"MEX\",\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.time.LocalDate;

            import java.util.List;

            import me.didit.Didit;

            import me.didit.types.SessionsCreateKybPartyDraftParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().createKybPartyDraft("33333333-4444-5555-6666-777777777777",
            SessionsCreateKybPartyDraftParams.builder()
                    .entityType(SessionsCreateKybPartyDraftParams.EntityType.of("person"))
                    .firstName("Ana")
                    .lastName("Lopez")
                    .roles(List.of(SessionsCreateKybPartyDraftParams.Roles.of("ubo"), SessionsCreateKybPartyDraftParams.Roles.of("director")))
                    .dateOfBirth(LocalDate.parse("1984-06-12"))
                    .email("ana.lopez@example.com")
                    .ownershipPercent(60.0)
                    .nationality("MEX")
                    .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->sessions->createKybPartyDraft('33333333-4444-5555-6666-777777777777',
            [
                'entity_type' => 'person',
                'first_name' => 'Ana',
                'last_name' => 'Lopez',
                'roles' => ['ubo', 'director'],
                'date_of_birth' => '1984-06-12',
                'email' => 'ana.lopez@example.com',
                'ownership_percent' => 60.0,
                'nationality' => 'MEX',
            ]);

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

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

            result = didit.sessions.create_kyb_party_draft(
              "33333333-4444-5555-6666-777777777777",
              entity_type: "person",
              first_name: "Ana",
              last_name: "Lopez",
              roles: ["ubo", "director"],
              date_of_birth: "1984-06-12",
              email: "ana.lopez@example.com",
              ownership_percent: 60.0,
              nationality: "MEX"
            )
            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.Sessions.CreateKybPartyDraftAsync("33333333-4444-5555-6666-777777777777",
            new SessionsCreateKybPartyDraftParams

            {
                EntityType = "person",
                FirstName = "Ana",
                LastName = "Lopez",
                Roles = new SessionsCreateKybPartyDraftParamsRoles[] { "ubo", "director" },
                DateOfBirth = "1984-06-12",
                Email = "ana.lopez@example.com",
                OwnershipPercent = 60.0,
                Nationality = "MEX",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  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.