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.
Mind the following behavior depending on the request inputs:
- If
applicantIdis not provided, a new applicant profile will be created with the transaction linked to this applicant. The response will include the generatedapplicantIdalong with the corresponding applicant data. - If the applicant profile already exists, the
txn.data.applicant.fullNamefield will be updated. - The
travelRuleInfo.statusvalue is set tocompletedregardless of whetherapplicantIdwas supplied.
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"
}