Overview
Use this method to avoid creating a new applicant for each incoming transaction. In case the beneficiary of the transaction is one of your applicants who passed Sumsub KYC, you easily associate them with the transaction.
Info
The data we exchange includes the Sumsub transaction ID and the transaction ID derived from your system.
Request example
curl -X POST \
'https://api.sumsub.com/resources/kyt/txns/123456789/applicantId/631f268442d8290001e1eee8'
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.
Response examples
In the response, the applicantId
field is changed, and the txn.data.applicant.fullName
field is updated. travelRuleInfo.status
changes to completed
.
{
"id": "66fbbe5a2c633f3ea10c9e30",
"applicantId": "66fbbec12c633f3ea10c9e48",
"externalUserId": "6wr4y2c9y95iiwl4e4buqq",
"clientId": "your_cool_id",
"data": {
"txnId": "c2b7c8a8-3ee0-4bed-9907-535938589dd6",
"txnDate": "2024-10-01 09:18:18+0000",
"applicant": {
"externalUserId": "6wr4y2c9y95iiwl4e4buqq",
"fullName": "Arya Stark",
"type": "individual",
"paymentMethod": {
"type": "",
"accountId": "0X6B1E4CFE1659FB2FF41E70C89BC03A92895C76FE"
}
},
"counterparty": {
"externalUserId": "c5en9vgro9td9i5uoaanfg",
"fullName": "John Posek",
"type": "individual",
"paymentMethod": {
"type": "account",
"accountId": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
},
"device": {
"ipInfo": {
"ip": "87.141.00.000",
"countryCode2": "DE",
"countryCode3": "DEU",
"city": "Berlin",
"zipCode": "13357",
"lat": 52.5481,
"lon": 13.3844,
"asn": 3320,
"asnOrg": "Deutsche Telekom AG",
"riskyAsn": false
},
"fingerprint": "re72icqgje"
}
},
"type": "travelRule",
"info": {
"direction": "in",
"amount": 0.01,
"currencyCode": "ETH",
"currencyType": "crypto",
"amountInDefaultCurrency": 23.798191337458352,
"defaultCurrencyCode": "EUR"
}
},
"score": 0,
"review": {
"reviewId": "FhrBu",
"attemptId": "GXNaw",
"attemptCnt": 3,
"elapsedSincePendingMs": 139273,
"createDate": "2024-10-01 09:18:18+0000",
"reviewResult": {
"reviewAnswer": "GREEN"
},
"reviewStatus": "completed",
"confirmed": false
},
"createdAt": "2024-10-01 09:18:18+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": "6wr4y2c9y95iiwl4e4buqq",
"fullName": "Jack Posek"
},
"counterparty": {
"externalUserId": "c5en9vgro9td9i5uoaanfg",
"fullName": "John Posek"
},
"status": "completed",
"applicantVaspId": "668d5fb69c98ed620c55ae0d",
"counterpartyVaspId": "66b10acdf6c30965b9ea644d"
},
"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 txnId '000000000'",
"code": 400,
"correlationId": "3773cd5e8ad50ea28fe40553717ffe3a"
}