---
updatedAt: 2026-09-29T10:39:41.000Z
agentTools:
  projectIndex: https://docs.sumsub.com/llms.txt
---

# Patch transaction with chain transaction ID

# Overview

Use this method to attach a blockchain transaction ID to an already approved transaction. This associates the transferred asset result (transaction identifier) with the asset transfer details.

<Callout icon="📘" theme="info">
  ### Info

  The data we exchange includes the Sumsub transaction ID and the transaction ID derived from your system.
</Callout>

## Required permissions

To use this method, your [app token](https://docs.sumsub.com/sumsub/docs/app-tokens) must have the **Manage TM transactions - Decisions** [permission](https://docs.sumsub.com/sumsub/docs/user-roles#permissions).

## Request example

```curl
curl -X PATCH \
     'https://api.sumsub.com/resources/kyt/txns/66cd891eefa135789ce00000/data/info' \
     -H 'content-type: application/json' \
     -H 'X-App-Token: <your-app-token>' \
     -H 'X-App-Access-Sig: <your-signature>' \
     -H 'X-App-Access-Ts: <unix-timestamp>' \
     -d '{
           "paymentTxnId": "3213654zdrgsetrr51435ergh453t5z45uy"
         }'
```

# Response explained

If the request was sent and processed correctly, you will get a JSON file that represents the [structured transaction information](https://docs.sumsub.com/sumsub/reference/get-transaction#response-explained). The existence of some fields depends on the transaction type and matched rules.

## Response examples

As a result of successful request, `paymentTxnId` is added to the `data.info` attributes.

```json
{
  "id": "66fbbc072c633f3ea10c9dad",
  "applicantId": "66fbbc072c633f3ea10c9da9",
  "externalUserId": "1jhdkl44pqyud1kovvfwmm",
  "clientId": "your_cool_id",
  "data": {
    "txnId": "p3p0s3g2liovkgibmym1h",
    "txnDate": "2024-10-01 09:08:22+0000",
    "applicant": {
      "externalUserId": "1jhdkl44pqyud1kovvfwmm",
      "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": "9l5y22eqpso"
      }
    },
    "counterparty": {
      "externalUserId": "hnd2iim6y4phntbn3c6c3",
      "fullName": "John Posek",
      "type": "individual",
      "paymentMethod": {
        "type": "",
        "accountId": "0X7B1E4AFE1659FB2FF41E70C89BC03A92895C76FE"
      }
    },
    "type": "travelRule",
    "info": {
      "paymentTxnId": "0x5b5d6e9fb1a4c8f7e9205f59b40c76ecba58f3427b4a3c1a1f7f390000000000",
      "type": "withdrawal",
      "direction": "out",
      "amount": 0.01,
      "currencyCode": "ETH",
      "currencyType": "crypto",
      "amountInDefaultCurrency": 23.798191337458352,
      "defaultCurrencyCode": "EUR"
    },
    "props": {
      "customProperty": "Custom value that can be used in rules",
      "dailyOutLimit": "10000"
    }
  },
  "score": 0,
  "review": {
    "reviewId": "AmXvZ",
    "attemptId": "iKPbc",
    "attemptCnt": 2,
    "elapsedSincePendingMs": 27534,
    "createDate": "2024-10-01 09:08:23+0000",
    "reviewResult": {
      "reviewAnswer": "GREEN"
    },
    "reviewStatus": "completed",
    "confirmed": false
  },
  "createdAt": "2024-10-01 09:08:23+0000",
  "scoringResult": {
    "score": 0,
    "dryScore": 0,
    "matchedRules": [
      {
        "id": "660547476b52d214c9d29c8b",
        "name": "TRI0-pre-tra-rule-inf-exc-gLTR",
        "revision": 1,
        "title": "Prepare Travel Rule information exchange",
        "score": 0,
        "dryRun": false,
        "action": "score"
      },
      {
        "id": "6657029686972147ead159eb",
        "name": "TRI12-ena-unh-wal-ver-if-no-att-fou-IYZA",
        "revision": 1,
        "title": "Enable unhosted wallet verification if no attribution found",
        "score": 0,
        "dryRun": false,
        "action": "score"
      },
      {
        "id": "66fbbc222c633f3ea10c9dee",
        "name": "auto-adj-app-sco-dIIv",
        "title": "[AUTO] Adjust applicant score",
        "score": 0,
        "action": "score"
      }
    ],
    "action": "score",
    "ruleCnt": 6,
    "dryRunRuleCnt": 0
  },
  "travelRuleInfo": {
    "protocolName": "sns",
    "applicant": {
      "externalUserId": "1jhdkl44pqyud1kovvfwmm",
      "fullName": "John Posek"
    },
    "counterparty": {
      "externalUserId": "hnd2iim6y4phntbn3c6c3",
      "fullName": "Jack Posek"
    },
    "status": "completed",
    "applicantVaspId": "66b10acdf6c30965b9ea644d",
    "counterpartyVaspId": "668d5fb69c98ed620c55ae0d"
  },
  "txnInactive": false
}
```

<Callout icon="📘" theme="info">
  ### Note

  The `finished` status will be assigned asynchronously; not in response to the request.
</Callout>

If the request fails, you will receive an HTTP response containing an error code along with a message explaining the error. For example:

```json
{
  "description": "Invalid txnId '000000000'",
  "code": 400,
  "correlationId": "3773cd5e8ad50ea28fe40553717ffe3a"
}
```

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "sumsub-api",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.sumsub.com"
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "name": "X-App-Token",
        "in": "header",
        "x-default": ""
      }
    }
  },
  "security": [
    {
      "sec0": []
    }
  ],
  "paths": {
    "/resources/kyt/txns/{id}/data/info": {
      "patch": {
        "summary": "Patch transaction with chain transaction ID",
        "description": "",
        "operationId": "patch-transaction-with-chain-txid",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique transaction identifier in the Sumsub system. <br><br>This ID is returned in the [response](https://docs.sumsub.com/reference/get-transaction#root-variables) to this request and a webhook (`kytTxnId`). Save it for future use in subsequent API calls. Alternatively, you can get this identifier by the [following method](https://docs.sumsub.com/sumsub/reference/get-transaction-information-by-txnid).",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "paymentTxnId": {
                    "type": "string",
                    "description": "Crypto transaction identifier from the blockchain."
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "x-readme-fauxas": true
}
```