| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Overview
Use this method to import the list of transactions.
The method expects transactions to be uploaded as a valid NDJSON file with the Content-Type: application/x-ndjson header. The request body must contain a sequence of JSON objects, each representing a single transaction, separated by newline characters (\n) as shown in the examples below.
You can use the following templates as a reference:
Attention
- This method is not intended for importing historical transactions. Use Import transaction history
instead.- Import is limited to 1000 records per request.
- If any line is not valid JSON or fails field validation, no transactions are imported.
Required permissions
To use this method:
- Your app token must have the Manage TM transactions - Decisions permission.
- Your account must have Transaction Monitoring enabled in some form (for example, KYT scoring, Travel Rule, Device Intelligence, or one of the supported crypto risk-scoring providers).
Both conditions are required — missing the permission, or having no TM feature enabled, returns a 403 Forbidden. If neither feature is enabled for your account, contact your CSM or Sumsub support.
Request examples
curl -X POST \
'https://api.sumsub.com/resources/kyt/misc/txns/import' \
-H 'Content-Type: application/x-ndjson' \
-H 'X-App-Token: <your-app-token>' \
-H 'X-App-Access-Sig: <your-signature>' \
-H 'X-App-Access-Ts: <unix-timestamp>' \
--data-binary @- <<'EOF'
{"applicantId":"636cee6b17d6c7000144673b","data":{"txnId":"631f268442d8290001e1eee8_newTxn","applicant":{"externalUserId":"uniqueRemitterId","address":{"country":"DEU","street":"Chauseestr. 60","postCode":"101115","town":"Berlin"},"device":{"ipInfo":{"ip":"87.141.63.130"}},"institutionInfo":{"code":"DEUTDEDB101","name":"Deutsche Bank"}},"counterparty":{"externalUserId":"uniqueBeneficiaryId","fullName":"John Smith","fullNameEn":"John Smith","type":"individual","institutionInfo":{"code":"CRESCHZZXXX","name":"Credit Swiss (Schweiz)"}},"info":{"direction":"in","amount":101.42,"currencyCode":"GBP","paymentDetails":"Birthday Present"}}}
{"applicantId":"636cee6b17d6c7000144673b","data":{"txnId":"631f268442d8290001e1eee9_newTxn","applicant":{"externalUserId":"uniqueRemitterId","address":{"country":"DEU","street":"Chauseestr. 60","postCode":"101115","town":"Berlin"},"institutionInfo":{"code":"DEUTDEDB101","name":"Deutsche Bank"}},"counterparty":{"externalUserId":"uniqueBeneficiaryId","fullName":"John Smith","fullNameEn":"John Smith","type":"individual"},"info":{"direction":"out","amount":101.42,"currencyCode":"GBP","paymentDetails":"Birthday Present"}}}
EOFcurl -X POST \
'https://api.sumsub.com/resources/kyt/misc/txns/import?scoreSavedTxns=false' \
-H 'Content-Type: application/x-ndjson' \
-H 'X-App-Token: <your-app-token>' \
-H 'X-App-Access-Sig: <your-signature>' \
-H 'X-App-Access-Ts: <unix-timestamp>' \
--data-binary @- <<'EOF'
{"applicantId":"636cee6b17d6c7000144673b","data":{"txnId":"631f268442d8290001e1eee8_newTxn","applicant":{"externalUserId":"uniqueRemitterId","address":{"country":"DEU","street":"Chauseestr. 60","postCode":"101115","town":"Berlin"},"device":{"ipInfo":{"ip":"87.141.63.130"}},"institutionInfo":{"code":"DEUTDEDB101","name":"Deutsche Bank"}},"counterparty":{"externalUserId":"uniqueBeneficiaryId","fullName":"John Smith","type":"individual","institutionInfo":{"code":"CRESCHZZXXX","name":"Credit Swiss (Schweiz)"}},"info":{"direction":"in","amount":101.42,"currencyCode":"GBP","paymentDetails":"Birthday Present"}},"review":{"reviewResult":{"reviewAnswer":"GREEN"},"reviewStatus":"completed"},"tags":["test tag","test tag 2"]}
{"applicantId":"636cee6b17d6c7000144673b","data":{"txnId":"631f268442d8290001e1eee9_newTxn","applicant":{"externalUserId":"uniqueRemitterId","address":{"country":"DEU","street":"Chauseestr. 60","postCode":"101115","town":"Berlin"},"institutionInfo":{"code":"DEUTDEDB101","name":"Deutsche Bank"}},"counterparty":{"externalUserId":"uniqueBeneficiaryId","fullName":"John Smith","type":"individual"},"info":{"direction":"out","amount":101.42,"currencyCode":"GBP","paymentDetails":"Birthday Present"}},"review":{"reviewStatus":"onHold"},"tags":["test tag","test tag 2"]}
EOFResponse explained
If the request is processed successfully, the response contains the number of created transactions (createdCnt), their IDs in Sumsub and in your system (processed[].id and processed[].dataTxnId), and, if ignoreErrors=true, the lines that failed (errors[], with the line number and error message).
Response example to successful request:
{
"createdCnt": 1,
"errors": [
{
"errorMsg": "data.txnId: must not be null",
"lineNum": 2
}
],
"processed": [
{
"id": "6720f1c2e4b0a1b2c3d4e5f6",
"dataTxnId": "631f268442d8290001e1eee8_newTxn"
}
]
}If the request fails, you will receive an HTTP response containing an error code along with a message explaining the error.
Response example to failed request:
{
"code": 400,
"correlationId": "c9eab02f4e77c2385866a77a105cb48a",
"description": "Can't parse lines 1, first error: data.applicant: must not be null, data.txnId: must not be null"
}