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

# VASP ड्यू-डिलिजेंस प्रश्नावली भेजने का API

> Didit की मानक ड्यू-डिलिजेंस प्रश्नावली को Travel Rule प्रतिपक्ष VASP के रिकॉर्ड में दर्ज अनुपालन ईमेल पते पर ईमेल के ज़रिए भेजें।



VASP प्रश्नावली भेजने के लिए API प्रॉम्प्ट
        प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें



      
      

\<pre>

\`Email Didit's standard due-diligence questionnaire to a Travel Rule counterparty VASP.

Endpoint:
POST https://verification.didit.me/v3/travel-rule/vasps/{vasp_id}/questionnaires/

Authentication:
Use the x-api-key header with my Didit API key.

Example call:
curl -X POST "https://verification.didit.me/v3/travel-rule/vasps/{vasp_id}/questionnaires/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"sent_to": "travelrule@counterparty.example"}'

Body (optional):
\- sent_to - a compliance address on record for the counterparty: for a directory entry its compliance address or a contact my application sees (GET /v3/travel-rule/vasps/{vasp_id}/ lists contacts), for a Didit network member its confirmed compliance email. Default: the address a Travel Rule email to the counterparty goes to (my own contact first, then a platform contact, then the entry's compliance address). Any other address is refused.

What happens:
\- 202 with the questionnaire {id, status: "SENT", form_version, sent_to, sent_at, expires_at, ...}. The email carries a single-use link to a page where the counterparty answers every question of Didit's standard questionnaire.
\- The counterparty has 30 days (expires_at); after that the link stops working and the questionnaire is EXPIRED.
\- Once answered, the status is ANSWERED and the answers stay current for 365 days (valid_until). Read them with GET /v3/travel-rule/vasps/{vasp_id}/questionnaires/.
\- A new send replaces my earlier unanswered questionnaire to the same counterparty: that one becomes EXPIRED and its link stops working.
\- The questionnaire and its answers are private to my application.

Failure modes:
\- 400 - sent_to is not a valid email or not a compliance address on record, or the counterparty has no compliance address on record yet.
\- 404 - no directory entry or listed Didit network member has this id, or the id is my own VASP profile.
\- 429 - a questionnaire went to this address less than a minute ago.
\- 503 - the email could not be sent and no questionnaire was created; try again.

Full guide: /transaction-monitoring/travel-rule#due-diligence-questionnaire.`

\</pre>



      
      

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



## OpenAPI

