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
}Aprovar o rebutjar prova de cartera per captura, API
Aprova o rebutja amb Didit una prova de cartera per captura de pantalla. L’aprovació verifica la cartera i aplica la titularitat a la transferència vinculada.
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
}Autoritzacions
La clau d'API de la teva aplicació, des de Developers -> API keys a la Business Console. La clau primària té accés complet. Una clau amb nom pot tenir l'abast limitat: cap, lectura o escriptura per recurs, limitada a determinats fluxos de treball o a sessions aprovades, a una llista d'adreces IP i a una data de caducitat. 401 significa que la clau és incorrecta, revocada o caducada; 403 significa que no s'ha enviat cap clau, que la clau no té accés a aquest recurs o acció, o que la sol·licitud prové d'una adreça fora de la seva llista d'IP; 404 en una ruta de sessió significa que la sessió està fora dels fluxos de treball o estats de la clau. Una clau sense accés a fitxers multimèdia rep els URL d'imatge, vídeo i PDF com a null, i una clau sense permís d'escriptura de sessions rep els enllaços de sessió i els tokens com a null. Consulta https://docs.didit.me/console/api-keys.
Paràmetres de ruta
proof_id de la cua de revisió.
Cos
Resposta
El comprovant determinat.
SCREENSHOT PENDING, VERIFIED, REJECTED, EXPIRED Identificador canònic de la cadena, p. ex. ETH, BTC, SOL, TRX.
Indica si l'entrada de la llibreta d'adreces té la titularitat verificada, mitjançant aquesta prova o una altra.
La transacció per a la transferència de Travel Rule de la qual es va generar la sessió del widget. Null per a una sessió generada sense transaction_id.
Enllaç de durada limitada a la captura de pantalla pujada. Torna a llistar la cua per obtenir un enllaç actualitzat.
Quants fitxers ha pujat l'usuari final per a aquest comprovant.
REVIEW_REJECTED després d'un rebuig, OWNERSHIP_CHANGED quan la cartera ha canviat de titular o s'ha eliminat abans d'una decisió. Buit en cas contrari.
, 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 Quan l'usuari final va triar el mètode de captura de pantalla.
Qui ha tancat la prova: review: per a un revisor de la consola, review per a una decisió amb clau d'API, widget o sweeper quan Didit l'ha tancat automàticament. Buit mentre estigui en PENDING.
La nota enviada amb la decisió. Buida quan no n'hi ha cap.