मुख्य सामग्री पर जाएं
POST
curl

स्व-होस्टेड वॉलेट

जब प्रतिपक्ष का वॉलेट स्व-होस्टेड घोषित किया गया हो (counterparty.payment_method.method_type: "unhosted_wallet"), तो लेन-देन UNCONFIRMED_OWNERSHIP में प्रतीक्षा करता है। confirmed: true के साथ इस endpoint को कॉल करने पर यह दर्ज होता है कि आपके ग्राहक ने सत्यापित कर लिया है कि उस वॉलेट को कौन नियंत्रित करता है, और लेन-देन पूरा हो जाता है (COMPLETED)। यह आउटबाउंड निकासी और इनबाउंड जमा, दोनों पर लागू होता है। जिस इनबाउंड जमा का ऑन-चेन हैश पहले से ज्ञात है, वह FINISHED की ओर आगे बढ़ता है। सत्यापित किया गया वॉलेट प्रतिपक्ष का होता है: आउटबाउंड निकासी का गंतव्य, या इनबाउंड जमा का स्रोत (प्रेषक का वॉलेट)। Didit इसे वॉलेट पता पुस्तिका में प्रतिपक्ष के नाम के साथ स्वामित्व-सत्यापित के रूप में जोड़ता है, इसलिए इसका मिलान प्रतिपक्ष के नाम से होता है (जमा के मामले में प्रेषक के नाम से)। यदि पता पुस्तिका में वह वॉलेट पहले से किसी अलग धारक के नाम से दर्ज है, तो लेन-देन COUNTERPARTY_MISMATCHED_DATA में चला जाता है। यदि लेन-देन में कोई प्रतिपक्ष वॉलेट नहीं दिया गया है, तो अनुरोध के मुख्य भाग में wallet_address पास करें। जब न लेन-देन और न ही अनुरोध कोई वॉलेट पता देता है, तो अनुरोध 400 के साथ अस्वीकार कर दिया जाता है। confirmed: false लेन-देन को अस्वीकार करता है (COUNTERPARTY_VASP_GENERAL_DECLINE)।

प्राधिकरण

x-api-key
string
header
आवश्यक

आपकी एप्लिकेशन की 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।

पथ पैरामीटर

transaction_id
string<uuid>
आवश्यक

इस ट्रांसफ़र के लिए आपके एप्लिकेशन द्वारा धारित लेन-देन का Didit-स्थायी UUID: INTERNAL-रेल ट्रांसफ़र पर लाभार्थी पक्ष का लेन-देन, या प्रतिपक्ष वॉलेट के स्व-होस्टेड घोषित होने पर आपके द्वारा बनाया गया लेन-देन (outbound या inbound)।

बॉडी

application/json
confirmed
boolean
आवश्यक

स्वामित्व की पुष्टि के लिए true, इसे अस्वीकार करने के लिए false।

wallet_address
string
डिफ़ॉल्ट:""

इनबाउंड TRP ट्रांसफ़र: वह भुगतान पता जो आपके स्वीकृत करने पर Didit प्रेषक VASP को लौटाता है। डिफ़ॉल्ट रूप से मिलान की गई एड्रेस बुक प्रविष्टि का पता, फिर beneficiary_data.wallet_address होता है। घोषित स्व-होस्टेड वॉलेट ट्रांसफ़र पर जिसमें किसी प्रतिपक्ष वॉलेट का नाम नहीं है, वह वॉलेट जिसके स्वामित्व को आपने सत्यापित किया है; इसके बिना अनुरोध 400 के साथ अस्वीकृत कर दिया जाता है। अन्य ट्रांसफ़र के लिए अनदेखा किया जाता है।

प्रतिक्रिया

अपडेट किया गया ट्रांसफ़र। इनबाउंड ट्रांसफ़र के लिए प्रतिपक्ष का originator_data/beneficiary_data स्वामित्व की पुष्टि होने तक मास्क रहता है (data_masked: true), फिर data_unmasked यह रिकॉर्ड करता है कि कब, क्यों और किसके द्वारा ऐसा किया गया।

स्वामित्व-पुष्टि और समाप्त/रद्द endpoints द्वारा लौटाया गया पूर्ण स्थानांतरण ऑब्जेक्ट। जब तक किसी इनबाउंड स्थानांतरण के वॉलेट स्वामित्व की पुष्टि नहीं हो जाती, तब तक प्रतिपक्ष का originator_data और beneficiary_data मास्क होकर वापस आते हैं (प्रत्येक शब्द का पहला अक्षर रखा जाता है; वॉलेट, चेन और VASP रूटिंग पठनीय रहते हैं) और data_masked true होता है।

uuid
string<uuid>
status
enum<string>
उपलब्ध विकल्प:
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
enum<string>
उपलब्ध विकल्प:
INBOUND,
OUTBOUND
rail
enum<string> | null

