Bulk transaction import

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

  • Import is limited to 1000 records per session.

Request examples

curl -X POST \
  'https://api.sumsub.com/resources/kyt/misc/txns/import' \
  -H 'Content-Type: application/x-ndjson' \
  -d $'{
          "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"
            }
          }
    }\n{
          "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"
            }
          }
      }'
curl -X POST \
  'https://api.sumsub.com/resources/kyt/misc/txns/import' \
  -H 'Content-Type: application/x-ndjson' \
  -d $'{
         "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"
            }
         },
         "tags": [
            "test tag",
            "test tag 2"
         ],
         "review": {
            "reviewResult": {
               "reviewAnswer": "GREEN"
            },
            "reviewStatus": "completed",
            "createDate": "2025-11-05 12:05:20+0000",
            "startDate": "2025-11-05 12:10:20+0000",
            "reviewDate": "2025-11-06 12:05:20+0000"
         }
    }\n{
         "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"
            }
         },
         "tags": [
            "test tag",
            "test tag 2"
         ],
         "review": {
            "reviewResult": {
               "reviewAnswer": "RED",
               "reviewRejectType": "FINAL"
            },
            "reviewStatus": "completed",
            "createDate": "2025-11-05 12:05:20+0000",
            "startDate": "2025-11-05 12:10:20+0000",
            "reviewDate": "2025-11-06 12:05:20+0000"
         }
      }'

Response explained

If the request is successfully sent and processed, you will get a response indicating the number of bets successfully processed.

Response example to successful request:

{
    "createdCnt": 2
}

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"
}
Language
Credentials
Header
Click Try It! to start a request and see the response here!