| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Overview
Use this method to search for an existing Travel Rule transaction that corresponds to a settled blockchain deposit.
It is read-only and has no side effects — it only looks up a transaction, it never creates or modifies one.
Required permissions
To use this method, you must have an app token with the View TM transactions permission. Travel Rule must also be enabled for your account — calling this method without it returns a 403.
Use case
VASPs should call this method for every deposit before initiating a Travel Rule exchange, to check whether a matching Travel Rule exchange already exists and avoid creating a duplicate.
NotesThe search runs in two stages:
- Exact match on
paymentTxnId(the on-chain transaction hash), if a transaction with that hash already exists.- Fallback match by wallet addresses and asset/network, if no exact hash match is found. Among fallback candidates, transactions matching both
amountandtxnDate(within ±24 hours) are preferred.The method returns at most one transaction — the most recent match. If nothing matches, it returns
200with an empty list, not a404.
Request example
curl -X POST
'https://api.sumsub.com/resources/api/tr/txns/search' \
-H 'Content-Type: application/json' \
-H 'X-App-Token: <your-app-token>' \
-H 'X-App-Access-Sig: <your-signature>' \
-H 'X-App-Access-Ts: <unix-timestamp>' \
-d '{
"paymentTxnId": "0x6918fda9c3150ec0d3ff8778dd808b06894593741c2a0c4004fc12410f05f18c",
"applicantWalletAddress": "0x6918b412c7b49d24b4bd27ac454df8477d7acf0d",
"counterpartyWalletAddress": "0x6918c41830e938aeff75e077ff7de818ee3aaffe",
"amount": 100,
"currencyCode": "USDT",
"cryptoChain": "TRX",
"txnDate": "2026-09-08 10:32:23+0000",
"direction": "in"
}'Response explained
The response is a JSON object containing a list with at most one matching transaction.
Root-level attributes
| Field | Type | Description |
|---|---|---|
list | Object | Search result. See list attributes below. |
list attributes
list attributes| Field | Type | Description |
|---|---|---|
items | Array of objects | The matching transaction, if found. Empty if no transaction matches. |
totalItems | Integer | 1 if a match was found, 0 otherwise. |
items[] element fields
items[] element fields| Field | Type | Description |
|---|---|---|
id | String | Unique transaction identifier in the Sumsub system (kytTxnId). |
externalTxnId | String | Unique transaction identifier in your own system. |
reviewStatus | String | Review status of the transaction. |
travelRuleStatus | String | Travel Rule protocol status of the transaction. |
paymentTxnId | String | On-chain transaction hash. |
amount | Number | Transaction amount. |
currencyCode | String | Asset ticker (for example, USDT). |
cryptoChain | String | Network the transaction was made on (for example, TRX). |
txnDate | Date | Deposit settlement time, in the format yyyy-MM-dd HH:mm:ss+0000. |
Response examples
If a matching transaction is found, you will get a response like the one below.
{
"list": {
"items": [
{
"id": "6a9fe437c4f49400208ddf4d",
"externalTxnId": "xwmlawlbczzwigsgta",
"reviewStatus": "completed",
"travelRuleStatus": "finished",
"paymentTxnId": "0x6918a463be7c076d2387753cfc017a512018c9a372c8c72e0ccf2d9fb70bc1d2",
"amount": 100.0,
"currencyCode": "USDT",
"cryptoChain": "TRX",
"txnDate": "2026-09-08 10:32:23+0000"
}
],
"totalItems": 1
}
}If no transaction matches, you will get a 200 response with an empty list — this is not an
error:
{
"list": {
"items": [],
"totalItems": 0
}
}If the request itself fails, you will receive an HTTP response containing an error code along
with a message explaining the error. For example, when a required field is missing:
{
"code": 400,
"correlationId": "0f587e62a96ce6b64809021d96abfa34",
"description": "amount is required"
}Response codes
| Status | Description |
|---|---|
200 | Search completed; returns a match if found, or an empty list — see Response examples. |
400 | Invalid request — for example, a required field is missing, or amount is not positive. |
403 | Travel Rule is not enabled for your account, or the app token lacks the View TM transactions permission. |
200