Confirms or rejects that the transaction beneficiary is your client.
Overview
Use this method to either confirm that the specified transaction belongs to your exchange (VASP), or to reject ownership of the transaction mistakenly sent to your client.
- When you confirm transaction ownership, you unmask the personal information stored in the specified transaction.
- When you reject transaction ownership, you inform us that the wallet does not belong to any of your clients. In this case, the transaction will be marked as
unconfirmed
.
Info
The data we exchange includes the Sumsub transaction ID.
Request examples
curl -X POST \
'https://api.sumsub.com/resources/kyt/txns/66cd891eefa135789ce5264f/ownership/confirmed'
curl -X POST \
'https://api.sumsub.com/resources/kyt/txns/66cd891eefa135789ce5264f/ownership/unconfirmed'
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.
- By default, the
needMasking
attribute is set totrue
that indicates the personal data is masked, so you do not see thefullName
field in theapplicant
andcounterparty
objects. Personal data stays masked when you reject the transaction ownership. - When you confirm transaction ownership, the
needMasking
attribute is set tofalse
, and thefullName
field appears in theapplicant
andcounterparty
objects.
Note
Mind that
travelRuleInfo.status
still has theunconfirmedOwnership
value even if you confirm transaction ownership. To correctly complete the confirmation, proceed with either enriching the transaction with Travel Rule data, or moving the transaction to the proper applicant, depending on the case.
Response examples
{
"id": "66fbc0e62c633f3ea10c9ed8",
"externalUserId": "t9oxv7qlynvlip2w0rpf",
"clientId": "your_cool_id",
"data": {
"txnId": "2421f077-b5ee-4361-9212-73f69e5c1d44",
"txnDate": "2024-10-01 09:29:10+0000",
"applicant": {
"externalUserId": "t9oxv7qlynvlip2w0rpf",
"type": "individual",
"paymentMethod": {
"type": "",
"accountId": "0X7D1E4CFE1659FB2FF41E70C89BC03A92895C76FE"
}
},
"counterparty": {
"externalUserId": "ticdp37986196cepjaqkm",
"type": "individual",
"paymentMethod": {
"type": "account",
"accountId": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
},
"device": {
"ipInfo": {
"ip": "87.141.63.130",
"countryCode2": "DE",
"countryCode3": "DEU",
"city": "Berlin",
"zipCode": "13357",
"lat": 52.5481,
"lon": 13.3844,
"asn": 3320,
"asnOrg": "Deutsche Telekom AG",
"riskyAsn": false
},
"fingerprint": "m5021x0a87"
}
},
"type": "travelRule",
"info": {
"direction": "in",
"amount": 0.01,
"currencyCode": "ETH",
"currencyType": "crypto",
"amountInDefaultCurrency": 23.798191337458352,
"defaultCurrencyCode": "EUR"
}
},
"score": 0,
"review": {
"reviewId": "snSWH",
"attemptId": "BnDPs",
"attemptCnt": 2,
"elapsedSincePendingMs": 146215,
"createDate": "2024-10-01 09:29:10+0000",
"reviewResult": {
"reviewAnswer": "GREEN"
},
"reviewStatus": "completed",
"confirmed": false
},
"createdAt": "2024-10-01 09:29:10+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": "t9oxv7qlynvlip2w0rpf"
},
"counterparty": {
"externalUserId": "ticdp37986196cepjaqkm"
},
"status": "unconfirmedOwnership",
"applicantVaspId": "668d5fb69c98ed620c55ae0d",
"counterpartyVaspId": "66b10acdf6c30965b9ea644d"
},
"needMasking": true,
"txnInactive": false
}
{
"id": "66fbc0e62c633f3ea10c9ed8",
"externalUserId": "t9oxv7qlynvlip2w0rpf",
"clientId": "your_cool_id",
"data": {
"txnId": "2421f077-b5ee-4361-9212-73f69e5c1d44",
"txnDate": "2024-10-01 09:29:10+0000",
"applicant": {
"externalUserId": "t9oxv7qlynvlip2w0rpf",
"fullName": "John Doe",
"type": "individual",
"paymentMethod": {
"type": "",
"accountId": "0X7D1E4CFE1659FB2FF41E70C89BC03A92895C76FE"
}
},
"counterparty": {
"externalUserId": "ticdp37986196cepjaqkm",
"fullName": "Jane Doe",
"type": "individual",
"paymentMethod": {
"type": "account",
"accountId": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
},
"device": {
"ipInfo": {
"ip": "87.141.63.130",
"countryCode2": "DE",
"countryCode3": "DEU",
"city": "Berlin",
"zipCode": "13357",
"lat": 52.5481,
"lon": 13.3844,
"asn": 3320,
"asnOrg": "Deutsche Telekom AG",
"riskyAsn": false
},
"fingerprint": "m5021x0a87"
}
},
"type": "travelRule",
"info": {
"direction": "in",
"amount": 0.01,
"currencyCode": "ETH",
"currencyType": "crypto",
"amountInDefaultCurrency": 23.798191337458352,
"defaultCurrencyCode": "EUR"
}
},
"score": 0,
"review": {
"reviewId": "snSWH",
"attemptId": "BnDPs",
"attemptCnt": 2,
"elapsedSincePendingMs": 146215,
"createDate": "2024-10-01 09:29:10+0000",
"reviewResult": {
"reviewAnswer": "GREEN"
},
"reviewStatus": "completed",
"confirmed": false
},
"createdAt": "2024-10-01 09:29:10+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": "t9oxv7qlynvlip2w0rpf",
"fullName": "John Doe"
},
"counterparty": {
"externalUserId": "ticdp37986196cepjaqkm",
"fullName": "Jane Doe"
},
"status": "unconfirmedOwnership",
"applicantVaspId": "668d5fb69c98ed620c55ae0d",
"counterpartyVaspId": "66b10acdf6c30965b9ea644d"
},
"needMasking": false,
"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 id 'xfghxfgtdjyjdxtg'",
"code": 400,
"correlationId": "07470e61730f77a88fbca83fcbc3e358"
}