Python
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.unmatched_deposits.match(
"11111111-2222-3333-4444-555555555555",
transaction_id="e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.unmatchedDeposits.match("11111111-2222-3333-4444-555555555555", {
transaction_id: "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.TravelRule.UnmatchedDeposits.Match(ctx, "11111111-2222-3333-4444-555555555555", didit.TravelRuleManualMatchRequest{
TransactionID: "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.TravelRuleManualMatchRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().unmatchedDeposits().match("11111111-2222-3333-4444-555555555555", TravelRuleManualMatchRequest.builder()
.transactionId("e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->unmatchedDeposits->match('11111111-2222-3333-4444-555555555555', [
'transaction_id' => 'e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.unmatched_deposits.match(
"11111111-2222-3333-4444-555555555555",
transaction_id: "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24"
)
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.UnmatchedDeposits.MatchAsync("11111111-2222-3333-4444-555555555555", new TravelRuleManualMatchRequest
{
TransactionId = "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
});
Console.WriteLine(JsonSerializer.Serialize(result));curl --request POST \
--url https://verification.didit.me/v3/travel-rule/unmatched/{transaction_uuid}/match/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"transaction_id": "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24"
}
'{
"deposit": {
"id": "7d3a1c55-0b9e-4d52-8a3c-1f6e2b9d4a08",
"transaction_id": "c41f9b2e-5a8d-4e0c-9f17-3b6d8a2e5c91",
"txn_id": "dep-2026-10-20-0007",
"txn_date": "2026-10-19T08:41:12Z",
"kind": "deposit",
"direction": "INBOUND",
"status": "AWAITING_COUNTERPARTY",
"rail": "TRP",
"asset": "ETH",
"amount": "1.25",
"originator_vasp": "Example Counterparty VASP",
"beneficiary_vasp": "Example Counterparty VASP",
"originator_wallet": "0x77ccff0cc624a53cd8b8d8703ced826710211ec7",
"beneficiary_wallet": "0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb",
"originator_memo": "",
"beneficiary_memo": "",
"originator_wallet_type": "vasp",
"beneficiary_wallet_type": "vasp",
"matched_transaction_id": "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
"deadline_at": null,
"created_at": "2026-10-19T08:41:13Z"
},
"message": {
"id": "2b8e6f10-9c3a-47d1-b5e2-0a4c7d9f3e66",
"transaction_id": "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
"txn_id": "msg-2026-10-20-0003",
"txn_date": "2026-10-19T08:41:12Z",
"kind": "message",
"direction": "INBOUND",
"status": "COMPLETED",
"rail": "TRP",
"asset": "ETH",
"amount": "1.25",
"originator_vasp": "Origin CASP SL",
"beneficiary_vasp": "Example Counterparty VASP",
"originator_wallet": "0x77ccff0cc624a53cd8b8d8703ced826710211ec7",
"beneficiary_wallet": "0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb",
"originator_memo": "",
"beneficiary_memo": "",
"originator_wallet_type": "vasp",
"beneficiary_wallet_type": "vasp",
"matched_transaction_id": null,
"deadline_at": "2026-10-21T08:41:13Z",
"created_at": "2026-10-19T08:41:13Z"
}
}Travel Rule
匹配 Travel Rule 入账 API:配对消息
将等待汇款人数据的入账与来源 VASP 发送的 Travel Rule 消息配对,使该入账获取汇款人数据。由 Didit 提供。
POST
/
v3
/
travel-rule
/
unmatched
/
{transaction_uuid}
/
match
/
Python
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.unmatched_deposits.match(
"11111111-2222-3333-4444-555555555555",
transaction_id="e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.unmatchedDeposits.match("11111111-2222-3333-4444-555555555555", {
transaction_id: "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.TravelRule.UnmatchedDeposits.Match(ctx, "11111111-2222-3333-4444-555555555555", didit.TravelRuleManualMatchRequest{
TransactionID: "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.TravelRuleManualMatchRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().unmatchedDeposits().match("11111111-2222-3333-4444-555555555555", TravelRuleManualMatchRequest.builder()
.transactionId("e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->unmatchedDeposits->match('11111111-2222-3333-4444-555555555555', [
'transaction_id' => 'e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.unmatched_deposits.match(
"11111111-2222-3333-4444-555555555555",
transaction_id: "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24"
)
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.UnmatchedDeposits.MatchAsync("11111111-2222-3333-4444-555555555555", new TravelRuleManualMatchRequest
{
TransactionId = "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
});
Console.WriteLine(JsonSerializer.Serialize(result));curl --request POST \
--url https://verification.didit.me/v3/travel-rule/unmatched/{transaction_uuid}/match/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"transaction_id": "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24"
}
'{
"deposit": {
"id": "7d3a1c55-0b9e-4d52-8a3c-1f6e2b9d4a08",
"transaction_id": "c41f9b2e-5a8d-4e0c-9f17-3b6d8a2e5c91",
"txn_id": "dep-2026-10-20-0007",
"txn_date": "2026-10-19T08:41:12Z",
"kind": "deposit",
"direction": "INBOUND",
"status": "AWAITING_COUNTERPARTY",
"rail": "TRP",
"asset": "ETH",
"amount": "1.25",
"originator_vasp": "Example Counterparty VASP",
"beneficiary_vasp": "Example Counterparty VASP",
"originator_wallet": "0x77ccff0cc624a53cd8b8d8703ced826710211ec7",
"beneficiary_wallet": "0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb",
"originator_memo": "",
"beneficiary_memo": "",
"originator_wallet_type": "vasp",
"beneficiary_wallet_type": "vasp",
"matched_transaction_id": "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
"deadline_at": null,
"created_at": "2026-10-19T08:41:13Z"
},
"message": {
"id": "2b8e6f10-9c3a-47d1-b5e2-0a4c7d9f3e66",
"transaction_id": "e90a4d7b-1c2f-4b83-a6d5-8f0e3c1b7a24",
"txn_id": "msg-2026-10-20-0003",
"txn_date": "2026-10-19T08:41:12Z",
"kind": "message",
"direction": "INBOUND",
"status": "COMPLETED",
"rail": "TRP",
"asset": "ETH",
"amount": "1.25",
"originator_vasp": "Origin CASP SL",
"beneficiary_vasp": "Example Counterparty VASP",
"originator_wallet": "0x77ccff0cc624a53cd8b8d8703ced826710211ec7",
"beneficiary_wallet": "0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb",
"originator_memo": "",
"beneficiary_memo": "",
"originator_wallet_type": "vasp",
"beneficiary_wallet_type": "vasp",
"matched_transaction_id": null,
"deadline_at": "2026-10-21T08:41:13Z",
"created_at": "2026-10-19T08:41:13Z"
}
}何时使用
当某笔来自 列出未匹配充值 的充值已收到一条属于它的 Travel Rule 消息,而 Didit 没有自动将两者配对时,请使用此接口。 该充值会继承消息中的发起方数据、对手方 VASP 和通道,两笔转账都会在各自的时间线上记录这次匹配。请求
curl -X POST "https://verification.didit.me/v3/travel-rule/unmatched/DEPOSIT_TRANSACTION_ID/match/" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"transaction_id": "MESSAGE_TRANSACTION_ID"}'
注意事项
- 路径中的
transaction_uuid指的是充值。请求体中的transaction_id指的是消息。 - 消息必须与充值的资产相同。
- 如果任一侧已经进入后续状态,调用将返回
409,且不会做任何更改。 - 在控制台中删除的交易,无论是哪一侧,都会返回
404。
相关内容
授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
路径参数
未匹配充值的 transaction_id。
请求体
application/json
收到的 Travel Rule 消息的 transaction_id(kind: message 的行)。
最后修改于 2026年11月7日