````yaml hi/openapi-25.json POST /v3/travel-rule/vasps/{vasp_id}/questionnaires/
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/travel-rule/vasps/{vasp_id}/questionnaires/:
    post:
      tags:
        - Travel Rule
      summary: किसी VASP को उचित परिश्रम प्रश्नावली भेजें
      description: >-
        प्रतिपक्ष के रिकॉर्ड में मौजूद अनुपालन पते पर एकल-उपयोग उत्तर लिंक के
        साथ Didit की मानक ड्यू-डिलिजेंस प्रश्नावली ईमेल करें। प्रतिपक्ष के पास
        प्रत्येक प्रश्न का उत्तर देने के लिए 30 दिन का समय होता है; उत्तर 365
        दिनों तक वैध रहते हैं। नया भेजा गया अनुरोध उसी प्रतिपक्ष को भेजी गई आपकी
        पिछली अनुत्तरित प्रश्नावली को प्रतिस्थापित कर देता है, जिसका लिंक काम
        करना बंद कर देता है। प्रति पता प्रति मिनट एक ईमेल।
      operationId: sendTravelRuleVaspQuestionnaire
      parameters:
        - name: vasp_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            GET /v3/travel-rule/vasps/ की एक पंक्ति की id: एक डायरेक्टरी
            प्रविष्टि या Didit नेटवर्क सदस्य।
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TravelRuleCounterpartyQuestionnaireRequest'
            example:
              sent_to: travelrule@counterparty.example
      responses:
        '202':
          description: प्रश्नावली ईमेल कर दी गई थी।
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleCounterpartyQuestionnaire'
              example:
                id: 3f9e8d7c-6b5a-4c3d-9e2f-1a0b9c8d7e6f
                status: SENT
                form_version: '1'
                sent_to: travelrule@counterparty.example
                sent_at: '2026-10-14T10:00:00Z'
                expires_at: '2026-11-13T10:00:00Z'
                answered_at: null
                valid_until: null
                current: false
                answers: {}
        '400':
          description: >-
            sent_to एक मान्य ईमेल पता नहीं है या प्रतिपक्ष के लिए रिकॉर्ड में
            मौजूद अनुपालन पता नहीं है, या प्रतिपक्ष का रिकॉर्ड में कोई अनुपालन
            पता नहीं है।
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: string
              examples:
                Not on record:
                  value:
                    sent_to:
                      - >-
                        Send the questionnaire to a compliance address on record
                        for this counterparty.
                No address:
                  value:
                    sent_to:
                      - >-
                        No compliance address is on record for this
                        counterparty. Add a contact for it first.
        '404':
          description: >-
            किसी भी डायरेक्टरी प्रविष्टि या सूचीबद्ध Didit नेटवर्क सदस्य की यह
            id नहीं है। आपकी अपनी VASP प्रोफ़ाइल कभी भी आपकी प्रतिपक्ष नहीं होती
            है।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              example:
                detail: No directory entry or Didit network member has this id.
        '429':
          description: एक मिनट से भी कम समय पहले इस पते पर एक प्रश्नावली भेजी गई थी।
        '503':
          description: >-
            ईमेल नहीं भेजा जा सका और कोई प्रश्नावली नहीं बनाई गई। कुछ ही पलों
            में पुनः प्रयास करें।
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            https://verification.didit.me/v3/travel-rule/vasps/{vasp_id}/questionnaires/
            \
              -H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
              -d '{"sent_to": "travelrule@counterparty.example"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.travel_rule.send_vasp_questionnaire(
                "11111111-2222-3333-4444-555555555555",
                sent_to="travelrule@counterparty.example",
            )
            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.travelRule.sendVaspQuestionnaire("11111111-2222-3333-4444-555555555555",
            {
              sent_to: "travelrule@counterparty.example",
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.TravelRule.SendVASPQuestionnaire(ctx, \"11111111-2222-3333-4444-555555555555\", didit.TravelRuleCounterpartyQuestionnaireRequest{\n\tSentTo: didit.String(\"travelrule@counterparty.example\"),\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.TravelRuleCounterpartyQuestionnaireRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.travelRule().sendVaspQuestionnaire("11111111-2222-3333-4444-555555555555",
            TravelRuleCounterpartyQuestionnaireRequest.builder()
                    .sentTo("travelrule@counterparty.example")
                    .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->travelRule->sendVaspQuestionnaire('11111111-2222-3333-4444-555555555555',
            [
                'sent_to' => 'travelrule@counterparty.example',
            ]);

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

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

            result = didit.travel_rule.send_vasp_questionnaire(
              "11111111-2222-3333-4444-555555555555",
              sent_to: "travelrule@counterparty.example"
            )
            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.TravelRule.SendVaspQuestionnaireAsync("11111111-2222-3333-4444-555555555555",
            new TravelRuleCounterpartyQuestionnaireRequest

            {
                SentTo = "travelrule@counterparty.example",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TravelRuleCounterpartyQuestionnaireRequest:
      type: object
      properties:
        sent_to:
          type: string
          format: email
          description: >-
            वैकल्पिक। प्रतिपक्ष के लिए रिकॉर्ड में मौजूद अनुपालन पता: डायरेक्टरी
            प्रविष्टि के लिए उसका अनुपालन पता या आपके एप्लिकेशन द्वारा देखा जाने
            वाला कोई संपर्क, Didit नेटवर्क सदस्य के लिए उसका पुष्टिकृत अनुपालन
            ईमेल। डिफ़ॉल्ट: वह पता जिस पर प्रतिपक्ष को Travel Rule ईमेल भेजा
            जाता है (पहले आपका अपना संपर्क, फिर प्लेटफ़ॉर्म संपर्क, फिर
            प्रविष्टि का अनुपालन पता)।
    TravelRuleCounterpartyQuestionnaire:
      type: object
      description: >-
        एक ड्यू-डिलिजेंस प्रश्नावली जो आपके एप्लिकेशन ने प्रतिपक्ष को भेजी थी:
        Didit की मानक प्रश्नावली, एकल-उपयोग उत्तर लिंक के साथ रिकॉर्ड में दर्ज
        अनुपालन ईमेल पते पर भेजी गई। आपके एप्लिकेशन के लिए निजी।
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - SENT
            - ANSWERED
            - EXPIRED
          description: >-
            SENT: उत्तरों की प्रतीक्षा की जा रही है। ANSWERED: प्रतिपक्ष ने
            प्रत्येक प्रश्न का उत्तर दिया। EXPIRED: उत्तर लिंक बिना उत्तर दिए
            बंद हो गया (इसकी समय-सीमा समाप्त हो गई, या एक नई प्रश्नावली ने इसे
            बदल दिया), या उत्तरों ने valid_until पार कर लिया।
        form_version:
          type: string
          description: >-
            Didit की मानक प्रश्नावली का संस्करण जिससे उत्तर संबंधित हैं। वर्तमान
            में 1।
        sent_to:
          type: string
          format: email
        sent_at:
          type: string
          format: date-time
          nullable: true
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            उत्तर देने की अंतिम तिथि, भेजने के 30 दिन बाद। इसके बाद लिंक काम
            करना बंद कर देता है।
        answered_at:
          type: string
          format: date-time
          nullable: true
        valid_until:
          type: string
          format: date-time
          nullable: true
          description: >-
            उत्तर कितने समय तक अद्यतित रहते हैं: उत्तर देने के 365 दिन बाद तक।
            उत्तर दिए जाने तक Null।
        current:
          type: boolean
          description: true जब तक प्रश्नावली ANSWERED है और valid_until समाप्त नहीं हुआ है।
        answers:
          type: object
          additionalProperties:
            type: string
          description: >-
            प्रश्न id द्वारा कुंजीबद्ध उत्तर: legal_name, licensing,
            jurisdictions, aml_program, compliance_officer, sanctions_screening,
            transaction_monitoring, travel_rule, custody, ownership,
            record_keeping, data_protection। प्रत्येक उत्तर 2,000 वर्णों तक का
            है। उत्तर दिए जाने तक खाली।
  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.