वह रेल जिसके माध्यम से ट्रांसफर रूट किया गया था, या null जब कोई रेल नहीं चुना गया था (उदाहरण के लिए थ्रेशोल्ड से नीचे, एक स्व-होस्टेड प्रतिपक्ष वॉलेट, जमा के बाद का पंजीकरण, या कोई पहुँच योग्य प्रतिपक्ष न होने पर)। INTERNAL का अर्थ है दोनों पक्ष Didit एप्लिकेशन हैं; EMAIL का अर्थ है कि प्रतिपक्ष तक ईमेल किए गए पिकअप लिंक द्वारा पहुँचा गया था। TEST_VASP का अर्थ है कि Didit Test VASP ने सैंडबॉक्स ट्रांसफर का उत्तर दिया। GTR, VERIFYVASP और SYGNA पर, Didit नेटवर्क के रिस्पॉन्स से या हर 5 मिनट में इसे पोल करके प्रतिपक्ष का उत्तर पढ़ता है। TRUST केवल भेजता है, इसलिए TRUST ट्रांसफर तब तक AWAITING_COUNTERPARTY बना रहता है जब तक कि इसकी समय-सीमा समाप्त न हो जाए। नेटवर्क रेल का उपयोग केवल तभी किया जाता है जब आपने उस नेटवर्क के लिए अपनी सदस्यता कनेक्ट की हो। इसे लेन-देन बनाने का अनुरोध रिस्पॉन्स लौटाने के बाद चुना जाता है, इसलिए यह उस रिस्पॉन्स में null होता है।

उपलब्ध विकल्प:
INTERNAL,
TRP,
GTR,
TRUST,
VERIFYVASP,
SYGNA,
EMAIL,
TEST_VASP,
null
protocol
string | null
ivms_version
string
उदाहरण:

"ivms101.2023"

required
boolean
ownership_confirmed
boolean | null
deadline_at
string<date-time> | null
timeline
object[]
counterparty_vasp
object | null
originator_data
object

प्रेषक पक्ष। इनबाउंड ट्रांसफ़र के लिए स्वामित्व की पुष्टि होने तक प्रतिपक्ष के मान छिपाए जाते हैं।

beneficiary_data
object

लाभार्थी पक्ष। इनबाउंड ट्रांसफ़र के लिए स्वामित्व की पुष्टि होने तक प्रतिपक्ष के मान छिपे रहते हैं।

name_match
object · null · null

नाम तुलना जिसने ट्रांसफर तय किया, या एक बार चलने तक null। जब तक पक्ष मास्क किए गए हों, और INTERNAL एक्सचेंज की अन्य ग्राहक की प्रति पर, transfer_name, compared_name, matched_names और mismatched_names छिपे होते हैं। score और matched असहमत हो सकते हैं: matched सख्ती का पालन करता है, score दोनों पूरे नामों की समानता है।

data_match
object | null

ट्रांस्फ़र के पक्ष डेटा की वॉलेट धारक के बारे में दूसरे पक्ष की जानकारी के साथ फ़ील्ड-दर-फ़ील्ड तुलना। यह फ़ील्ड और परिणामों को नाम देता है, मानों को कभी नहीं, ताकि प्रतिपक्ष का डेटा मास्क रहने पर भी यह पठनीय बना रहे। तुलना चलने तक Null।

mismatched_fields
string[]

data_match.mismatched_fields के लिए शॉर्टकट। कुछ भी भिन्न न होने पर खाली।

data_unmasked
object | null

उस क्षण का ऑडिट रिकॉर्ड जब प्रतिपक्ष का डेटा अनमास्क किया गया था। जब तक डेटा मास्क रहता है, और आउटबाउंड ट्रांसफ़र के लिए यह Null रहता है।

data_masked
boolean

सही जब इस रिस्पॉन्स में प्रतिपक्ष का व्यक्तिगत डेटा मास्क किया गया हो।

created_at
string<date-time>
delivery
object | null

इस स्थानांतरण द्वारा दूसरे पक्ष को भेजे जाने वाले नवीनतम संदेश की स्थिति। Null जब स्थानांतरण को कभी कोई संदेश भेजने की आवश्यकता नहीं थी (उदाहरण के लिए threshold_amount से कम, घोषित स्व-होस्टेड वॉलेट, या सनराइज़ पंजीकरण)।

discovery
object[]

Didit ने प्रतिपक्ष की खोज कैसे की, निष्पादित प्रत्येक चरण के लिए एक प्रविष्टि। जब कोई खोज नहीं चली, उदाहरण के लिए इनबाउंड ट्रांसफ़र पर, तो रिक्त।

reason
string

एक 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 जब ट्रेस कोई अन्य कारण नहीं देता है। पुनः भेजना ट्रांसफर को आगे बढ़ाता है, इसलिए कारण साफ़ हो जाता है। देखें ट्रांसफर क्यों अटका हुआ है।

next_actions
object[]

ट्रांसफ़र को क्या आगे बढ़ाता है; 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 प्रदान करता है।

chain_details
object

ट्रांसफ़र की चेन अपने दो वॉलेट को कैसे नाम देती है, जब ट्रांसफ़र केवल एक पते द्वारा दूसरे को भुगतान करने तक सीमित न हो। खाता-श्रृंखला ट्रांसफ़र (EVM, Solana, Tron) के लिए खाली ({}), जहाँ दोनों पते वॉलेट हैं। मिलान, रूटिंग और एड्रेस बुक वॉलेट्स को सबसे पहले यहाँ से पढ़ते हैं।

अंतिम संशोधन 7 नवंबर 2026