> ## 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 का टेस्ट VASP आपके एप्लिकेशन को इनबाउंड Travel Rule ट्रांसफ़र भेजे, और आपके निर्णय, इनबॉक्स और स्वामित्व फ़्लो को चलते हुए देखें।



VASP इनबाउंड ट्रांसफ़र API परीक्षण ट्रिगर करने का प्रॉम्प्ट
        प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें



      
      

\<pre>

\`Make the Didit Test VASP send my sandbox application an inbound Travel Rule transfer, to exercise the receiving side of an exchange before going live.

Endpoint:
POST https://verification.didit.me/v3/travel-rule/test-vasp/inbound/

Authentication:
Use the x-api-key header with my SANDBOX application's API key. A live application receives 400.

Request body (application/json):
\{
"beneficiary_wallet_address": "0xYourSandboxWallet",  // required: the destination wallet address
"scenario": "accept",                                // optional: accept (default) or name_mismatch
"chain": "ETH",                                      // optional
"amount": "1",                                       // optional, decimal string
"currency": "ETH",                                   // optional
"reference": "demo-001"                              // optional: repeat calls with it return the first transfer
}

Behavior:
\- The transfer is decided by the same logic a real inbound transfer runs, against my wallet address book: a verified wallet with the holder's name completes, an unverified wallet waits for ownership, a wallet with no matching address book entry is booked ON_HOLD, and name_mismatch ends as COUNTERPARTY_MISMATCHED_DATA.
\- Nothing leaves Didit. travel_rule.status.updated webhooks fire with environment "sandbox", test_vasp true and the scenario name.

What to read from the response:
\- transaction_id, txn_id - the booked inbound transaction.
\- travel_rule_status and detail - how my application decided it.
\- travel_rule - the full transfer.

Full guide: /transaction-monitoring/travel-rule#testing-without-network-credentials.`

\</pre>



      
      

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



## OpenAPI

