post https://api.sumsub.com/resources/kyt/txns//travelRuleOwnership
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 (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.
- If an
applicantIdis not specified in the request, a new applicant profile will be created with the transaction linked to this applicant. The response will include theapplicantIdfield along with the corresponding applicant data. - If the applicant profile already exists, the
txn.data.applicant.fullNamefield will be updated.
travelRuleInfo.statuschanges tocompletedregardless of whether theapplicantIdwas 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"
}