Enrich transaction with Travel Rule data

Overview

Use this method to prevent the occasional transaction data disclosure.

Each time you receive an incoming transaction, Sumsub requests from you the data about the wallet owner, so that we can confirm they are registered at your platform and avoid disclosing the transaction information if the transaction was created and assigned to your platform by mistake.

📘

Info

The data we exchange includes the Sumsub transaction ID and the wallet owner name derived from your platform.

Request example

curl -X PATCH \
     'https://api.sumsub.com/resources/kyt/txns/srthjdsryjdtryjdtuykdtukdtu/data/applicant' \
     -H 'content-type: application/json' \
     -d '{
          "fullName": "John Doe",
          "externalUserId": "123456789"
        }'

Response explained

If the request was sent and processed correctly, you will get a JSON file that represents the structured transaction information. The existence of some fields depends on the transaction type and matched rules.

Response examples

In case there was no proper applicant in the Sumsub system, a new applicant profile will be created for the transaction. In the response, you can see the applicantId field and the corresponding applicant data.

If the applicant profile already exists, the txn.data.applicant.fullName field will be updated. travelRuleInfo.status changes to completed.

{
    "id": "66fbbe5a2c633f3ea10c9e30",
    "applicantId": "66fbbec12c633f3ea10c9e48",
    "externalUserId": "6wr4y2c9y95iiwl4e4buqq",
    "clientId": "your_cool_id",
    "data": {
        "txnId": "c2b7c8a8-3ee0-4bed-9907-535938589dd6",
        "txnDate": "2024-10-01 09:18:18+0000",
        "applicant": {
            "externalUserId": "6wr4y2c9y95iiwl4e4buqq",
            "fullName": "Arya Stark",
            "type": "individual",
            "paymentMethod": {
                "type": "",
                "accountId": "0X6B1E4CFE1659FB2FF41E70C89BC03A92895C76FE"
            }
        },
        "counterparty": {
            "externalUserId": "c5en9vgro9td9i5uoaanfg",
            "fullName": "John Posek",
            "type": "individual",
            "paymentMethod": {
                "type": "account",
                "accountId": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
            },
            "device": {
                "ipInfo": {
                    "ip": "87.141.00.000",
                    "countryCode2": "DE",
                    "countryCode3": "DEU",
                    "city": "Berlin",
                    "zipCode": "13357",
                    "lat": 52.5481,
                    "lon": 13.3844,
                    "asn": 3320,
                    "asnOrg": "Deutsche Telekom AG",
                    "riskyAsn": false
                },
                "fingerprint": "re72icqgje"
            }
        },
        "type": "travelRule",
        "info": {
            "direction": "in",
            "amount": 0.01,
            "currencyCode": "ETH",
            "currencyType": "crypto",
            "amountInDefaultCurrency": 23.798191337458352,
            "defaultCurrencyCode": "EUR"
        }
    },
    "score": 0,
    "review": {
        "reviewId": "FhrBu",
        "attemptId": "GXNaw",
        "attemptCnt": 3,
        "elapsedSincePendingMs": 139273,
        "createDate": "2024-10-01 09:18:18+0000",
        "reviewResult": {
            "reviewAnswer": "GREEN"
        },
        "reviewStatus": "completed",
        "confirmed": false
    },
    "createdAt": "2024-10-01 09:18:18+0000",
    "scoringResult": {
        "score": 0,
        "dryScore": 0,
        "matchedRules": [
            {
                "id": "66be1caaf47b4f7a6fccf5fb",
                "name": "TRI0-tra-rule-new-tr-data-exc-req-lVyy",
                "revision": 1,
                "title": "Travel Rule: New TR data exchange request",
                "score": 0,
                "dryRun": false,
                "action": "score"
            }
        ],
        "action": "score",
        "ruleCnt": 4,
        "dryRunRuleCnt": 0
    },
    "travelRuleInfo": {
        "protocolName": "sns",
        "applicant": {
            "externalUserId": "6wr4y2c9y95iiwl4e4buqq",
            "fullName": "Jack Posek"
        },
        "counterparty": {
            "externalUserId": "c5en9vgro9td9i5uoaanfg",
            "fullName": "John Posek"
        },
        "status": "completed",
        "applicantVaspId": "668d5fb69c98ed620c55ae0d",
        "counterpartyVaspId": "66b10acdf6c30965b9ea644d"
    },
    "txnInactive": false
}

If the request fails, you will receive an HTTP response containing an error code along with a message explaining the error. For example:

{
  "description": "Invalid txnId '000000000'",
  "code": 400,
  "correlationId": "3773cd5e8ad50ea28fe40553717ffe3a"
}
Language
Credentials
Header
Click Try It! to start a request and see the response here!