curl -X POST 'https://verification.didit.me/v3/transactions/{transaction_id}/travel-rule/user-link/' \
-H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"channel": "link"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.transactions.travel_rule.create_user_link(
"11111111-2222-3333-4444-555555555555",
channel="link",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.transactions.travelRule.createUserLink("11111111-2222-3333-4444-555555555555", {
channel: "link",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Transactions.TravelRule.CreateUserLink(ctx, "11111111-2222-3333-4444-555555555555", didit.TravelRuleUserLinkRequest{
Channel: didit.Some(didit.TravelRuleUserLinkRequestChannel("link")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.TravelRuleUserLinkRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.transactions().travelRule().createUserLink("11111111-2222-3333-4444-555555555555", TravelRuleUserLinkRequest.builder()
.channel(TravelRuleUserLinkRequest.Channel.of("link"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->transactions->travelRule->createUserLink('11111111-2222-3333-4444-555555555555', [
'channel' => 'link',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.transactions.travel_rule.create_user_link(
"11111111-2222-3333-4444-555555555555",
channel: "link"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Transactions.TravelRule.CreateUserLinkAsync("11111111-2222-3333-4444-555555555555", new TravelRuleUserLinkRequest
{
Channel = new TravelRuleUserLinkRequestChannel("link"),
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"end_user_link": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"emailed_to": "<string>",
"email_available": true
}{
"detail": "This end user has no email on their Didit record. Copy the link instead.",
"code": "end_user_email_missing"
}Créer ou envoyer un lien Travel Rule pour l'utilisateur final
Créez un lien Travel Rule pour l’utilisateur final ou envoyez-le à l’adresse enregistrée avec Didit : expiration, révocation et livraison.
curl -X POST 'https://verification.didit.me/v3/transactions/{transaction_id}/travel-rule/user-link/' \
-H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"channel": "link"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.transactions.travel_rule.create_user_link(
"11111111-2222-3333-4444-555555555555",
channel="link",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.transactions.travelRule.createUserLink("11111111-2222-3333-4444-555555555555", {
channel: "link",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Transactions.TravelRule.CreateUserLink(ctx, "11111111-2222-3333-4444-555555555555", didit.TravelRuleUserLinkRequest{
Channel: didit.Some(didit.TravelRuleUserLinkRequestChannel("link")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.TravelRuleUserLinkRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.transactions().travelRule().createUserLink("11111111-2222-3333-4444-555555555555", TravelRuleUserLinkRequest.builder()
.channel(TravelRuleUserLinkRequest.Channel.of("link"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->transactions->travelRule->createUserLink('11111111-2222-3333-4444-555555555555', [
'channel' => 'link',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.transactions.travel_rule.create_user_link(
"11111111-2222-3333-4444-555555555555",
channel: "link"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Transactions.TravelRule.CreateUserLinkAsync("11111111-2222-3333-4444-555555555555", new TravelRuleUserLinkRequest
{
Channel = new TravelRuleUserLinkRequestChannel("link"),
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"end_user_link": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"emailed_to": "<string>",
"email_available": true
}{
"detail": "This end user has no email on their Didit record. Copy the link instead.",
"code": "end_user_email_missing"
}{"channel": "link"} pour copier un lien, ou {"channel": "email"} pour tenter aussi l’envoi par e-mail. Si channel est omis, la valeur par défaut est link. L’e-mail utilise l’adresse enregistrée de l’utilisateur final dans Didit et la langue de sa session de vérification lorsqu’elle est disponible. Vous ne pouvez pas indiquer un destinataire arbitraire.
L’API exige un accès en écriture aux transactions ainsi qu’un transfert sortant dans l’état AWAITING_COUNTERPARTY, COUNTERPARTY_VASP_NOT_FOUND, COUNTERPARTY_VASP_NOT_REACHABLE, UNCONFIRMED_OWNERSHIP ou ON_HOLD. Dans les autres états, elle renvoie 409. Si la transaction est inconnue ou si le transfert est absent, elle renvoie 404.
La réponse contient end_user_link, expires_at, emailed_to et email_available. Un nouveau lien révoque les liens utilisateur final ouverts précédemment pour ce transfert. Ne le partagez qu’avec l’utilisateur final concerné.
Lorsqu’aucune adresse e-mail enregistrée n’existe, channel: email renvoie 409 avec code: end_user_email_missing ; demandez plutôt channel: link. Si l’envoi échoue, l’API renvoie tout de même un lien utilisable, avec un emailed_to vide. email_available indique qu’une adresse existe, et non que la livraison a réussi.
Pour le choix explicite de l’utilisateur lors de la création, consultez Créer une transaction et le guide Travel Rule. Pour les actions sur un transfert, consultez Mettre à jour un transfert.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
UUID de transaction stable attribué par Didit propriétaire du transfert.
Corps
link renvoie un nouveau lien ; email tente aussi de l'envoyer à l'adresse e-mail de la fiche Didit de l'utilisateur final.
link, email Réponse
Réponse réussie.
Nouveau lien pour l'utilisateur final. Les liens ouverts précédemment pour ce transfert sont révoqués.
Date d'expiration du lien.
Destinataire lorsque l'envoi a réussi, sinon une chaîne vide. Un échec d'envoi renvoie tout de même un lien utilisable.
Indique si l'utilisateur final a une adresse e-mail dans son enregistrement Didit.