Confirm wallet ownership

Overview

Use this method to confirm that the wallet address belongs to a specific applicant, and to enrich the Travel Rule message with the transaction participant (either beneficiary or originator) data.

Request examples

curl -X POST \
     'https://api.sumsub.com/resources/kyt/txns/test_txn_id/travelRuleOwnership' \
     -H 'content-type: application/json' \
     -d '{ "applicantId": "67a0ec0b9aa095000000000f" }'
curl -X POST \
     'https://api.sumsub.com/resources/kyt/txns/test_txn_id/travelRuleOwnership' \
     -H 'content-type: application/json' \
     -d '{
            "applicantParticipant": {
              "fullName": "John Doe",
              "externalUserId": "external_user_id",
              "type": "individual"
            }
         }'

Response explained

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

  • In case a certain applicantId is not specified in the request, a new applicant profile will be created with the transaction linked to this applicant. The response will include the applicantId field along with the corresponding applicant data.
  • In case the applicant profile already exists, the txn.data.applicant.fullName field will be updated.

travelRuleInfo.status changes to completed regardless of whether the applicantId was specified in the request or not.

Response examples

In case of success, you will get a response like in the following examples:

// The `applicantId` value changes.
{
    "id": "67a22680c39d670000000000",
    "applicantId": "66c61271ba899b0000088888",
    "counterpartyApplicantId": "67a2267ec39d670000077777",
    "scope": "events",
    "externalUserId": "cool_external_user_id",
    "clientId": "your_id",
    "data": {
        "txnId": "a31b7787-6add-415a-bce1-0000000000e7",
        "txnDate": "2025-02-04 14:38:56+0000",
        "applicant": {
            "externalUserId": "cool_external_user_id",
            "fullName": "John Doe",
            "firstName": "John",
            "lastName": "Doe",
            "nameType": "birthName",
            "dob": "1991-04-07",
            "placeOfBirth": "Berlin, Germany",
            "address": {
                "subStreet": "100",
                "street": "Chauseestr.",
                "town": "Berlin",
                "postCode": "10000",
                "country": "DEU",
                "formattedAddress": "Chauseestr., 100, Berlin, Germany, 10000"
            },
            "type": "individual",
            "paymentMethod": {
                "type": "",
                "accountId": "bc1q080rkmk3kj86pxvf5nkxefdffclxkdjfb;hrvbzdkrf"
            },
            "idDoc": {
                "number": "DE00000000",
                "country": "DEU",
                "idDocType": "PASSPORT",
                "registrationAuthority": "BerlinMitte"
            },
            "residenceCountry": "DEU"
        },
        "counterparty": {
            "externalUserId": "counterparty_external_user_id",
            "fullName": "John Doe",
            "firstName": "John",
            "lastName": "Doe",
            "nameType": "birthName",
            "dob": "1992-05-08",
            "placeOfBirth": "Paris, France",
            "address": {
                "subStreet": "1",
                "street": "Rue de Rivoli",
                "town": "Paris",
                "postCode": "77777",
                "country": "FRA",
                "formattedAddress": "Rue de Rivoli, 100, Paris, France, 70000"
            },
            "type": "individual",
            "paymentMethod": {
                "type": "account",
                "accountId": "1A1zP1eP5QGefi2DMPzdflkjnsldkfjhbkxjdfh"
            },
            "device": {
                "ipInfo": {
                    "ip": "87.141.63.130",
                    "countryCode2": "DE",
                    "countryCode3": "DEU",
                    "city": "Berlin",
                    "zipCode": "13333",
                    "lat": 52.5583,
                    "lon": 13.3826,
                    "asn": 3320,
                    "asnOrg": "Deutsche Telekom AG",
                    "riskyAsn": false
                },
                "fingerprint": "irc3un0fc2p",
                "userAgentInfo": {
                    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0",
                    "agentName": "Firefox",
                    "majorVersion": "42",
                    "fullVersion": "42.0",
                    "deviceClass": "Desktop",
                    "deviceName": "Macintosh"
                }
            },
            "idDoc": {
                "number": "FR42255555",
                "country": "FRA",
                "idDocType": "PASSPORT",
                "registrationAuthority": "Ille-de-France 01"
            },
            "residenceCountry": "FRA"
        },
        "type": "travelRule",
        "info": {
            "type": "transfer",
            "direction": "in",
            "amount": 0.01,
            "currencyCode": "BTC",
            "currencyType": "crypto",
            "amountInDefaultCurrency": 961.5384615384615,
            "defaultCurrencyCode": "EUR"
        }
    },
    "score": 0,
    "review": {
        "reviewId": "xkFcj",
        "attemptId": "peqfY",
        "attemptCnt": 3,
        "elapsedSincePendingMs": 43317,
        "elapsedSinceQueuedMs": 43317,
        "createDate": "2025-02-04 14:38:56+0000",
        "reviewResult": {
            "reviewAnswer": "GREEN"
        },
        "reviewStatus": "completed",
        "confirmed": false
    },
    "createdAt": "2025-02-04 14:38:56+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",
                "stage": "pre",
                "preScoringRunnerType": "travelRule"
            }
        ],
        "action": "score",
        "ruleCnt": 4,
        "dryRunRuleCnt": 0
    },
    "typedTags": [
        {
            "label": "Mirrored",
            "type": "violation"
        }
    ],
    "travelRuleInfo": {
        "protocolName": "sns",
        "protocolAttempts": {
            "sns": "completed"
        },
        "applicant": {
            "externalUserId": "cool_external_user_idr_id",
            "fullName": "Jack Posek",
            "dob": "1991-04-07",
            "address": {
                "subStreet": "100",
                "street": "Chauseestr.",
                "town": "Berlin",
                "postCode": "10000",
                "country": "DEU",
                "formattedAddress": "Chauseestr., 100, Berlin, Germany, 10000"
            }
        },
        "counterparty": {
            "externalUserId": "counterparty_external_user_id",
            "fullName": "John Doe",
            "address": {
                "subStreet": "100",
                "street": "Rue de Rivoli",
                "town": "Paris",
                "postCode": "77777",
                "country": "FRA",
                "formattedAddress": "Rue de Rivoli, 100, Paris, France, 70000"
            }
        },
        "status": "completed",
        "applicantVaspId": "668d5fb69c98ed00000gsfTr",
        "counterpartyVaspId": "67977ac889a71d00000gsfTr"
    },
    "counterpartyKytTxnRef": {
        "txnId": "67a2267ec39d670000000000"
    },
    "needMasking": false,
    "mirrored": true,
    "txnInactive": false
}
// The `fullName` value changes to `New name`.
{
    "id": "67a22682c39d67000000000d",
    "applicantId": "67a2271fc39d67000000000a",
    "counterpartyApplicantId": "67a2267ec39d67000000000c",
    "scope": "events",
    "externalUserId": "cool_external_user_id",
    "clientId": "your_id",
    "data": {
        "txnId": "a0fa84f1-6c99-4ed9-9f1f-1b0000000txn",
        "txnDate": "2025-02-04 14:38:58+0000",
        "applicant": {
            "externalUserId": "cool_external_user_id",
            "fullName": "New name",
            "nameType": "birthName",
            "dob": "1991-04-07",
            "placeOfBirth": "Berlin, Germany",
            "address": {
                "subStreet": "100",
                "street": "Chauseestr.",
                "town": "Berlin",
                "postCode": "10000",
                "country": "DEU",
                "formattedAddress": "Chauseestr., 100, Berlin, Germany, 10000"
            },
            "type": "individual",
            "paymentMethod": {
                "type": "",
                "accountId": "bc1q080rkmk3kj86dfgdgpxvf5nkxefdcghmcghmcghjmcfghzxdtfg"
            },
            "idDoc": {
                "number": "DE42234089",
                "country": "DEU",
                "idDocType": "PASSPORT",
                "registrationAuthority": "BerlinMitte"
            },
            "residenceCountry": "DEU"
        },
        "counterparty": {
            "externalUserId": "counterparty_external_user_id",
            "fullName": "John Doe",
            "firstName": "John",
            "lastName": "Doe",
            "nameType": "birthName",
            "dob": "1992-05-08",
            "placeOfBirth": "Paris, France",
            "address": {
                "subStreet": "100",
                "street": "Rue de Rivoli",
                "town": "Paris",
                "postCode": "77777",
                "country": "FRA",
                "formattedAddress": "Rue de Rivoli, 1, Paris, France, 77777"
            },
            "type": "individual",
            "paymentMethod": {
                "type": "account",
                "accountId": "1A1zP1eP5QGefi2DMPTxfchjcgukcyftxz"
            },
            "device": {
                "ipInfo": {
                    "ip": "87.141.63.130",
                    "countryCode2": "DE",
                    "countryCode3": "DEU",
                    "city": "Berlin",
                    "zipCode": "13333",
                    "lat": 52.5583,
                    "lon": 13.3826,
                    "asn": 3320,
                    "asnOrg": "Deutsche Telekom AG",
                    "riskyAsn": false
                },
                "fingerprint": "irc3un0fc2p",
                "userAgentInfo": {
                    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0",
                    "agentName": "Firefox",
                    "majorVersion": "42",
                    "fullVersion": "42.0",
                    "deviceClass": "Desktop",
                    "deviceName": "Macintosh"
                }
            },
            "idDoc": {
                "number": "FR42200000",
                "country": "FRA",
                "idDocType": "PASSPORT",
                "registrationAuthority": "Ille-de-France 01"
            },
            "residenceCountry": "FRA"
        },
        "type": "travelRule",
        "info": {
            "type": "transfer",
            "direction": "in",
            "amount": 0.01,
            "currencyCode": "BTC",
            "currencyType": "crypto",
            "amountInDefaultCurrency": 961.5384615384615,
            "defaultCurrencyCode": "EUR"
        }
    },
    "score": 0,
    "review": {
        "reviewId": "NJqFu",
        "attemptId": "IxBBH",
        "attemptCnt": 4,
        "elapsedSincePendingMs": 156674,
        "createDate": "2025-02-04 14:38:58+0000",
        "reviewResult": {
            "reviewAnswer": "GREEN"
        },
        "reviewStatus": "completed",
        "confirmed": false
    },
    "createdAt": "2025-02-04 14:38:58+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",
                "stage": "pre",
                "preScoringRunnerType": "travelRule"
            }
        ],
        "action": "score",
        "ruleCnt": 4,
        "dryRunRuleCnt": 0
    },
    "typedTags": [
        {
            "label": "Mirrored",
            "type": "violation"
        }
    ],
    "travelRuleInfo": {
        "protocolName": "sns",
        "protocolAttempts": {
            "sns": "completed"
        },
        "applicant": {
            "externalUserId": "cool_external_user_id",
            "fullName": "John Doe",
            "dob": "1991-04-07",
            "address": {
                "subStreet": "100",
                "street": "Chauseestr.",
                "town": "Berlin",
                "postCode": "10115",
                "country": "DEU",
                "formattedAddress": "Chauseestr., 100, Berlin, Germany, 10000"
            }
        },
        "counterparty": {
            "externalUserId": "counterparty_external_user_id",
            "fullName": "John Doe",
            "address": {
                "subStreet": "1",
                "street": "Rue de Rivoli",
                "town": "Paris",
                "postCode": "77777",
                "country": "FRA",
                "formattedAddress": "Rue de Rivoli, 100, Paris, France, 77777"
            }
        },
        "status": "completed",
        "applicantVaspId": "668d5fb69c98ed620cxfgnhxf",
        "counterpartyVaspId": "67977ac889a71d4xgkmblxkfn"
    },
    "counterpartyKytTxnRef": {
        "txnId": "67a22682c39d6760b0000000"
    },
    "needMasking": false,
    "mirrored": true,
    "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": "You don't have this feature enabled, please contact us",
  "code": 403,
  "correlationId": "808ab395e1ef217e5c9fc6fad349ed19"
}
Language
Credentials
Header
Click Try It! to start a request and see the response here!