Travel Rule transactions

Use Sumsub API to send and receive Travel Rule data.

Travel Rule refers to a regulatory requirement imposed on financial institutions to collect and share certain information about the transacting parties in funds transfers and other types of transactions. This rule is part of the Bank Secrecy Act (BSA) in the U.S. and has been adopted globally by the Financial Action Task Force (FATF).

The purpose of this rule is to help regulatory authorities detect, investigate, and prosecute money laundering and other financial crimes.

It requires the transmitting and receiving financial institutions to include and retain specific information about the transacting parties, such as their names, addresses, and account numbers.

Create travel rule transaction

Use the type of transaction below to document the travel rule transactions. The required fields include the following:

{
    "txnId": "8rr5giw4i74cw5luwbtte123",  //Unique transaction identifier within your system
    "type": "travelRule",
    "applicant": {
      "type": "individual",  //Participant entity type: company or individual. Set to an individual by default
      "paymentMethod": {  //Information about the transaction payment method
        "type": "account",  //The actual account number/IBAN/DC Hash, crypto wallet address, etc.  Preferably unique for your organization
        "accountId": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"  //Unique user identifier within your system
      },
      "device": {
        "fingerprint": "1js5mbdtde2",  //Optional. Unique device fingerprint, used to track device usage
        "ipInfo": {
          "ip": "87.141.63.130"  //Applicant device IP used to detect account takeover if too many IP addresses are used
        }
      },
      "fullName": "John Smith",  //Applicant’s name. If you don't have an applicant, you can still put some human-readable info here
      "institutionInfo": {
        "internalId": "645a592f294c3b043c845930"  //Identifier for the financial institution
      }
    },
    "counterparty": {
      "externalUserId": "2b9w4191wrnd2iwx8b13kw",  //Unique identifier of the beneficiary or the remitter of the transaction. In case of deposit/withdrawal applicant and counterparty should have the same ExternalUserID 
      "fullName": "Jack Posek",
      "type": "individual",
      "paymentMethod": {
        "type": "",
        "accountId": "bc1q080rkmk3kj86pxvf5nkxecdrw6nrx3zzy9xl7q"
      },
      "institutionInfo": {
        "internalId": "645a598a294c3b043c845934"
      }
    },
    "info": {
      "direction": "out",  //'in' for a deposit, 'out' for withdrawal
      "amount": 0.01,
      "currencyCode": "BTC"  //Payment currency code per ISO 4217. We will automatically convert GBP or other currency into your default currency like USD (there is also an amountInDefaultCurrency optional field for precise calculations)
    },
    "props": {
      "customProperty": "Custom value that can be used in rules"  //Custom value to be used in rules. For example, you can apply limits and customer types from your internal segmentation, etc. This field can be textual and numerical
    },
    "txnDate": "2024-01-19 12:59:09+0300"  //Transaction date. If the date is not provided, the current date will be used
  }

Check out response

The response contains the info from the created transaction (all attributes) above with additional objects that contain the current review and scoring info of the requested transaction:

{
    "id": "65aa487479ad361dbbfb0c21",
    "applicantId": "65a906b659df1414adf1107b",
    "scope": "events",
    "externalUserId": "dash-2385a803-1cce-46f6-a9f8-675957c0da32",
    "clientId": "clientId",
    "data": {
      "txnId": "8rr5giw4i74cw5luwbtte123",
      "txnDate": "2024-01-19 09:59:09+0000",
      "applicant": {
        "externalUserId": "dash-2385a803-1cce-46f6-a9f8-675957c0da32",
        "fullName": "John Smith",
        "type": "individual",
        "paymentMethod": {
          "type": "account",
          "accountId": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
        },
        "device": {
          "ipInfo": {
            "ip": "87.141.63.130",
            "countryCode2": "DE",
            "countryCode3": "DEU",
            "city": "Berlin",
            "zipCode": "13355",
            "lat": 52.5448,
            "lon": 13.3862,
            "asn": 3320,
            "asnOrg": "Deutsche Telekom AG",
            "riskyAsn": false
          },
          "fingerprint": "1js5mbdtde2"
        },
        "institutionInfo": {
          "internalId": "645a592f294c3b043c845930"
        }
      },
      "counterparty": {
        "externalUserId": "2b9w4191wrnd2iwx8b13kw",
        "fullName": "Jack Posek",
        "type": "individual",
        "paymentMethod": {
          "type": "",
          "accountId": "bc1q080rkmk3kj86pxvf5nkxecdrw6nrx3zzy9xl7q"
        },
        "institutionInfo": {
          "internalId": "645a598a294c3b043c845934"
        }
      },
      "type": "travelRule",
      "info": {
        "direction": "out",
        "amount": 0.01,
        "currencyCode": "BTC",
        "currencyType": "crypto",
        "amountInDefaultCurrency": 380.2281368821293,
        "defaultCurrencyCode": "EUR"
      },
      "sourceKey": "123",  //An identifier used to sort users coming from different sources
      "props": {
        "customProperty": "Custom value that can be used in rules"
      }
    },
    "score": 0,
    "review": {
      "reviewId": "gezmM",
      "attemptId": "FAmDE",
      "attemptCnt": 0,
      "elapsedSincePendingMs": 134,
      "elapsedSinceQueuedMs": 134,
      "createDate": "2024-01-19 10:01:24+0000",
      "reviewStatus": "awaitingUser",  //Transaction status
      "confirmed": false
    },
    "createdAt": "2024-01-19 10:01:24+0000",
    "scoringResult": {
      "score": 0,  //Transaction risk score
      "dryScore": 0,  //The risk score of the transaction with regard to the matched rules in the “dry run” mode
      "matchedRules": [  //Matched rules description
        {
          "id": "65aa474d2e552054f5592311",
          "name": "TRI0-pre-tra-rule-inf-exc-anoc",
          "revision": 1,
          "title": "Prepare Travel Rule information exchange",
          "score": 0,
          "dryRun": false,
          "action": "score",
          "stage": "pre",
          "preScoringRunnerType": "travelRule"
        },
        {
          "id": "65aa474d2e552054f5592312",
          "name": "TRI1-tra-rule-awa-user-dec-csfv",
          "revision": 1,
          "title": "Travel Rule await user decision",
          "score": 0,
          "dryRun": false,
          "evaluatedCondition": {
            "or": [
              {
                "and": [
                  {
                    "op": "eq",
                    "args": [
                      {
                        "lit": "\"awaitingCounterparty\""
                      },
                      {
                        "lit": "\"awaitingCounterparty\""
                      }
                    ]
                  }
                ]
              }
            ]
          },
          "action": "awaitUser"
        }
      ],
      "unmatchedRules": [],
      "action": "awaitUser",
      "ruleCnt": 11,  //Matched rules total
      "dryRunRuleCnt": 0,  //Matched rules in the “dry run” mode total
      "tagScores": []
    },
    "typedTags": [],
    "travelRuleInfo": {
      "protocolName": "sns",
      "applicant": {
        "fullName": "John Smith"
      },
      "counterparty": {
        "fullName": "Jack Posek"
      },
      "status": "awaitingCounterparty",
      "expiredAt": "2024-01-19 10:02:24+0000",
      "applicantVaspId": "645a592f294c3b043c845930",
      "counterpartyVaspId": "645a598a294c3b043c845934"
    },
    "txnInactive": false
  }