````yaml hi/openapi-25.json POST /v3/travel-rule/test-vasp/inbound/
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/test-vasp/inbound/:
    post:
      tags:
        - Travel Rule
      summary: Didit Test VASP (सैंडबॉक्स) से इनबाउंड ट्रांसफ़र ट्रिगर करें
      description: >-
        केवल सैंडबॉक्स एप्लिकेशन। Didit Test VASP आपके एप्लिकेशन को एक इनबाउंड
        Travel Rule ट्रांसफ़र भेजता है, जिससे आप लाइव होने से पहले किसी एक्सचेंज
        के प्राप्तकर्ता पक्ष का शुरू से अंत तक परीक्षण कर सकें। ट्रांसफ़र उसी
        लॉजिक द्वारा बुक और तय किया जाता है जो आपकी वॉलेट पता पुस्तिका के
        विरुद्ध नेटवर्क से आने वाला वास्तविक इनबाउंड ट्रांसफ़र चलाता है, इसलिए
        इनबॉक्स, निर्णय और वॉलेट स्वामित्व फ़्लो लाइव की तरह ही व्यवहार करते
        हैं। Didit से कुछ भी बाहर नहीं जाता है। एक लाइव एप्लिकेशन को 400 प्राप्त
        होता है। दूसरा ट्रांसफ़र बुक करने के बजाय पहली कॉल द्वारा बुक किए गए
        ट्रांसफ़र को प्राप्त करने के लिए वही `reference` दोबारा भेजें।
      operationId: triggerTravelRuleTestVaspInbound
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TravelRuleTestVaspInboundRequest'
            example:
              beneficiary_wallet_address: 0xYourSandboxWallet
              scenario: accept
              amount: '1'
              reference: demo-001
      responses:
        '201':
          description: >-
            इनबाउंड ट्रांसफर बुक किया गया था और उस पर निर्णय लिया गया था। उसी
            `reference` के साथ दोहराने पर वही payload वापस आता है।
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleTestVaspInboundResponse'
        '400':
          description: >-
            अमान्य body, एक अज्ञात या असमर्थित `scenario`, या एप्लिकेशन एक लाइव
            एप्लिकेशन है।
          content:
            application/json:
              schema:
                type: object
        '409':
          description: >-
            ट्रांसफर बुक नहीं किया जा सका, उदाहरण के लिए क्योंकि एप्लिकेशन के
            लिए Travel Rule सक्षम नहीं है।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            https://verification.didit.me/v3/travel-rule/test-vasp/inbound/ \
              -H 'x-api-key: YOUR_SANDBOX_API_KEY' -H 'Content-Type: application/json' \
              -d '{"beneficiary_wallet_address":"0xYourSandboxWallet","scenario":"accept","reference":"demo-001"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.transactions.travel_rule.trigger_test_vasp_inbound(
                beneficiary_wallet_address="0xYourSandboxWallet",
                scenario="accept",
                amount="1",
                reference="demo-001",
            )
            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.transactions.travelRule.triggerTestVaspInbound({
              beneficiary_wallet_address: "0xYourSandboxWallet",
              scenario: "accept",
              amount: "1",
              reference: "demo-001",
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Transactions.TravelRule.TriggerTestVASPInbound(ctx, didit.TravelRuleTestVASPInboundRequest{\n\tBeneficiaryWalletAddress: \"0xYourSandboxWallet\",\n\tScenario:                 didit.Some(didit.TravelRuleTestVASPInboundRequestScenario(\"accept\")),\n\tAmount:                   didit.String(\"1\"),\n\tReference:                didit.String(\"demo-001\"),\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.TravelRuleTestVaspInboundRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.transactions().travelRule().triggerTestVaspInbound(TravelRuleTestVaspInboundRequest.builder()
                    .beneficiaryWalletAddress("0xYourSandboxWallet")
                    .scenario(TravelRuleTestVaspInboundRequest.Scenario.of("accept"))
                    .amount("1")
                    .reference("demo-001")
                    .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->transactions->travelRule->triggerTestVaspInbound([
                'beneficiary_wallet_address' => '0xYourSandboxWallet',
                'scenario' => 'accept',
                'amount' => '1',
                'reference' => 'demo-001',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.transactions.travel_rule.trigger_test_vasp_inbound(
              beneficiary_wallet_address: "0xYourSandboxWallet",
              scenario: "accept",
              amount: "1",
              reference: "demo-001"
            )
            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.Transactions.TravelRule.TriggerTestVaspInboundAsync(new
            TravelRuleTestVaspInboundRequest

            {
                BeneficiaryWalletAddress = "0xYourSandboxWallet",
                Scenario = new TravelRuleTestVaspInboundRequestScenario("accept"),
                Amount = "1",
                Reference = "demo-001",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TravelRuleTestVaspInboundRequest:
      type: object
      required:
        - beneficiary_wallet_address
      properties:
        beneficiary_wallet_address:
          type: string
          description: >-
            गंतव्य वॉलेट पता। Didit Test VASP इसे भेजता है, जिसका मिलान एसेट की
            चेन पर आपकी वॉलेट पता पुस्तिका से किया जाता है। बिना किसी मैचिंग
            एंट्री वाले वॉलेट को स्वीकार कर लिया जाता है और इनबाउंड लेन-देन को
            ON_HOLD के रूप में बुक किया जाता है।
        scenario:
          type: string
          enum:
            - accept
            - name_mismatch
          default: accept
          description: >-
            Didit Test VASP लाभार्थी को क्या घोषित करता है। `accept` धारक का
            अपना नाम घोषित करता है; `name_mismatch` ऐसा नाम घोषित करता है जिससे
            कोई भी धारक सहमत नहीं होता। निर्णय स्वयं हमेशा आपका होता है।
        chain:
          type: string
          default: ETH
          description: एसेट की चेन।
        amount:
          type: string
          default: '1'
          description: दशमलव स्ट्रिंग के रूप में राशि।
        currency:
          type: string
          default: ETH
          description: एसेट कोड।
        reference:
          type: string
          description: >-
            वैकल्पिक आइडेम्पोटेंसी कुंजी। समान मान के साथ दोहराने पर वह
            ट्रांसफ़र वापस मिलता है जिसे पहली कॉल ने बुक किया था।
    TravelRuleTestVaspInboundResponse:
      type: object
      properties:
        transaction_id:
          type: string
          format: uuid
          description: इनबाउंड ट्रांसफ़र का Didit लेन-देन UUID।
        txn_id:
          type: string
          description: Didit द्वारा जनरेट किया गया txn_id।
        scenario:
          type: string
          description: वह परिदृश्य जो चला।
        travel_rule_status:
          type: string
          description: वह स्थिति जिस पर आपके एप्लिकेशन का अपना निर्णय पहुंचा।
        detail:
          type: string
          description: ट्रांसफ़र उस स्थिति पर क्यों पहुँचा।
        test_vasp:
          type: boolean
          description: 'हमेशा true: प्रेषक Didit Test VASP था।'
        travel_rule:
          $ref: '#/components/schemas/TravelRuleTransferDetail'
    TravelRuleTransferDetail:
      type: object
      description: >-
        स्वामित्व-पुष्टि और समाप्त/रद्द endpoints द्वारा लौटाया गया पूर्ण
        स्थानांतरण ऑब्जेक्ट। जब तक किसी इनबाउंड स्थानांतरण के वॉलेट स्वामित्व की
        पुष्टि नहीं हो जाती, तब तक प्रतिपक्ष का `originator_data` और
        `beneficiary_data` मास्क होकर वापस आते हैं (प्रत्येक शब्द का पहला अक्षर
        रखा जाता है; वॉलेट, चेन और VASP रूटिंग पठनीय रहते हैं) और `data_masked`
        true होता है।
      properties:
        uuid:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - AWAITING_COUNTERPARTY
            - ON_HOLD
            - COMPLETED
            - FINISHED
            - CANCELLED
            - EXPIRED
            - COUNTERPARTY_MISMATCHED_DATA
            - COUNTERPARTY_VASP_NOT_FOUND
            - COUNTERPARTY_VASP_NOT_REACHABLE
            - UNCONFIRMED_OWNERSHIP
            - COUNTERPARTY_VASP_GENERAL_DECLINE
            - NOT_ENOUGH_COUNTERPARTY_DATA
            - NOT_APPLICABLE
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
        rail:
          type: string
          nullable: true
          enum:
            - INTERNAL
            - TRP
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
            - EMAIL
            - TEST_VASP
            - null
          description: >-
            वह रेल जिसके माध्यम से ट्रांसफर रूट किया गया था, या null जब कोई रेल
            नहीं चुना गया था (उदाहरण के लिए थ्रेशोल्ड से नीचे, एक स्व-होस्टेड
            प्रतिपक्ष वॉलेट, जमा के बाद का पंजीकरण, या कोई पहुँच योग्य प्रतिपक्ष
            न होने पर)। INTERNAL का अर्थ है दोनों पक्ष Didit एप्लिकेशन हैं;
            EMAIL का अर्थ है कि प्रतिपक्ष तक ईमेल किए गए पिकअप लिंक द्वारा
            पहुँचा गया था। TEST_VASP का अर्थ है कि Didit Test VASP ने सैंडबॉक्स
            ट्रांसफर का उत्तर दिया। GTR, VERIFYVASP और SYGNA पर, Didit नेटवर्क
            के रिस्पॉन्स से या हर 5 मिनट में इसे पोल करके प्रतिपक्ष का उत्तर
            पढ़ता है। TRUST केवल भेजता है, इसलिए TRUST ट्रांसफर तब तक
            AWAITING_COUNTERPARTY बना रहता है जब तक कि इसकी समय-सीमा समाप्त न हो
            जाए। नेटवर्क रेल का उपयोग केवल तभी किया जाता है जब आपने उस नेटवर्क
            के लिए अपनी सदस्यता कनेक्ट की हो। इसे लेन-देन बनाने का अनुरोध
            रिस्पॉन्स लौटाने के बाद चुना जाता है, इसलिए यह उस रिस्पॉन्स में null
            होता है।
        protocol:
          type: string
          nullable: true
        ivms_version:
          type: string
          example: ivms101.2023
        required:
          type: boolean
        ownership_confirmed:
          type: boolean
          nullable: true
        deadline_at:
          type: string
          format: date-time
          nullable: true
        timeline:
          type: array
          items:
            type: object
            properties:
              status:
                type: string
              at:
                type: string
                format: date-time
              detail:
                type: string
              name_match:
                allOf:
                  - $ref: '#/components/schemas/TravelRuleNameMatch'
                nullable: true
                description: >-
                  नाम तुलना जो इस प्रविष्टि ने तय की, `detail` के बगल में। उन
                  प्रविष्टियों पर अनुपस्थित जिन्होंने किसी नाम की तुलना नहीं की।
              reason:
                type: string
                description: >-
                  केवल उस संक्रमण की प्रविष्टि पर मौजूद जो विफल डिलीवरी के कारण
                  हुआ था: `email_undeliverable` या `delivery_failed`, वह मान जो
                  ट्रांसफ़र का `reason` रिपोर्ट करता है।
        counterparty_vasp:
          type: object
          nullable: true
          properties:
            name:
              type: string
            lei:
              type: string
            dd_score:
              type: integer
              description: >-
                0 से 100 तक ड्यू-डिलिजेंस स्कोर, जहाँ अधिक स्कोर बेहतर होता है।
                VASP डायरेक्टरी के समान पैमाना।
            dd_score_breakdown:
              type: object
              description: >-
                dd_score में प्रति-घटक योगदान, VASP डायरेक्टरी (jurisdiction,
                verification, protocol, lei, history, essentials,
                responsiveness) के अनुसार प्रति घटक एक ऑब्जेक्ट, प्रत्येक
                {points, max, reason, detail}। प्रतिपक्ष का मूल्यांकन होने तक
                {}।
              additionalProperties:
                type: object
                properties:
                  points:
                    type: number
                    description: इस घटक के लिए दिए गए अंक।
                  max:
                    type: integer
                    description: अधिकतम अंक जो यह घटक दे सकता है।
                  reason:
                    type: string
                    description: घटक के निर्णय का मशीन-पठनीय कोड।
                  detail:
                    type: string
                    description: प्रदान किए गए अंकों का मानव-पठनीय कारण।
            dd_assessed_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                जब उचित जाँच-पड़ताल मूल्यांकन अंतिम बार चला था। जब तक प्रतिपक्ष
                का मूल्यांकन न किया गया हो तब तक Null।
        originator_data:
          type: object
          description: >-
            प्रेषक पक्ष। इनबाउंड ट्रांसफ़र के लिए स्वामित्व की पुष्टि होने तक
            प्रतिपक्ष के मान छिपाए जाते हैं।
        beneficiary_data:
          type: object
          description: >-
            लाभार्थी पक्ष। इनबाउंड ट्रांसफ़र के लिए स्वामित्व की पुष्टि होने तक
            प्रतिपक्ष के मान छिपे रहते हैं।
        name_match:
          allOf:
            - $ref: '#/components/schemas/TravelRuleNameMatch'
          nullable: true
          description: >-
            नाम तुलना जिसने ट्रांसफर तय किया, या एक बार चलने तक null। जब तक पक्ष
            मास्क किए गए हों, और INTERNAL एक्सचेंज की अन्य ग्राहक की प्रति पर,
            `transfer_name`, `compared_name`, `matched_names` और
            `mismatched_names` छिपे होते हैं। `score` और `matched` असहमत हो सकते
            हैं: `matched` सख्ती का पालन करता है, `score` दोनों पूरे नामों की
            समानता है।
        data_match:
          $ref: '#/components/schemas/TravelRuleDataMatch'
        mismatched_fields:
          type: array
          items:
            type: string
          description: >-
            `data_match.mismatched_fields` के लिए शॉर्टकट। कुछ भी भिन्न न होने
            पर खाली।
        data_unmasked:
          $ref: '#/components/schemas/TravelRuleDataUnmasked'
        data_masked:
          type: boolean
          description: >-
            सही जब इस रिस्पॉन्स में प्रतिपक्ष का व्यक्तिगत डेटा मास्क किया गया
            हो।
        created_at:
          type: string
          format: date-time
        delivery:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/TravelRuleDelivery'
          description: >-
            इस स्थानांतरण द्वारा दूसरे पक्ष को भेजे जाने वाले नवीनतम संदेश की
            स्थिति। Null जब स्थानांतरण को कभी कोई संदेश भेजने की आवश्यकता नहीं
            थी (उदाहरण के लिए `threshold_amount` से कम, घोषित स्व-होस्टेड वॉलेट,
            या सनराइज़ पंजीकरण)।
        discovery:
          type: array
          description: >-
            Didit ने प्रतिपक्ष की खोज कैसे की, निष्पादित प्रत्येक चरण के लिए एक
            प्रविष्टि। जब कोई खोज नहीं चली, उदाहरण के लिए इनबाउंड ट्रांसफ़र पर,
            तो रिक्त।
          items:
            $ref: '#/components/schemas/TravelRuleDiscoveryStep'
        reason:
          type: string
          description: >-
            एक `COUNTERPARTY_VASP_NOT_FOUND` या
            `COUNTERPARTY_VASP_NOT_REACHABLE` ट्रांसफर क्यों अटका हुआ है; किसी
            अन्य स्थिति के लिए `""`। एक विफल डिलीवरी इसे पहले तय करती है, केवल
            `COUNTERPARTY_VASP_NOT_REACHABLE` पर: `email_undeliverable` (मेल
            प्रदाता ने अनुपालन ईमेल को अस्वीकार कर दिया और आज़माने के लिए कोई
            पता नहीं बचा: जब इसे भेजा गया था, रिमाइंडर पर, या बाद में रिपोर्ट
            किए गए स्थायी बाउंस के रूप में) या `delivery_failed` (जो रेल डिलीवर
            कर रही थी वह स्थायी रूप से विफल हो गई: एक नेटवर्क रेल ने संदेश को
            अस्वीकार कर दिया या उसके पुनः प्रयास समाप्त हो गए, एक `TRP` पहचान
            होस्ट ने उत्तर नहीं दिया, या प्रतिपक्ष के `TRP` होस्ट ने पूछताछ
            स्वीकार नहीं की)। अन्यथा `discovery` ट्रेस इसे तय करता है:
            `awaiting_end_user` (किसी भी चरण ने ऐसे प्रतिपक्ष का नाम नहीं दिया
            जिस तक Didit पहुँच सके), `directory_match_no_route` (एक चरण ने एक
            निर्देशिका VASP का नाम दिया जिसका कोई रूट नहीं है),
            `picked_member_without_proven_wallet` (अंतिम उपयोगकर्ता ने ऐसे Didit
            ग्राहक को चुना जिसने वॉलेट पर नियंत्रण साबित नहीं किया है), या
            `no_directory_match` जब ट्रेस कोई अन्य कारण नहीं देता है। पुनः भेजना
            ट्रांसफर को आगे बढ़ाता है, इसलिए कारण साफ़ हो जाता है। देखें
            [ट्रांसफर क्यों अटका हुआ
            है](/hi/transaction-monitoring/travel-rule#ट्रांसफ़र-क्यों-अटका-है)।
        next_actions:
          type: array
          description: >-
            ट्रांसफ़र को क्या आगे बढ़ाता है; `COUNTERPARTY_VASP_NOT_FOUND` या
            `COUNTERPARTY_VASP_NOT_REACHABLE` को छोड़कर किसी भी स्थिति के लिए
            `[]`। `email_undeliverable` `update_compliance_email`, फिर `resend`
            प्रदान करता है। `delivery_failed` `resend` प्रदान करता है। डिस्कवरी
            कारण `select_counterparty_vasp`, `declare_self_hosted`,
            `add_vasp_hint` और `resend` प्रदान करता है।
          items:
            $ref: '#/components/schemas/TravelRuleNextAction'
        chain_details:
          $ref: '#/components/schemas/TravelRuleChainDetails'
    TravelRuleNameMatch:
      type: object
      nullable: true
      description: >-
        नाम तुलना जिसने ट्रांसफर तय किया, या एक बार चलने तक null। जब तक पक्ष
        मास्क किए गए हों, और INTERNAL एक्सचेंज की अन्य ग्राहक की प्रति पर,
        `transfer_name`, `compared_name`, `matched_names` और `mismatched_names`
        छिपे होते हैं। `score` और `matched` असहमत हो सकते हैं: `matched` सख्ती
        का पालन करता है, `score` दोनों पूरे नामों की समानता है।
      properties:
        score:
          type: integer
          minimum: 0
          maximum: 100
          description: >-
            दोनों पूरे नामों की समानता, 0 से 100। दोनों में से कोई भी नाम खाली
            होने पर 0।
        matched:
          type: boolean
          description: >-
            क्या नाम `strictness` को संतुष्ट करते हैं। ट्रांसफ़र का परिणाम
            `data_match` का पालन करता है, जो प्रत्येक फ़ील्ड की तुलना करता है,
            इसलिए इसके true होने पर भी कोई ट्रांसफ़र
            COUNTERPARTY_MISMATCHED_DATA हो सकता है।
        method:
          type: string
          enum:
            - none
            - exact_token
            - token_subset
            - token_containment
            - sequence_ratio
          description: >-
            `matched` कैसे तय किया गया था: none (`NONE`), exact_token
            (`STRICT`), token_subset (`DEFAULT`), token_containment (`CONTAINS`)
            या sequence_ratio (`FUZZY`)।
        strictness:
          type: string
          enum:
            - NONE
            - STRICT
            - CONTAINS
            - DEFAULT
            - FUZZY
        compared_with:
          type: string
          enum:
            - wallet_holder
            - counterparty_vasp
          description: >-
            wallet_holder: वॉलेट के लिए रिकॉर्ड किया गया धारक।
            counterparty_vasp: वह नाम जिससे प्रतिपक्ष ने ईमेल रिस्पॉन्स पेज पर
            उत्तर दिया, या सैंडबॉक्स में Didit Test VASP का उत्तर।
        transfer_name:
          type: string
          description: ट्रांसफर पर नाम।
        compared_name:
          type: string
          description: वह नाम जिसके साथ इसकी तुलना की गई थी।
        matched_names:
          type: array
          items:
            type: string
          description: '`compared_name` में पाए गए `transfer_name` के शब्द।'
        mismatched_names:
          type: array
          items:
            type: string
          description: >-
            `compared_name` में अनुपस्थित `transfer_name` के शब्द, फिर
            `transfer_name` में अनुपस्थित `compared_name` के शब्द।
    TravelRuleDataMatch:
      type: object
      nullable: true
      description: >-
        ट्रांस्फ़र के पक्ष डेटा की वॉलेट धारक के बारे में दूसरे पक्ष की जानकारी
        के साथ फ़ील्ड-दर-फ़ील्ड तुलना। यह फ़ील्ड और परिणामों को नाम देता है,
        मानों को कभी नहीं, ताकि प्रतिपक्ष का डेटा मास्क रहने पर भी यह पठनीय बना
        रहे। तुलना चलने तक Null।
      properties:
        matched:
          type: boolean
          description: True जब कोई भी तुलना की गई फ़ील्ड भिन्न न हो।
        mismatched_fields:
          type: array
          items:
            type: string
            enum:
              - name
              - date_of_birth
              - address
              - account
          description: वे फ़ील्ड जो भिन्न हैं।
        fields:
          type: object
          description: >-
            पक्ष के निकाय प्रकार के लिए तुलना किए गए प्रति फ़ील्ड एक प्रविष्टि
            (`name`, `date_of_birth`, `address`, `account`; किसी कंपनी की कोई
            `date_of_birth` नहीं होती है)।
          additionalProperties:
            type: object
            properties:
              result:
                type: string
                enum:
                  - matched
                  - mismatched
                  - not_compared
                description: >-
                  `not_compared` जब नियम `NONE` हो या किसी भी पक्ष के पास फ़ील्ड
                  के लिए कोई मान न हो।
              strictness:
                type: string
                enum:
                  - NONE
                  - STRICT
                  - CONTAINS
                  - DEFAULT
                  - FUZZY
    TravelRuleDataUnmasked:
      type: object
      nullable: true
      description: >-
        उस क्षण का ऑडिट रिकॉर्ड जब प्रतिपक्ष का डेटा अनमास्क किया गया था। जब तक
        डेटा मास्क रहता है, और आउटबाउंड ट्रांसफ़र के लिए यह Null रहता है।
      properties:
        at:
          type: string
          format: date-time
        reason:
          type: string
          enum:
            - ownership_confirmed
            - wallet_proof
            - address_book_match
            - own_verified_wallet
            - inquiry_approved
            - known_payment_method
            - travel_address
          description: >-
            स्वामित्व की पुष्टि किससे हुई: ownership_confirmed (कंसोल या API के
            माध्यम से आपकी पुष्टि), wallet_proof (विजेट में एक वॉलेट प्रमाण, या
            एक INTERNAL इनबाउंड ट्रांसफ़र, जो इसके बनने पर सेट होता है),
            address_book_match (एक सत्यापित एड्रेस-बुक वॉलेट),
            own_verified_wallet (आपके उपयोगकर्ता का अपना सत्यापित वॉलेट),
            inquiry_approved (किसी इनबाउंड TRP पूछताछ या GTR या Sygna संदेश की
            आपकी स्वीकृति), known_payment_method (एक वॉलेट जिससे आपके उपयोगकर्ता
            ने पहले ही भुगतान किया है) या travel_address (वॉलेट की पहचान करने
            वाला प्रति-वॉलेट Travel Address)।
        actor:
          type: string
          description: >-
            इसकी पुष्टि किसने की: कंसोल उपयोगकर्ता का ईमेल या API कुंजी का लेबल।
            स्वचालित निर्णय के लिए रिक्त।
    TravelRuleDelivery:
      type: object
      description: >-
        स्थानांतरण द्वारा दूसरे पक्ष को भेजे जाने वाले नवीनतम संदेश की स्थिति।
        Didit उस अनुरोध के वापस आने के बाद प्रतिपक्ष से संपर्क करता है जिसने
        स्थानांतरण बनाया या बदला था, इसलिए यह ऑब्जेक्ट बताता है कि वह संदेश
        पहुँचा या नहीं: कतारबद्ध, भेजा जा रहा है, त्रुटि के बाद पुनः प्रयास की
        प्रतीक्षा में, वितरित, या विफल। ऐसी विफलता जिससे नेटवर्क अभी भी उबर सकता
        है (समय पर उत्तर न मिलना, विफल कनेक्शन, HTTP `408`, `429` या `5xx`),
        उसका 30 सेकंड, 2 मिनट, 10 मिनट, 30 मिनट और 1 घंटे के बाद पुनः प्रयास
        किया जाता है। जब कोई पहला संदेश (`kind: SEND`) स्थायी रूप से विफल हो
        जाता है, क्योंकि नेटवर्क ने इसे अस्वीकार कर दिया या छठा प्रयास भी विफल
        रहा, तो स्थानांतरण अपनी `timeline` में `last_error` के साथ
        `COUNTERPARTY_VASP_NOT_REACHABLE` पर चला जाता है; स्थायी रूप से विफल
        होने वाले किसी भी अन्य संदेश को `timeline` में दर्ज किया जाता है। स्वयं
        एक्सचेंज के लिए स्थानांतरण का `status` ही सत्य का प्राथमिक स्रोत बना
        रहता है।
      required:
        - kind
        - status
        - rail
        - attempts
        - last_error
        - next_attempt_at
        - delivered_at
      properties:
        kind:
          type: string
          enum:
            - SEND
            - ANSWER
            - TXID
            - CANCEL
            - POLL
          description: >-
            संदेश में क्या शामिल है। `SEND`: प्रतिपक्ष को ट्रांसफ़र का पहला
            संदेश (आउटबाउंड; भेजे जाने पर रेल चुनी जाती है)। `ANSWER`: आपकी
            स्वीकृति या अस्वीकृति, उस नेटवर्क के प्रति देय जिसने अनुरोध किया था
            (इनबाउंड)। `TXID`: ट्रांसफ़र समाप्त करने के बाद ऑन-चेन लेन-देन हैश।
            `CANCEL`: आपके द्वारा रद्द किए जाने के बाद रद्दीकरण। `POLL`: ऐसी
            सुविधा प्रदान करने वाले नेटवर्क से स्थिति क्वेरी, जब तक ट्रांसफ़र
            प्रतिपक्ष की प्रतीक्षा करता है, हर 5 मिनट में दोहराई जाती है।
        status:
          type: string
          enum:
            - QUEUED
            - SENDING
            - RETRYING
            - DELIVERED
            - FAILED
          description: >-
            `QUEUED`: भेजे जाने की प्रतीक्षा में। `SENDING`: एक प्रयास चल रहा
            है। `RETRYING`: एक प्रयास विफल रहा और अगला प्रयास `next_attempt_at`
            पर चलेगा। `DELIVERED`: दूसरे पक्ष ने संदेश प्राप्त कर लिया।
            `FAILED`: दूसरे पक्ष ने इसे अस्वीकार कर दिया, या अंतिम प्रयास विफल
            रहा।
        rail:
          type: string
          enum:
            - INTERNAL
            - TRP
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
            - EMAIL
            - ''
          description: >-
            संदेश ले जाने वाली रेल। जब तक Didit पहले संदेश के लिए किसी एक को चुन
            नहीं लेता, तब तक खाली रहता है।
        attempts:
          type: integer
          minimum: 0
          description: >-
            इस संदेश के लिए अब तक किए गए प्रयास। एक संदेश जो स्थिति पोल नहीं है,
            उसके लिए अधिकतम 6 बार प्रयास किया जाता है।
        last_error:
          type: string
          description: >-
            अंतिम प्रयास में हुई विफलता का प्रकार, कोई विफलता न होने पर `""`:
            उदाहरण के लिए `email undeliverable`, `trp identity endpoint
            unreachable` या `trp transfer inquiry delivery failed`। इसमें कभी भी
            प्रतिपक्ष का अपना उत्तर नहीं होता, जो ट्रांसफ़र की `timeline` पर
            रहता है।

            जब GTR किसी त्रुटि के साथ उत्तर देता है, तो उसका अपना स्टेटस कोड और
            संदेश शामिल होता है। रिस्पॉन्स बॉडी कभी शामिल नहीं की जाती है।
          example: email undeliverable
        next_attempt_at:
          type: string
          format: date-time
          nullable: true
          description: अगला प्रयास कब चलेगा जब संदेश `QUEUED` या `RETRYING` स्थिति में हो।
        delivered_at:
          type: string
          format: date-time
          nullable: true
          description: दूसरे पक्ष ने संदेश कब प्राप्त किया।
    TravelRuleDiscoveryStep:
      type: object
      description: >-
        आउटबाउंड ट्रांसफ़र के लिए Didit द्वारा चलाई गई प्रतिपक्ष खोज का एक चरण,
        जिस क्रम में इसे चलाया गया था। किसी रूट वाले VASP का नाम बताने वाला पहला
        चरण श्रृंखला को समाप्त कर देता है।
      properties:
        step:
          type: string
          enum:
            - internal_address_book
            - wallet_attribution
            - network_lookup
            - customer_hint
            - end_user
          description: >-
            `internal_address_book`: अन्य Didit ग्राहक जिसने गंतव्य वॉलेट पर
            नियंत्रण सिद्ध किया है। `wallet_attribution`: वॉलेट का ब्लॉकचेन
            एनालिटिक्स एट्रिब्यूशन। `network_lookup`: एक नेटवर्क जो यह बता सकता
            है कि किस VASP के पास यह पता है। `customer_hint`: VASP नाम, LEI या
            अधिकार क्षेत्र जो आपने `beneficiary_data` में भेजा है। `end_user`:
            वह प्रतिपक्ष जिसे अंतिम उपयोगकर्ता (या आपने) चुना है, या किसी एक को
            चुनने का अनुरोध।
        outcome:
          type: string
          enum:
            - match
            - miss
            - skipped
          description: >-
            `match`: चरण ने एक प्रतिपक्ष का नाम निर्दिष्ट किया। `miss`: यह चला
            और कोई नहीं मिला। `skipped`: यह नहीं चल सका, और `reason` बताता है कि
            क्यों।
        reason:
          type: string
          description: >-
            मशीन-पठनीय कारण, मिलान होने पर `""`: `no_proven_internal_wallet`,
            `attribution_disabled`, `already_attributed`,
            `no_attributed_entity`, `directory_match_no_route`,
            `gtr_address_lookup_runs_on_dispatch`, `no_membership`,
            `network_switched_off`, `no_network_address_lookup`,
            `no_directory_match`, `awaiting_end_user` या
            `picked_member_without_proven_wallet`।
        vasp:
          type: string
          format: uuid
          nullable: true
          description: >-
            डायरेक्टरी VASP जिसे चरण ने नामित किया है, यदि उसने किसी को नामित
            किया हो।
        rail:
          type: string
          nullable: true
          description: वह रेल जो उस प्रतिपक्ष तक पहुँचती है, जब चरण को कोई रेल मिल जाती है।
        at:
          type: string
          format: date-time
    TravelRuleNextAction:
      type: object
      description: >-
        एक क्रिया जो `COUNTERPARTY_VASP_NOT_FOUND` या
        `COUNTERPARTY_VASP_NOT_REACHABLE` ट्रांसफ़र को आगे बढ़ाती है। देखें
        [ट्रांसफ़र क्यों अटका हुआ
        है](/hi/transaction-monitoring/travel-rule#ट्रांसफ़र-क्यों-अटका-है)।
      properties:
        action:
          type: string
          enum:
            - select_counterparty_vasp
            - declare_self_hosted
            - add_vasp_hint
            - update_compliance_email
            - resend
          description: >-
            `select_counterparty_vasp`: अंतिम उपयोगकर्ता वॉलेट-स्वामित्व विजेट
            में गंतव्य VASP चुनता है, या आप `action=beneficiary_vasp` को PATCH
            करते हैं। `declare_self_hosted`: अंतिम उपयोगकर्ता विजेट में वॉलेट को
            स्व-होस्टेड घोषित करता है। `add_vasp_hint`: Didit को बताएं कि VASP
            नाम, LEI या Travel Address (उदाहरण के लिए गंतव्य वॉलेट की एड्रेस-बुक
            प्रविष्टि पर एक `travel_address`) के साथ प्रतिपक्ष कौन है, फिर पुनः
            भेजें। `update_compliance_email` और `resend`, `PATCH
            /v3/transactions/{transaction_id}/travel-rule/` के `action` मान हैं:
            प्रतिपक्ष का अनुपालन ईमेल फिर से दें, और रूटिंग दोबारा चलाएँ।
        url:
          type: string
          format: uri
          description: >-
            `select_counterparty_vasp` और `declare_self_hosted` पर
            वॉलेट-स्वामित्व विजेट लिंक, जब ट्रांसफर में एक खुला विजेट सत्र हो।
      required:
        - action
    TravelRuleChainDetails:
      type: object
      description: >-
        ट्रांसफ़र की चेन अपने दो वॉलेट को कैसे नाम देती है, जब ट्रांसफ़र केवल एक
        पते द्वारा दूसरे को भुगतान करने तक सीमित न हो। खाता-श्रृंखला ट्रांसफ़र
        (EVM, Solana, Tron) के लिए खाली (`{}`), जहाँ दोनों पते वॉलेट हैं। मिलान,
        रूटिंग और एड्रेस बुक वॉलेट्स को सबसे पहले यहाँ से पढ़ते हैं।
      properties:
        chain:
          type: string
          description: >-
            कैनोनिकल चेन, उदा. `BTC`, `XRP`, या Lightning ट्रांसफ़र के लिए
            `LIGHTNING`।
        shape:
          type: string
          enum:
            - utxo
            - memo
            - lightning
        originator:
          $ref: '#/components/schemas/TravelRuleChainSide'
        beneficiary:
          $ref: '#/components/schemas/TravelRuleChainSide'
        utxo:
          type: object
          description: >-
            एक UTXO ट्रांसफ़र पर: संग्रहीत इनपुट और आउटपुट (दशमलव स्ट्रिंग के
            रूप में राशियां) और Didit ने किन आउटपुट को क्या पढ़ा।
          properties:
            inputs:
              type: array
              items:
                $ref: '#/components/schemas/TravelRuleUtxoEntry'
            outputs:
              type: array
              items:
                $ref: '#/components/schemas/TravelRuleUtxoEntry'
            change_output_indexes:
              type: array
              items:
                type: integer
              description: आउटपुट जो इनपुट पते पर वापस भुगतान करते हैं।
            beneficiary_output_index:
              type: integer
              nullable: true
              description: >-
                वह आउटपुट जो लाभार्थी को भुगतान करता है; null जब किसी को अलग से
                पहचाना न जा सके।
        lightning:
          type: object
          description: >-
            Lightning ट्रांसफ़र पर: भुगतान अनुरोध क्या कहता है। हमेशा `kind`
            (`bolt11`, `bolt12_offer`, `bolt12_invoice`,
            `bolt12_invoice_request`, `lnurl`, `lightning_address`, `node_id` या
            `unknown`); एक BOLT11 इनवॉइस `network`, `payee_node_id`,
            `payment_hash`, `amount_msat`, `created_at` और `expires_at` जोड़ता
            है; एक BOLT12 स्ट्रिंग `blinded_paths` और `payee_node_id` जोड़ती है;
            एक LNURL या एक Lightning Address अपना `domain` जोड़ता है। नेटवर्क पर
            कुछ भी हल नहीं किया जाता है: अनुरोध केवल डिकोड किया जाता है।
          additionalProperties: true
        warnings:
          type: array
          items:
            type: string
            enum:
              - declared_originator_not_an_input
              - declared_beneficiary_not_an_output
              - beneficiary_output_ambiguous
              - beneficiary_output_amount_differs
          description: >-
            UTXO विसंगतियाँ जिन पर ध्यान देने की आवश्यकता है: घोषित प्रेषक कोई
            इनपुट नहीं है, घोषित लाभार्थी कोई आउटपुट नहीं है, किसी एकल लाभार्थी
            आउटपुट की अलग से पहचान नहीं की जा सकी, या लाभार्थी आउटपुट लेन-देन
            में बताई गई राशि से भिन्न राशि का भुगतान करता है।
        not_applicable_reason:
          type: string
          enum:
            - LIGHTNING_NO_PAYEE_IDENTIFIER
            - LIGHTNING_BOLT12_BLINDED_PAYEE
            - LIGHTNING_LNURL_NAMES_NO_PAYEE
          description: >-
            एक आउटबाउंड Lightning ट्रांसफ़र पर जिसका भुगतान अनुरोध किसी
            प्राप्तकर्ता का नाम नहीं देता है: ट्रांसफ़र `NOT_APPLICABLE` क्यों
            है। `LIGHTNING_NO_PAYEE_IDENTIFIER` (अनुरोध किसी प्राप्तकर्ता नोड का
            नाम नहीं देता है, या डिकोड नहीं किया जा सका),
            `LIGHTNING_BOLT12_BLINDED_PAYEE` (ऑफ़र अपने प्राप्तकर्ता को
            ब्लाइंडेड पाथ के पीछे छुपाता है), `LIGHTNING_LNURL_NAMES_NO_PAYEE`
            (एक LNURL किसी सेवा का नाम देता है, प्राप्तकर्ता का नहीं)। वही कोड
            ट्रांसफ़र की अंतिम `timeline` प्रविष्टि को खोलता है।
    TravelRuleChainSide:
      type: object
      description: एक पक्ष का वॉलेट जैसा कि Didit ने चेन डेटा से हल किया है।
      properties:
        address:
          type: string
          description: >-
            वॉलेट। मेमो नेटवर्क पर क्लासिक पता (एक XRP X-address अपने क्लासिक
            पते और उसके टैग में विभाजित होता है); Lightning पर प्राप्तकर्ता नोड
            id या Lightning Address।
        memo:
          type: string
          description: >-
            वॉलेट का हिस्सा बनने वाला डेस्टिनेशन टैग या मेमो; किसी के न होने पर
            `""`।
        source:
          type: string
          enum:
            - declared
            - x_address
            - largest_input
            - only_non_change_output
            - amount_match
            - invoice_payee
            - updated
          description: >-
            वॉलेट कहाँ से आया था: `declared` (आपका अनुरोध), `x_address` (XRP
            X-address से विभाजित), `largest_input` (UTXO इनपुट पता जिसने सबसे
            अधिक योगदान दिया), `only_non_change_output` (एकमात्र UTXO आउटपुट जो
            चेंज नहीं है), `amount_match` (ट्रांसफ़र राशि का भुगतान करने वाला एक
            UTXO आउटपुट), `invoice_payee` (Lightning भुगतान अनुरोध द्वारा
            निर्दिष्ट आदाता), `updated` (`action: update_originator_wallet` के
            साथ बाद में सेट किया गया)।
    TravelRuleUtxoEntry:
      type: object
      description: >-
        एक UTXO लेन-देन का एक इनपुट या आउटपुट, जैसा कि ब्लॉकचेन ने इसे रिकॉर्ड
        किया है।
      required:
        - address
      properties:
        address:
          type: string
          maxLength: 128
        amount:
          type: string
          nullable: true
          description: कॉइन की अपनी इकाई (BTC, satoshis नहीं) में दशमलव स्ट्रिंग। वैकल्पिक।
          example: '0.0125'
        txid:
          type: string
          maxLength: 128
          description: वैकल्पिक। वह लेन-देन जिसे कोई इनपुट खर्च करता है।
        vout:
          type: integer
          nullable: true
          minimum: 0
          description: वैकल्पिक। वह आउटपुट इंडेक्स जिसे कोई इनपुट खर्च करता है।
  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.