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
}Approuver ou rejeter une preuve de portefeuille (API)
Approuvez ou rejetez avec Didit une preuve de portefeuille par capture d’écran. L’approbation vérifie le portefeuille et l’associe au transfert.
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
}Autorisations
La clé API de votre application, issue de Développeurs -> Clés API dans la Business Console. La clé principale dispose d'un accès complet. Une clé nommée peut être restreinte : aucun, lecture ou écriture par ressource, limitée à certains workflows ou aux sessions approuvées, à une liste d'adresses IP et à une date d'expiration. 401 signifie que la clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a été envoyée, que la clé n'a pas accès à cette ressource ou action, ou que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur une route de session signifie que la session est hors des workflows ou des statuts de la clé. Une clé sans accès aux médias reçoit les URL d'images, de vidéos et de PDF à null, et une clé sans accès en écriture aux sessions reçoit les liens et tokens de session à null. Voir https://docs.didit.me/console/api-keys.
Paramètres de chemin
proof_id issu de la file d'attente d'examen.
Corps
Réponse
Le justificatif faisant l'objet de la décision.
SCREENSHOT PENDING, VERIFIED, REJECTED, EXPIRED Identifiant canonique de la blockchain, par ex. ETH, BTC, SOL, TRX.
Indique si l'entrée du carnet d'adresses a fait l'objet d'une vérification de propriété, par cette preuve ou par une autre.
La transaction associée au transfert Travel Rule pour lequel la session de widget a été créée. Null pour une session créée sans transaction_id.
Lien temporaire vers la capture d'écran téléchargée. Listez à nouveau la file d'attente pour obtenir un lien actualisé.
Nombre de fichiers que l'utilisateur final a téléchargés pour ce justificatif.
REVIEW_REJECTED après un refus, OWNERSHIP_CHANGED lorsque le portefeuille a changé de titulaire ou a été supprimé avant une décision. Vide dans les autres cas.
, 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 Date et heure auxquelles l'utilisateur final a choisi la méthode par capture d'écran.
Qui a clôturé la preuve : review: pour un réviseur de la console, review pour une décision prise par clé API, widget ou sweeper lorsque Didit l'a clôturée automatiquement. Vide tant que le statut est PENDING.
La note envoyée avec la décision. Vide s'il n'y en a aucune.