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를 반환합니다.
관련 문서
인증
Business Console의 Developers -> API keys에서 발급받은 귀하 애플리케이션의 API 키입니다. 기본 키는 전체 접근 권한을 갖습니다. 이름이 지정된 키는 리소스별 none, read, write 범위로 권한을 제한할 수 있으며 특정 워크플로나 승인된 세션, IP 주소 목록, 만료일 등으로 제한할 수도 있습니다. 401은 키가 잘못되었거나 폐기되었거나 만료되었음을 의미합니다. 403은 키가 전송되지 않았거나, 키에 해당 리소스나 작업에 대한 접근 권한이 없거나, 요청이 허용된 IP 목록 외부 주소에서 발생했음을 의미합니다. 세션 경로에서의 404는 해당 세션이 키의 허용 워크플로 또는 상태 범위를 벗어났음을 의미합니다. 미디어 접근 권한이 없는 키는 이미지, 비디오, PDF URL을 null로 수신하며, 세션 write 권한이 없는 키는 세션 링크와 token을 null로 수신합니다. https://docs.didit.me/console/api-keys 를 참고하십시오.
경로 매개변수
일치하지 않은 입금의 transaction_id입니다.
본문
application/json
수신된 Travel Rule 메시지(kind: message 행)의 transaction_id입니다.
마지막 수정일 2026년 11월 7일