curl -X POST https://verification.didit.me/v3/travel-rule/counterparty-contacts/ \
-H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"counterparty": "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91", "email": "compliance@counterparty.example", "name": "Compliance desk"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.counterparty_contacts.create(
counterparty="0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
email="compliance@counterparty.example",
name="Compliance desk",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.counterpartyContacts.create({
counterparty: "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
email: "compliance@counterparty.example",
name: "Compliance desk",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.TravelRule.CounterpartyContacts.Create(ctx, didit.TravelRuleCounterpartyContactCreate{
Counterparty: "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
Email: "compliance@counterparty.example",
Name: didit.String("Compliance desk"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.TravelRuleCounterpartyContactCreate;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().counterpartyContacts().create(TravelRuleCounterpartyContactCreate.builder()
.counterparty("0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91")
.email("compliance@counterparty.example")
.name("Compliance desk")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->counterpartyContacts->create([
'counterparty' => '0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91',
'email' => 'compliance@counterparty.example',
'name' => 'Compliance desk',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.counterparty_contacts.create(
counterparty: "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
email: "compliance@counterparty.example",
name: "Compliance desk"
)
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.CounterpartyContacts.CreateAsync(new TravelRuleCounterpartyContactCreate
{
Counterparty = "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
Email = "compliance@counterparty.example",
Name = "Compliance desk",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "6c1f9b8e-2d4a-4f7e-8b3c-5a9d0e1f2a3b",
"counterparty": "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
"counterparty_name": "Example Counterparty VASP",
"email": "compliance@counterparty.example",
"name": "Compliance desk",
"source": "application",
"scope": "application",
"created_by": "",
"verified_at": null,
"is_invalid": false,
"invalid_reason": "",
"invalid_detail": "",
"invalid_at": null,
"created_at": "2026-10-19T09:00:00Z"
}{
"counterparty": [
"No directory entry with this id."
]
}API de contato de contraparte - Travel Rule por e-mail
Com a API da Didit, adicione um endereço de conformidade privado para uma VASP contraparte. O canal de e-mail da Travel Rule prioriza seus contatos.
curl -X POST https://verification.didit.me/v3/travel-rule/counterparty-contacts/ \
-H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"counterparty": "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91", "email": "compliance@counterparty.example", "name": "Compliance desk"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.counterparty_contacts.create(
counterparty="0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
email="compliance@counterparty.example",
name="Compliance desk",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.counterpartyContacts.create({
counterparty: "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
email: "compliance@counterparty.example",
name: "Compliance desk",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.TravelRule.CounterpartyContacts.Create(ctx, didit.TravelRuleCounterpartyContactCreate{
Counterparty: "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
Email: "compliance@counterparty.example",
Name: didit.String("Compliance desk"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.TravelRuleCounterpartyContactCreate;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().counterpartyContacts().create(TravelRuleCounterpartyContactCreate.builder()
.counterparty("0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91")
.email("compliance@counterparty.example")
.name("Compliance desk")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->counterpartyContacts->create([
'counterparty' => '0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91',
'email' => 'compliance@counterparty.example',
'name' => 'Compliance desk',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.counterparty_contacts.create(
counterparty: "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
email: "compliance@counterparty.example",
name: "Compliance desk"
)
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.CounterpartyContacts.CreateAsync(new TravelRuleCounterpartyContactCreate
{
Counterparty = "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
Email = "compliance@counterparty.example",
Name = "Compliance desk",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "6c1f9b8e-2d4a-4f7e-8b3c-5a9d0e1f2a3b",
"counterparty": "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
"counterparty_name": "Example Counterparty VASP",
"email": "compliance@counterparty.example",
"name": "Compliance desk",
"source": "application",
"scope": "application",
"created_by": "",
"verified_at": null,
"is_invalid": false,
"invalid_reason": "",
"invalid_detail": "",
"invalid_at": null,
"created_at": "2026-10-19T09:00:00Z"
}{
"counterparty": [
"No directory entry with this id."
]
}Autorizações
Chave de API da sua aplicação, em Developers -> API keys no Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está errada, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que a requisição veio de um endereço fora da sua lista de IPs; 404 em uma rota de sessão significa que a sessão está fora dos fluxos ou status da chave. Uma chave sem acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave sem permissão de escrita em sessões recebe links e tokens de sessão como null. Consulte https://docs.didit.me/console/api-keys.
Corpo
Resposta
O contato foi adicionado.
Um endereço de conformidade para o qual o canal EMAIL escreve, referente a uma entrada do diretório.
O id da entrada do diretório, conforme exibido por GET /v3/travel-rule/vasps/.
Rótulo opcional, por exemplo o nome da equipe.
staff: curado pela Didit. learned: um endereço em um dos próprios domínios do VASP que respondeu a uma requisição pelo link de resposta. application: adicionado pela sua aplicação.
staff, application, learned platform: curado pela Didit ou aprendido a partir de uma resposta verificada, usado para todos os clientes da Didit, somente leitura para você. application: privado da sua aplicação.
platform, application Vazio para contatos da plataforma e para contatos adicionados por uma chave de API.
Quando este endereço respondeu pela última vez a uma requisição por meio do seu link de resposta.
true depois que o endereço gerou bounce ou reclamação; o canal EMAIL o ignora.
, hard_bounce, soft_bounce, spam_complaint, suppressed O motivo informado pelo servidor de e-mail destinatário, quando houver.