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 para aprobar o rechazar prueba de wallet con captura
Aprueba o rechaza en Didit una prueba de propiedad de wallet por captura. Al aprobarla, se verifica la wallet y se aplica a la transferencia.
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
}Autorizaciones
La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.
Parámetros de ruta
proof_id de la cola de revisión.
Cuerpo
Respuesta
La prueba sobre la que se tomó la decisión.
SCREENSHOT PENDING, VERIFIED, REJECTED, EXPIRED Identificador canónico de la cadena, p. ej., ETH, BTC, SOL, TRX.
Si la entrada de la libreta de direcciones tiene la propiedad verificada, mediante esta prueba u otra.
La transacción para cuya transferencia de Travel Rule se creó la sesión del widget. Es null para una sesión creada sin transaction_id.
Enlace de validez limitada a la captura de pantalla subida. Vuelve a listar la cola para obtener un enlace nuevo.
Cuántos archivos subió el usuario final para esta prueba.
REVIEW_REJECTED tras un rechazo, OWNERSHIP_CHANGED cuando la wallet cambió de titular o se eliminó antes de una decisión. Vacío en caso contrario.
, 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 Cuándo el usuario final eligió el método de captura de pantalla.
Quién cerró la prueba: review: para un revisor de la consola, review para una decisión tomada con una clave de API, widget o sweeper cuando Didit la cerró automáticamente. Vacío mientras está en PENDING.
La nota enviada con la decisión. Vacía cuando no hay ninguna.