from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
for item in client.travel_rule.unmatched_deposits.list():
print(item)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
for await (const item of didit.travelRule.unmatchedDeposits.list()) {
console.log(item);
}ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
iter := client.TravelRule.UnmatchedDeposits.ListAutoPaging(ctx, didit.TravelRuleUnmatchedDepositsListParams{})
for iter.Next() {
fmt.Printf("%+v\n", iter.Current())
}
if err := iter.Err(); err != nil {
log.Fatal(err)
}import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
for (var item : client.travelRule().unmatchedDeposits().list()) {
System.out.println(item);
}<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
foreach ($didit->travelRule->unmatchedDeposits->list() as $item) {
print_r($item->toArray());
}require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
didit.travel_rule.unmatched_deposits.list.auto_paging_each do |item|
puts item.to_h
endusing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
await foreach (var item in await client.TravelRule.UnmatchedDeposits.ListAsync())
{
Console.WriteLine(JsonSerializer.Serialize(item));
}curl --request GET \
--url https://verification.didit.me/v3/travel-rule/unmatched/ \
--header 'x-api-key: <api-key>'{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"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": "",
"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": null,
"created_at": "2026-10-19T08:41:13Z"
}
]
}List Unmatched Travel Rule Deposits API
List the inbound deposits still waiting for the originating VASP’s Travel Rule data, so you can pair each one with the message the counterparty sent.
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
for item in client.travel_rule.unmatched_deposits.list():
print(item)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
for await (const item of didit.travelRule.unmatchedDeposits.list()) {
console.log(item);
}ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
iter := client.TravelRule.UnmatchedDeposits.ListAutoPaging(ctx, didit.TravelRuleUnmatchedDepositsListParams{})
for iter.Next() {
fmt.Printf("%+v\n", iter.Current())
}
if err := iter.Err(); err != nil {
log.Fatal(err)
}import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
for (var item : client.travelRule().unmatchedDeposits().list()) {
System.out.println(item);
}<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
foreach ($didit->travelRule->unmatchedDeposits->list() as $item) {
print_r($item->toArray());
}require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
didit.travel_rule.unmatched_deposits.list.auto_paging_each do |item|
puts item.to_h
endusing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
await foreach (var item in await client.TravelRule.UnmatchedDeposits.ListAsync())
{
Console.WriteLine(JsonSerializer.Serialize(item));
}curl --request GET \
--url https://verification.didit.me/v3/travel-rule/unmatched/ \
--header 'x-api-key: <api-key>'{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"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": "",
"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": null,
"created_at": "2026-10-19T08:41:13Z"
}
]
}When to use it
An inbound deposit can reach your wallet before the originating VASP’s Travel Rule data reaches Didit. Until it does, the deposit waits. List the waiting deposits to find the ones you need to resolve. When the data has arrived as a separate received message, pair the two with Match an unmatched deposit.Request
curl "https://verification.didit.me/v3/travel-rule/unmatched/" \
-H "x-api-key: YOUR_API_KEY"
Notes
- Rows and filters are the same as in List Travel Rule transfers, newest first.
- A deposit leaves the list when a received message is paired with it, when you match it by hand, or when its status moves on.
- The list is empty for applications without Travel Rule transfers.
Related
Authorizations
Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is wrong, revoked or expired; 403 means no key was sent, the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.
Query Parameters
INBOUND, OUTBOUND, or both comma-separated. Case-sensitive.
One or more transfer statuses, comma-separated.
One or more of INTERNAL, TRP, GTR, TRUST, VERIFYVASP, SYGNA, EMAIL, TEST_VASP, comma-separated.
withdrawal, deposit or message, comma-separated.
The transaction's currency, case-insensitive.
Transfers created on or after this day (UTC), YYYY-MM-DD.
Transfers created on or before this day (UTC), YYYY-MM-DD.
The id of a directory entry or Didit network member from GET /v3/travel-rule/vasps/: your transfers with that counterparty. A value that is not a valid id answers 400.
Page size, default 50.
1 <= x <= 1000000Rows to skip.
0 <= x <= 1000000