curl -X POST https://verification.didit.me/v3/travel-rule/wallet-proofs/{proof_uuid}/decision/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"decision": "approve", "note": "Address matches the wallet app."}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.wallet_proofs.decide(
"11111111-2222-3333-4444-555555555555",
decision="approve",
note="Address matches the wallet app.",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.walletProofs.decide("11111111-2222-3333-4444-555555555555", {
decision: "approve",
note: "Address matches the wallet app.",
});
console.log(result);import me.didit.Didit;
import me.didit.types.TravelRuleWalletProofDecision;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().walletProofs().decide("11111111-2222-3333-4444-555555555555", TravelRuleWalletProofDecision.builder()
.decision(TravelRuleWalletProofDecision.Decision.of("approve"))
.note("Address matches the wallet app.")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->walletProofs->decide('11111111-2222-3333-4444-555555555555', [
'decision' => 'approve',
'note' => 'Address matches the wallet app.',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.wallet_proofs.decide(
"11111111-2222-3333-4444-555555555555",
decision: "approve",
note: "Address matches the wallet app."
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.TravelRule.WalletProofs.DecideAsync("11111111-2222-3333-4444-555555555555", new TravelRuleWalletProofDecision
{
Decision = "approve",
Note = "Address matches the wallet app.",
});
Console.WriteLine(JsonSerializer.Serialize(result));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/wallet-proofs/{proof_uuid}/decision/"
payload := strings.NewReader("{\n \"decision\": \"approve\",\n \"note\": \"Address matches the wallet app.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "SCREENSHOT",
"status": "PENDING",
"wallet_address": "<string>",
"chain": "<string>",
"holder_name": "<string>",
"is_ownership_verified": true,
"transaction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"file_name": "<string>",
"content_type": "<string>",
"screenshot_url": "<string>",
"attempts": 123,
"failure_reason": "",
"method_chosen_at": "2023-11-07T05:31:56Z",
"decided_at": "2023-11-07T05:31:56Z",
"decided_by": "<string>",
"review_note": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}{
"detail": "<string>",
"code": "",
"status": "PENDING",
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "MESSAGE_SIGNING",
"max_attempts": 123,
"attempts_used": 123,
"attempts_remaining": 123
}واجهة API للموافقة على إثبات المحفظة بلقطة شاشة أو رفضه
وافِق على إثبات ملكية المحفظة بلقطة شاشة أو ارفضه من قائمة الانتظار في Didit. تؤكد الموافقة المحفظة وتطبّق الملكية على التحويل المرتبط.
curl -X POST https://verification.didit.me/v3/travel-rule/wallet-proofs/{proof_uuid}/decision/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"decision": "approve", "note": "Address matches the wallet app."}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.wallet_proofs.decide(
"11111111-2222-3333-4444-555555555555",
decision="approve",
note="Address matches the wallet app.",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.walletProofs.decide("11111111-2222-3333-4444-555555555555", {
decision: "approve",
note: "Address matches the wallet app.",
});
console.log(result);import me.didit.Didit;
import me.didit.types.TravelRuleWalletProofDecision;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().walletProofs().decide("11111111-2222-3333-4444-555555555555", TravelRuleWalletProofDecision.builder()
.decision(TravelRuleWalletProofDecision.Decision.of("approve"))
.note("Address matches the wallet app.")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->walletProofs->decide('11111111-2222-3333-4444-555555555555', [
'decision' => 'approve',
'note' => 'Address matches the wallet app.',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.wallet_proofs.decide(
"11111111-2222-3333-4444-555555555555",
decision: "approve",
note: "Address matches the wallet app."
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.TravelRule.WalletProofs.DecideAsync("11111111-2222-3333-4444-555555555555", new TravelRuleWalletProofDecision
{
Decision = "approve",
Note = "Address matches the wallet app.",
});
Console.WriteLine(JsonSerializer.Serialize(result));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/wallet-proofs/{proof_uuid}/decision/"
payload := strings.NewReader("{\n \"decision\": \"approve\",\n \"note\": \"Address matches the wallet app.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "SCREENSHOT",
"status": "PENDING",
"wallet_address": "<string>",
"chain": "<string>",
"holder_name": "<string>",
"is_ownership_verified": true,
"transaction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"file_name": "<string>",
"content_type": "<string>",
"screenshot_url": "<string>",
"attempts": 123,
"failure_reason": "",
"method_chosen_at": "2023-11-07T05:31:56Z",
"decided_at": "2023-11-07T05:31:56Z",
"decided_by": "<string>",
"review_note": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}{
"detail": "<string>",
"code": "",
"status": "PENDING",
"proof_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"method": "MESSAGE_SIGNING",
"max_attempts": 123,
"attempts_used": 123,
"attempts_remaining": 123
}التفويضات
مفتاح API الخاص بتطبيقك، من Developers -> API keys في Business Console. يمتلك المفتاح الأساسي وصولاً كاملاً. يمكن تحديد نطاق المفتاح المسمى: لا شيء، أو قراءة، أو كتابة لكل مورد، ومحدوداً ببعض مسارات العمل أو بالجلسات المقبولة، وبقائمة من عناوين IP، وبتاريخ انتهاء الصلاحية. يشير 401 إلى أن المفتاح غير صحيح أو ملغى أو منتهي الصلاحية؛ ويشير 403 إلى أنه لم يتم إرسال أي مفتاح، أو أن المفتاح ليس لديه حق الوصول إلى هذا المورد أو الإجراء، أو أن الطلب جاء من عنوان خارج قائمة عناوين IP الخاصة به؛ ويشير 404 في مسار جلسة إلى أن الجلسة خارج مسارات العمل أو الحالات الخاصة بالمفتاح. يتلقى المفتاح الذي لا يمتلك حق الوصول إلى الوسائط عناوين URL للصور ومقاطع الفيديو وملفات PDF كـ null، ويتلقى المفتاح الذي لا يمتلك إذن كتابة للجلسات روابط الجلسة وtoken كـ null. راجع https://docs.didit.me/console/api-keys.
معلمات المسار
معرّف proof_id من قائمة انتظار المراجعة.
الجسم
الاستجابة
الإثبات الذي تم البت فيه.
SCREENSHOT PENDING, VERIFIED, REJECTED, EXPIRED معرّف السلسلة القياسي، على سبيل المثال ETH، BTC، SOL، TRX.
ما إذا كان إدخال دفتر العناوين قد تم التحقق من ملكيته، بواسطة هذا الإثبات أو إثبات آخر.
المعاملة التي تم إنشاء جلسة الواجهة من أجل تحويل Travel Rule الخاص بها. Null لجلسة أُنشئت بدون transaction_id.
رابط محدد الصلاحية زمنيًا للقطة الشاشة المرفوعة. اطلب قائمة الانتظار مجددًا للحصول على رابط جديد.
عدد الملفات التي رفعها المستخدم النهائي لهذا الإثبات.
REVIEW_REJECTED بعد الرفض، وOWNERSHIP_CHANGED عندما يتغير مالك المحفظة أو تُحذف قبل اتخاذ القرار. فارغ في الحالات الأخرى.
, SIGNATURE_INVALID, SIGNATURE_UNSUPPORTED_SCHEME, DEPOSIT_NOT_FOUND, DEPOSIT_UNCONFIRMED, DEPOSIT_LOOKUP_FAILED, DEPOSIT_MISMATCH, DEPOSIT_STALE, TXID_REUSED, CHAIN_UNSUPPORTED, WINDOW_EXPIRED, OWNERSHIP_CHANGED, METHOD_SWITCHED, REVIEW_REJECTED, ABANDONED وقت اختيار المستخدم النهائي لطريقة لقطة الشاشة.
من أغلق الإثبات: review: لمراجع لوحة التحكم، وreview لقرار بمفتاح API، وwidget أو sweeper عندما تغلقه Didit تلقائياً. يكون فارغاً أثناء حالة PENDING.
الملاحظة المُرسلة مع القرار. تكون فارغة في حال عدم وجود أي ملاحظة.