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 (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 theapplicantId
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 tocompleted
regardless of whether theapplicantId
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"
}