curl
curl https://verification.didit.me/v3/travel-rule/pickup/{token}/import requests
url = "https://verification.didit.me/v3/travel-rule/pickup/{token}/"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://verification.didit.me/v3/travel-rule/pickup/{token}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/travel-rule/pickup/{token}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/pickup/{token}/"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/travel-rule/pickup/{token}/")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/pickup/{token}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"reference": "33333333-4444-5555-6666-777777777777",
"requested_at": "2026-07-05T10:00:00Z",
"originator_vasp_name": "Origin CASP SL",
"originator_vasp_lei": "529900EXAMPLEORIG001",
"recipient_vasp_name": "Example Counterparty VASP",
"language": "es",
"amount": "0.250000000000000000",
"currency": "ETH",
"fiat_amount": "",
"fiat_currency": "",
"chain": "ETH",
"beneficiary_wallet": "0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb",
"status": "AWAITING_COUNTERPARTY",
"ivms_version": "ivms101.2023",
"deadline_at": "2026-07-07T10:00:00Z",
"reminders_sent": 0,
"contact": "",
"decline_reasons": [
"data_mismatch",
"not_our_customer",
"wallet_not_hosted",
"sanctions",
"risk_appetite",
"jurisdiction",
"insufficient_data",
"other"
],
"join_invitation": {
"eligible": false,
"url": ""
},
"originator_data": {
"name": "Jane Doe",
"wallet_address": "0x77ccff0cc624a53cd8b8d8703ced826710211ec7"
},
"beneficiary_data": {
"name": "Ana Diaz",
"wallet_address": "0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb"
},
"ivms_request": {
"originator": {
"originatorPersons": [
{
"naturalPerson": {
"name": {
"nameIdentifier": [
{
"primaryIdentifier": "Doe",
"secondaryIdentifier": "Jane",
"nameIdentifierType": "LEGL"
}
]
}
}
}
],
"accountNumber": [
"0x77ccff0cc624a53cd8b8d8703ced826710211ec7"
]
},
"beneficiary": {
"beneficiaryPersons": [
{
"naturalPerson": {
"name": {
"nameIdentifier": [
{
"primaryIdentifier": "Diaz",
"secondaryIdentifier": "Ana",
"nameIdentifierType": "LEGL"
}
]
}
}
}
],
"accountNumber": [
"0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb"
]
}
},
"data_masked": false
}Travel Rule
Travel Rule 邮件取件信息 API
Didit 管理 API:通过一次性邮件取件链接读取待处理的 Travel Rule 信息交换,即 EMAIL 备用通道的交易对手取件端。
GET
/
v3
/
travel-rule
/
pickup
/
{token}
/
curl
curl https://verification.didit.me/v3/travel-rule/pickup/{token}/import requests
url = "https://verification.didit.me/v3/travel-rule/pickup/{token}/"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://verification.didit.me/v3/travel-rule/pickup/{token}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/travel-rule/pickup/{token}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/pickup/{token}/"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/travel-rule/pickup/{token}/")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/pickup/{token}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"reference": "33333333-4444-5555-6666-777777777777",
"requested_at": "2026-07-05T10:00:00Z",
"originator_vasp_name": "Origin CASP SL",
"originator_vasp_lei": "529900EXAMPLEORIG001",
"recipient_vasp_name": "Example Counterparty VASP",
"language": "es",
"amount": "0.250000000000000000",
"currency": "ETH",
"fiat_amount": "",
"fiat_currency": "",
"chain": "ETH",
"beneficiary_wallet": "0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb",
"status": "AWAITING_COUNTERPARTY",
"ivms_version": "ivms101.2023",
"deadline_at": "2026-07-07T10:00:00Z",
"reminders_sent": 0,
"contact": "",
"decline_reasons": [
"data_mismatch",
"not_our_customer",
"wallet_not_hosted",
"sanctions",
"risk_appetite",
"jurisdiction",
"insufficient_data",
"other"
],
"join_invitation": {
"eligible": false,
"url": ""
},
"originator_data": {
"name": "Jane Doe",
"wallet_address": "0x77ccff0cc624a53cd8b8d8703ced826710211ec7"
},
"beneficiary_data": {
"name": "Ana Diaz",
"wallet_address": "0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb"
},
"ivms_request": {
"originator": {
"originatorPersons": [
{
"naturalPerson": {
"name": {
"nameIdentifier": [
{
"primaryIdentifier": "Doe",
"secondaryIdentifier": "Jane",
"nameIdentifierType": "LEGL"
}
]
}
}
}
],
"accountNumber": [
"0x77ccff0cc624a53cd8b8d8703ced826710211ec7"
]
},
"beneficiary": {
"beneficiaryPersons": [
{
"naturalPerson": {
"name": {
"nameIdentifier": [
{
"primaryIdentifier": "Diaz",
"secondaryIdentifier": "Ana",
"nameIdentifierType": "LEGL"
}
]
}
}
}
],
"accountNumber": [
"0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb"
]
}
},
"data_masked": false
}路径参数
查询参数
链接的 ?contact= 值,即链接发送到的联系人。原样回显为 contact;未经核验。
响应
自提预览。
通过电子邮件发送的提取链接背后的待处理兑换,与交易对手响应页面显示的一致。
转账的 uuid,与发送方 VASP 控制台显示的一致。
请求所发往的交易对手 VASP。
请求邮件和响应页面所使用的语言,根据交易对手所在的司法管辖区确定。
发送方给出的折算价值,或为空。
链接停止响应的时间。
回显链接中的 ?contact= 值;如果链接中没有该参数,则为空。
decline_reason 接受的值。
可用选项:
data_mismatch, not_our_customer, wallet_not_hosted, sanctions, risk_appetite, jurisdiction, insufficient_data, other 交易对手是否持有免费加入 Didit 的有效邀请。邀请链接仅通过发送给受邀地址的电子邮件传递,因此此处的 url 为空。
Show child attributes
Show child attributes
发送方 VASP 共享的汇款人字段(data_sharing_fields)。姓名和钱包始终包含在内。
表现为 IVMS 101 对象的相同请求。当 data_masked 为 true 时省略。
在此 endpoint 上始终为 false:邮件请求为出站请求,且发送方自身的用户绝不会被遮掩。
最后修改于 2026年11月7日