शुरू करने से पहले
- किसी सैंडबॉक्स एप्लिकेशन की API कुंजी का उपयोग करें। लाइव एप्लिकेशन टेस्ट VASP तक कभी नहीं पहुँचते।
- कानूनी नाम के साथ Travel Rule चालू करें:
- वैकल्पिक रूप से किसी webhook गंतव्य को
travel_rule.status.updatedके लिए सब्सक्राइब करें। सैंडबॉक्स इसे"environment": "sandbox"चिह्नित करके भेजता है।
Didit Test VASP
GET /v1/sandbox/scenarios/ टेस्ट VASP की प्रोफ़ाइल और उसके travel_rule ऑब्जेक्ट में मौजूद हर परिदृश्य लौटाता है, ताकि आपके टेस्ट ट्रिगर मानों को हार्ड-कोड करने के बजाय उन्हें पढ़ सकें:
हर मान टेस्ट डेटा है। टेस्ट VASP किसी भी Travel Rule नेटवर्क का सदस्य नहीं है, और सैंडबॉक्स का कोई भी परिणाम यह नहीं दिखाता कि किसी असली प्रतिपक्ष या नेटवर्क तक पहुँचा जा सकता है।
आउटबाउंड परिदृश्य
सैंडबॉक्स एप्लिकेशन का हर आउटबाउंडtravelRule ट्रांसफ़र, जिसे आदान-प्रदान की ज़रूरत है, टेस्ट VASP के पास जाता है। परिणाम लाभार्थी वॉलेट पते से चुनें (केस मायने नहीं रखता), या Didit Test VASP <suffix> के रूप वाले लाभार्थी नाम से। दोनों सेट होने पर वॉलेट को प्राथमिकता मिलती है। दोनों में से कुछ भी न हो, या तालिका में सूचीबद्ध न होने वाला प्रत्यय हो, तो ट्रांसफ़र पूरा हो जाता है (accept)।
जिस ट्रांसफ़र को आदान-प्रदान की ज़रूरत नहीं, वह कभी टेस्ट VASP तक नहीं पहुँचता: आपके threshold_amount से कम राशि वाला, आपके उपयोगकर्ता के अपने सत्यापित वॉलेट पर जाने वाला, और वह जिसका प्रतिपक्ष वॉलेट आपने स्व-होस्टेड घोषित किया है। आप या आपके अंतिम उपयोगकर्ता ने डायरेक्टरी से हाथ से जो प्रतिपक्ष VASP चुना है, उसे उन्हीं रूटों से आंका जाता है जिनसे एक लाइव एप्लिकेशन इसे आंकता है: जब उसकी प्रविष्टि में कोई रूट हो (एक सत्यापित TRP endpoint, एक नेटवर्क जिस पर आपका एप्लिकेशन भेजता है, या एक अनुपालन संपर्क), तो ट्रांसफ़र टेस्ट VASP के पास जाता है। जब कोई रूट न हो, तो ट्रांसफ़र COUNTERPARTY_VASP_NOT_FOUND पर समाप्त होता है, जैसा लाइव एप्लिकेशन पर होता।
rail TEST_VASP है, और ट्रांसफ़र सूची में लाभार्थी VASP के रूप में Didit Test VASP दिखता है। इसे travel_rule.status.updated webhook में ट्रैक करें, या GET /v3/transactions/{transaction_id}/ पढ़ें।
name_mismatchवह लाभार्थी नाम, जो आपने भेजा, उसकी तुलना टेस्ट VASP के उत्तर में मिले धारक नाम से करता है। यह तुलना लाभार्थी की इकाई के प्रकार के लिए आपके नाम नियम पर होती है (matching_rules.individual.nameयाmatching_rules.company.name, जो तब तकname_matching_strictnessका पालन करते हैं जब तक आप उन्हें सेट न करें)। ट्रांसफ़र और जिस टाइमलाइन प्रविष्टि ने उसका निर्णय लिया, उनमेंname_match(compared_with: "counterparty_vasp"के साथ) औरmismatched_fields: ["name"]के साथdata_matchहोता है।not_reachableट्रांसफ़र को पुनः प्रयास के दौरानAWAITING_COUNTERPARTYपर रखता है, जिसमेंdelivery.statusRETRYINGऔरlast_errortest VASP is not answeringहोता है। फिर यह उसेCOUNTERPARTY_VASP_NOT_REACHABLEबना देता है। इसे फिर से चलाने के लिए बाद में{"action": "resend"}भेजें।self_hostedटेस्ट VASP से जवाब दिलवाता है कि वॉलेट स्व-होस्टेड है। प्रमाण वॉलेट स्वामित्व विजेट से दर्ज करें (जोauto_wallet_verificationचालू होने पर आपके लिए बनता है), याPOST .../travel-rule/ownership/से{"confirmed": true}के साथ। वॉलेट लाभार्थी के नाम से आपकी एड्रेस बुक में जुड़ जाता है, और नाम मिलान ट्रांसफ़र का निर्णय करता है। मिलान होने पर ट्रांसफ़र पूरा हो जाता है और वॉलेट सत्यापित चिह्नित होता है।{"confirmed": false}इसे अस्वीकार करता है।
टेस्ट VASP से इनबाउंड ट्रांसफ़र
प्राप्त करने वाली ओर का परीक्षण करने के लिए, टेस्ट VASP सेPOST /v3/travel-rule/test-vasp/inbound/ कॉल करके आपको एक ट्रांसफ़र भेजने को कहें। अपने एप्लिकेशन के किसी एक एड्रेस-बुक वॉलेट का नाम दें: ट्रांसफ़र का फ़ैसला उसी इनबाउंड पथ से होता है जिससे वास्तविक ट्रांसफ़र का फ़ैसला होता है, यानी आपकी एड्रेस बुक, आपके स्वामित्व मोड और आपके नाम नियमों के आधार पर।
201 रिस्पॉन्स में transaction_id, txn_id, scenario, travel_rule_status, detail, test_vasp: true और travel_rule ट्रांसफ़र होता है। लाइव एप्लिकेशन को 400 मिलता है ("The Didit Test VASP is only available on sandbox applications."), अन्य scenario मान पर भी 400 मिलता है, और जिस एप्लिकेशन पर Travel Rule बंद है उसे 409 मिलता है।
प्रतीक्षा कर रहे ट्रांसफ़र का फ़ैसला
POST .../travel-rule/ownership/ से करें, ठीक वैसे जैसे एक वास्तविक ट्रांसफ़र का करते हैं: {"confirmed": true} उसे पूरा करता है और {"confirmed": false} उसे अस्वीकार करता है।
POST /v3/transactions/ से आपके द्वारा स्वयं रिपोर्ट किया गया जमा वह नहीं है जो टेस्ट VASP ने भेजा हो: वह अपने प्रेषक VASP के उत्तर की प्रतीक्षा में AWAITING_COUNTERPARTY रहता है, और उसकी टाइमलाइन ऊपर दिए गए एंडपॉइंट का नाम लेती है। confirmation_timeout_hours के बाद समाप्त होने तक यह कोई webhook नहीं भेजता। POST /v3/travel-rule/inbound/ अब भी डिपॉज़िट के बाद के पंजीकरण का आपकी एड्रेस बुक के विरुद्ध निपटारा करता है, जैसा एक लाइव एप्लिकेशन पर होता है।
सैंडबॉक्स में webhook
travel_rule.status.updated सैंडबॉक्स एप्लिकेशनों के लिए हर स्थिति परिवर्तन पर "environment": "sandbox" के साथ ट्रिगर होता है। जिस ट्रांसफ़र का उत्तर टेस्ट VASP ने दिया हो, उसमें rail: "TEST_VASP", test_vasp: true और test_vasp_scenario भी होते हैं। सैंडबॉक्स का बाकी व्यवहार वैसा ही रहता है जैसा सैंडबॉक्स में लेन-देन निगरानी में बताया गया है: नियमों का मूल्यांकन नहीं होता, transaction.created और transaction.status.updated नहीं भेजे जाते, और कोई बिलिंग नहीं होती।
सैंडबॉक्स क्या सिद्ध नहीं करता
- कि कोई वास्तविक प्रतिपक्ष, कोई नेटवर्क सदस्यता, या Didit का सार्वजनिक TRP होस्ट काम करता है। इनमें से किसी से संपर्क नहीं किया जाता।
- कि आपके नेटवर्क क्रेडेंशियल वैध हैं। कनेक्टेड सदस्यता उसके पहले लाइव आदान-प्रदान से सिद्ध होती है।
- वास्तविक VASP के डायरेक्टरी रूट। सैंडबॉक्स एप्लिकेशन पर हर रूट
reason: sandbox_applicationके साथunavailableदिखता है, और हर पंक्तिreachable: falseदिखाती है।