Extend your transaction monitoring rules with expression attributes.
Expression attributes help you build complex rule conditions based on the received applicant data.
For example, you can create a rule that compares the applicant country extracted from the ID document with the country provided by the applicant or the country of the specified payment method, and so on.
Root variables
Field | Type | |
---|---|---|
txn | Object | Derived data of the current transaction for which the entire related context is created. This data includes the previous score of the transaction, review result, tags assigned, and so on. |
data | Object | Transaction-related data submitted to Sumsub by the user. This data includes such details as transaction identifier, date and time when the transaction was initiated on the user side, financial information, transaction participants, and so on. |
aggregate | Object | Aggregated information about transactions based on certain criteria. |
applicant | Object | Applicant data of the current transaction participant registered in the Sumsub system as an applicant. This data is taken from the existing applicant profile and not related to a specific transaction. |
applicantAction | Object | Allows to build logic upon applicant action check results. |
poi | Object | Applicant's proof of identity. |
poa | Object | An applicant's proof of address. |
remitter | Object |
|
beneficiary | Object |
|
questionnaires | Map | The Questionnaire item values are nested by questionnaire, section, and item id. E.g. questionnaire["myQuestionnaireId"]["mySectionId"]["myItemId"] . |
props | Map of Strings | A map of custom properties that are not supported by the API data model (e.g. dailyOutLimit ) and could be reused in rule conditions, for example, to compare the transaction amount (data.info.amount ) to the props["dailyOutLimit"] . |
preScoringContext | Object | Prescoring context that helps to enrich the information about a transaction. |
clientLists | Map | Client lists based on key values. |
currentScore | Integer | Current score calculated in the rule matching process. |
currentRule | Object | Current rule to be processed and calculated. |
settings | Object | Settings related to KYT. |
txn
The txn
object includes the derived data of the current transaction for which the entire related context is created. This data includes the previous score of the transaction, review result, tags assigned, and so on.
Field | Type | Description |
---|---|---|
externalUserId | String | Unique user ID on the client side. |
clientId | String | Your identifier as our client in the Sumsub system. |
score | Integer | Transaction score. |
review | Object | Transaction review. |
createdAt | Date | Date and time (UTC) when a transaction was created in the Sumsub system. |
scoringResult | Object | Overall scoring result. |
tags | List of Strings | Transaction tags. |
ind | Integer | The Index of the current transaction is calculated in relation to the scoring transaction, which has an index value of 0. This field is used to configure a projection with a specific number of transactions. E.g. projection with last ten transactions. |
travelRuleInfo | Object | Travel rule information exchange data. |
data
The data
object is a transaction-related data submitted to Sumsub by the user. This data includes such details as transaction identifier, date and time when the transaction was initiated on the user side, financial information, transaction participants, and so on.
Field | Type | Description |
---|---|---|
txnId | String | Transaction ID |
txnDate | Date | The date and time (UTC) when a transaction was initiated on the client side (format yyyy-MM-dd HH:mm:ss+XXXX , e.g. 2022-10-25 22:30:02+0000 ). |
txnLocalDate | LocalDateTime | Calculated value of the transaction creation date and time on the client side if the transaction timezone is provided. |
applicant | Object | Includes the data of the financial transaction participant registered in the Sumsub system as an applicant. This data is submitted to Sumsub within the transaction and may differ from the relevant applicant profile. |
counterparty | Object | Includes the data related to the other party that participates in the financial transaction. This data is submitted to Sumsub within the transaction. |
info | Object | Transaction-related financial information. |
props | Map of strings | A map of custom properties that are not supported by the API data model (e.g. dailyOutLimit ) and could be reused in rule conditions, for example, to compare the transaction amount (data.info.amount ) to the props["dailyOutLimit"] . |
sourceKey | String | Source key assigned to the transaction. |
aggregate
Field | Type | Description |
---|---|---|
txns | Map of Objects | The transactions-related data aggregated and mapped by certain criteria (e.g. in , out, all, rejected, same beneficiary , etc.). |
currencyCodes | List of Strings | Unique currency codes (USD, GBP, BTC, etc.) of all non-rejected transactions. |
data.applicant
The data.applicant
object includes the data of the financial transaction participant registered in the Sumsub system as an applicant. This data is submitted to Sumsub within the transaction and may differ from the relevant applicant profile.
Field | Type | Description |
---|---|---|
externalUserId | String | Unique user ID on the client side. |
fullName | String | Full name. |
address | Object | Actual address (if provided). |
type | Enum | Applicant entity type: individual or company . |
paymentMethod | Object | Payment method used by an applicant. |
paymentMethodExtractedInfo | Object | Payment method information extracted from available data. |
device | Object | Device used by a counterparty to complete a transaction. |
institutionInfo | Object | Information regarding the financial institution through which an applicant made a transaction. |
institutionExtractedInfo | Object | Financial institution information extracted from available data. Stands for BIC country. |
data.counterparty
The data.counterparty
object includes the data related to the other party that participates in the financial transaction. This data is submitted to Sumsub within the transaction.
Field | Type | Description |
---|---|---|
externalUserId | String | Unique user ID on the client side. |
fullName | String | Full name. |
address | Object | Actual address (if provided). |
type | Enum | Counterparty entity type: individual or company . |
paymentMethod | Object | Payment method used by a counterparty. |
paymentMethodExtractedInfo | Object | Payment method information extracted from available data. |
device | Object | Device used by a counterparty to complete a transaction. |
institutionInfo | Object | Information regarding the financial institution through which a counterparty made a transaction. |
institutionExtractedInfo | Object | Financial institution information extracted from available data. Stands for BIC country. |
applicant
The applicant
object includes the applicant data of the current transaction participant registered in the Sumsub system as an applicant. This data is taken from the existing applicant profile and not related to a specific transaction.
Field | Type | Description |
---|---|---|
id | String | Applicant ID. |
createdAt | Object | This field helps to build rules based on the applicant profiles' creation date. For example, to find the applicants with profiles created in past 90 days, and whose declared incoming or outgoing turnover has been exceeded. |
fullName | String | Full name. |
country | String | Applicant country (ISO 3166-1 alpha-3). |
info | Object | Information extracted from an applicant's documents. |
fixedInfo | Object | Basic information on an applicant provided to the Sumsub SDK/API. |
review | Object | Applicant review. |
sourceKey | String | Source key of an applicant. |
derivatives | Object | Various information derived from an applicant. |
metadata | Map of Strings | Applicant's metadata. |
riskLabels | Object | Applicant risk labels. |
Tags | List of Strings | Applicant tags. |
assessment | Object | Applicant assessment. |
email | String | Applicant's email. |
emailDomain | String | Applicant email's domain name. |
phone | Object | Includes the details of the applicant's phone number. |
applicantAction
Field | Type | Description |
---|---|---|
ind | Integer | Index of the added payment source action (excluding duplicates), e.g., the first added payment method has index 1, the second — 2 , etc. The field has a value for paymentMethodSummary section only. |
questionnaires | Map | The Questionnaire item values are nested by questionnaire, section, and item id. E.g. questionnaire["myQuestionnaireId"]["mySectionId"]["myItemId"] . |
review | Object | Action review results. |
applicant.createdAt
Field | Type | Description |
---|---|---|
timestamp | Long | Unix timestamp in milliseconds. |
yyyymmdd | Integer | Numeric day in the YYYYMMDD format, e.g. {@literal 20230123}. |
year | Integer | Year. |
month | Integer | Month of the year (starts from 1). |
dayOfMonth | Integer | Day of the month (starts from 1). |
ageInYears | Integer | Time delta in years between this date and now. |
ageInDays | Integer | Time delta in days between this date and now. |
poi
Field | Type | Description |
---|---|---|
country | String | ID Document country (ISO 3166-1 alpha-3). |
idDocType | IdDocType | ID Document type. |
number | String | ID Document number. |
additionalnumber | String | ID Document additional number. |
dob | Date | Date of birth of a document's owner. |
nationality | String | Nationality of a document's owner. |
placeOfBirth | String | Place of birth of a document's owner. |
issuedDate | Date | Date of a document's issue. |
issueAuthority | String | Authority that issued an ID document. |
issueAuthorityCode | String | Unique code of the authority that issued an ID document. |
validUntil | Date | Validity date of an ID document. |
firtsIssuedDate | Date | Date of a document's first issue. |
metadata | Map of Strings | Metadata related to a Proof of Identity. |
address | Object | Address specified in an ID document. |
nfc | Object | NFC information on an ID document. |
poa
Field | Type | Description |
---|---|---|
country | String | ID Document country (ISO 3166-1 alpha-3). |
idDocType | IdDocType | ID Document type. |
number | String | ID Document number. |
metadata | Map of Strings | Metadata related to a Proof of Address. |
address | Object | Address specified in an ID document. |
preScoringContext
currentRule
Field | Type | Description |
---|---|---|
name | String | Current short name of the rule. |
id | String | Current ID of the rule. |
revision | Integer | Current version of the rule's revision. |
title | String | Current full title of the rule. |
score | Integer | Score that can be assigned to a transaction by the current rule. |
dryRun | Boolean | Value determining whether a rule should be applied in the Test mode. |
tags | List of Strings | Tags that can be assigned to a transaction by the current rule if it is applied. |
sourceKeys | List of Strings | Rule is only applied if the transaction has one of the listed source keys. |
settings
Field | Type | Description |
---|---|---|
createKycTransactions | Boolean | A value determining whether a transaction is created when running the identity verification. |
onHoldThreshold | Integer | Threshold value of the transaction score above which the transaction is put on hold. |
rejectThreshold | Integer | Threshold value of the transaction score above which the transaction is rejected. |
defaultCurrencyCode | String | Default currency code. |
travelRuleSettings | Object | Ttravel rule settings. |
review
Field | Type | Description |
---|---|---|
attemptCnt | Integer | Number of the current check attempt on the same verification level. |
buttonIds | Array of strings | List of button IDs that have been used for rejection. A specific buttonId is automatically assigned to each rejection. For more details, see Temporary rejection and Final rejection clarification. |
levelName | String | Applicant verification level. |
decision | Object | Review decision. |
reviewAnswer | Object | Review answer. |
rejectLabels | List of Objects | List of rejection labels. |
paymentDetailsReview
Fiels | ||
---|---|---|
suspiciousPaymentDetails | Boolean | Detects if there are risky words used in the transaction. True or False . |
txn.scoringResult
Field | Type | Description |
---|---|---|
score | Integer | The calculated score of a transaction. |
dryScore | Integer | The calculated Test score of the transaction which would be assigned by the rules applied in the Test mode. |
matchedRules | List of Objects | All rules matched during the scoring session. |
failedRules | List of Object | All rules that failed during the scoring session. |
ruleCnt | Integer | Total number of the rules counted for a transaction. |
dryRunRuleCnt | Integer | Total number of the rules in Test mode counted for a transaction. |
txn.travelRuleInfo
Field | Type | Description |
---|---|---|
protocolName | Enum | The name of the protocol used during the information exchange. |
applicant | Object | Applicant information used during the information exchange. |
counterparty | Object | Counterparty information used during the information exchange. |
status | Enum | The current information exchange state. |
expiredAt | Date | If the timer is set, the transaction will be re-scored after a certain period of time. |
applicantVaspId | ObjectId | Stores information about the counterparty VASP institution. |
counterpartyVaspId | ObjectId | Stores information about the counterparty VASP institution. |
txn.travelRuleInfo.protocolName
Value | Description |
---|---|
sns | Sumsub protocol. |
gtr | Global Travel Rule Protocol. |
trp | Travel Rule Protocol. |
vba | VASP By Address. |
fallback | Fallback notification. |
txn.travelRuleInfo.status
Value | Description |
---|---|
counterpartyVaspNotReachable | Data couldn't be sent since the second side of the transaction was not reachable. The response from the counterparty hasn’t been received. |
counterpartyVaspNotFound | Second side of the transaction was not found. |
awaitingCounterparty | Second side of the transaction was found and the data was sent. The response from the counterparty is awaited. |
onHold | Second side of the transaction was found and the data was sent. The transaction has been interrupted on the second side. |
expired | Second side of the transaction was found and the data was sent. There was no response received from the counterparty on time. |
unconfirmedOwnership | Second side of the transaction was found and the data was sent. Wallet ownership has not been confirmed. |
counterpartyUnconfirmedOwnership | Second side of the transaction was found and the data was sent. The negative response on wallet ownership has been received. |
counterpartyMismatchedData | Data has been sent, compared and there is a mismatch between both data sets. |
completed | Transaction is completed. |
cancelled | Counterparty was identified, and the data was sent. However, the counterparty decided to decline the transaction, be it by the rules or manually, and not to proceed with it. |
finished | Blockchain transaction ID has been updated in the completed transaction record. This status always follows the completed status. |
data.info
Field | Type | Description |
---|---|---|
fingerprint | String | Transaction fingerprint. |
type | String | The type of transaction: card, account, crypto. |
direction | String | The out (applicant sends to counterparty) or in (counterparty sends to applicant) direction. |
amount | Double | The amount of funds sent within transaction (in a currency used by an applicant). The round transaction amounts are detected: 10, 5000, 100000, and so on. For example, to detect transactions with 000 before the decimal point, use the following expression: "data.info.amount % 1000 equals 0". |
currencyCode | String | Code of the currency in which the transaction was made. |
amountInDefaultCurrency | Double | Transaction amount in the default currency. |
defaultCurrencyCode | String | Code of the default currency. |
paymentDetails | String | Comment with the details of payment. |
aggregate.txns
Field | Type | Description |
---|---|---|
minutes1 | Object | One minute from the moment a transaction is made. |
minutes3 | Object | Three minutes from the moment a transaction is made. |
hours1 | Object | One hour from the moment a transaction is made. |
hours3 | Object | Three hour from the moment a transaction is made. |
days1 | Object | One day from the moment a transaction is made. |
days2 | Object | Two days from the moment a transaction is made. |
days3 | Object | Three days from the moment a transaction is made. |
day7 | Object | Seven days from the moment a transaction is made. |
days14 | Object | Fourteen days from the moment a transaction is made. |
days30 | Object | Thirty days from the moment a transaction is made. |
days90 | Object | Ninety days from the moment a transaction is made. |
months1 | Object | One month from the moment a transaction is made. |
months3 | Object | Three months from the moment a transaction is made. |
months12 | Object | Twelve months from the moment a transaction is made. |
currentCalendarMonth | Object | Current calendar month related to the date when a transaction is made. |
previousCalendarMonth | Object | Previous calendar month related to the date when a transaction is made. |
allTime | Object | Overall period of time from the date when a transaction is made. |
aggregate.byIp
Field | Type | Description |
---|---|---|
minutes1 | Object | One minute from the moment a transaction is made by a certain IP address. |
minutes3 | Object | Three minutes from the moment a transaction is made by a certain IP address. |
hours1 | Object | One hour from the moment a transaction is made by a certain IP address. |
hours3 | Object | Three hour from the moment a transaction is made by a certain IP address. |
days1 | Object | One day from the moment a transaction is made by a certain IP address. |
days2 | Object | Two days from the moment a transaction is made by a certain IP address. |
days3 | Object | Three days from the moment a transaction is made by a certain IP address. |
day7 | Object | Seven days from the moment a transaction is made by a certain IP address. |
days14 | Object | Fourteen days from the moment a transaction is made by a certain IP address. |
days30 | Object | Thirty days from the moment a transaction is made by a certain IP address. |
days90 | Object | Ninety days from the moment a transaction is made by a certain IP address. |
months1 | Object | One month from the moment a transaction is made by a certain IP address. |
months3 | Object | Three months from the moment a transaction is made by a certain IP address. |
months12 | Object | Twelve months from the moment a transaction is made by a certain IP address. |
currentCalendarMonth | Object | Current calendar month related to the date when a transaction is made by a certain IP address. |
previousCalendarMonth | Object | Previous calendar month related to the date when a transaction is made by a certain IP address. |
address
Field | Type | Description |
---|---|---|
country | String | Country code (ISO 3166-1 alpha-3). |
formattedAddress | String | Address in an human-readable format. |
state | String | Name of the state or region if applicable. |
town | String | Town if applicable. |
street | String | Street if applicable. |
subStreet | String | Street (line 2) if applicable. |
postCode | String | Post code if applicable. |
type
Field | Description |
---|---|
individual | An individual applicant. |
company | A company applicant. |
paymentMethod
Field | Type | Description |
---|---|---|
type | String | The type of a payment method: a card, account, crypto. |
fingerprint | String | Representation of the account ID: an account number, wallet address number, etc. The value can be hashed to hide the real value. |
memo | String | Optional field in blockchain transactions to attach metadata or messages for identification, routing, or compliance purposes. |
device
Field | Type | Description |
---|---|---|
ipInfo | Object | The data about used IP address. |
userAgent | String | Device user-agent. |
sessionId | String | ID of the transaction session. |
sessionAgeMs | Long | Session lifetime in milliseconds. |
acceptLang | String | Language of the browser used by a transaction participant, e.g. en. |
platform | String | Device platform, e.g. Mobile Android. |
coords | Object | Geographical coordinates. |
address | Object | Address related to a device. |
fingerprint | String | Device fingerprint. |
institutionInfo, institutionExtractedInfo
The following table explains the attributes of the institutionInfo
and institutionExtractedInfo
objects:
institutionInfo
— Information regarding the financial institution through which a participant made a transaction.institutionExtractedInfo
— Financial institution information extracted from available data.
For example, Sumsub can fill in the country code by the IBAN extracted from the applicant payment method, or by BIC from institutionInfo
.
vasp
The following table explains the VASP (Virtual Asset Service Provider) directory information.
Field | Type | Description |
---|---|---|
countries | String | The list of all the registration countries for legal entities of the VASP. |
regulationType | Enum | Represents the type of regulation (authorized / temporaryExemption / unauthorized ) for VASP (Virtual Asset Service Provider). |
essentialChecksStatus | Enum |
|
dueDiligenceStaus | Enum |
|
Note that a VASP with Due Diligence completed will have either essentialChecksDone or extendedEssentialChecksDone status as well. | ||
riskScoreAnswer | Enum |
|
emailExists | Boolean | There is an email address on the VASP profile. |
urlExists | Boolean | There is a website address on the VASP profile. |
score | Double | There is a score on the VASP profile based on EEC (Extended Essential Checks). |
applicant.info, applicant.fixedInfo
The following table explains the attributes of the applicant.info and applicant.fixedInfo objects:
applicant.fixedInfo
— Contains information submitted by the applicant via Web or MobileSDK or by you via this API method. This data is used to compare with the data we extract from the applicant documents.applicant.info
— Contains information recognized and extracted from the applicant documents by Sumsub.
Field | Type | Description |
---|---|---|
country | String | Applicant country (ISO 3166-1 alpha-3). |
firstname | String | First name. |
firstnameEn | String | Transliterated first name. |
middleName | String | Middle name. |
lastName | String | Last name. |
lastnameEn | String | Transliterated last name. |
gender | String | Applicant gender (M or F). |
nationality | String | Nationality (ISO 3166-1 alpha-3). |
taxResidenceCountry | String | Tax Residence Country (ISO 3166-1 alpha-3). |
age | String | Applicant age. |
address | String | Applicant address. |
phone | Object | Includes the details of the applicant phone number. |
companyInfo | Object | Company information (KYB). |
applicant.info.companyInfo, applicant.fixedInfo.companyInfo
The following table explains the companyInfo
attributes.
Field | Type | Description |
---|---|---|
country | String | Alpha-3 code of the country where the company is legally registered (for example, DEU , GBR , and so on). |
type | String | Type of legal entity. For example, private company limited by shares, public limited company, state-owned enterprise, and so on. |
companyName | String | The name of the company. |
registrationNumber | String | Unique number that is assigned to the company when it was registered as a legal entity. |
address | Object | Company address details. |
legalAddress | String | Address a legal entity uses to register with a legal authority. |
postalAddress | String | Company postal address. |
registrationLocation | String | City, town, or another location where the company was registered. |
incorporatedOn | String | Date of company incorporation (format YYYY-mm-dd , e.g. 2001-09-25 ). |
email | String | Company email address. |
phone | String | Company phone number. |
taxId | String | Taxpayer registration number/Code of taxpayer registration. |
website | String | Website URL of the company. |
noUBOs | Boolean | When set to true , a company is to be be verified with no UBOs specified in the company profile. For example, in case when another legal entity that cannot be a UBO owns this company. |
noShareholders | Boolean | When set to true , a company is to be be verified with no shareholders specified in the company profile. For example, in case when the verification level settings require a company to have three shareholders but the company has just one. |
ownershipStructureDepth | Integer | Indicates the number of hierarchical tiers in the company ownership structure. Mind the following:
|
applicant.phone, info.phone, fixedInfo.phone
The following table explains the details of the applicant phone number.
Field | Type | Description |
---|---|---|
country | String | Country code (ISO 3166-1 alpha-3). |
number | String | Applicant's phone number. In a rule, it is important to add only digits without any extra symbols. For example, either 0035736208235 or 35736208235, or just 36208235. |
applicant.derivatives
Field | Type | Description |
---|---|---|
estimatedAge | Integer | An applicant's estimated age. |
applicant.riskLabels
Field | Type | Description |
---|---|---|
email | List of Objects | Email risk labels. |
phone | List of Objects | Phone risk labels. |
device | List of Objects | Device risk labels. |
crossCheck | List of Objects | Cross-check risk labels. |
selfie | List of Objects | Selfie risk labels. |
aml | List of Objects | AML risk labels. |
person | List of Objects | Person risk labels. |
company | List of Objects | Company risk labels. |
applicant.assessment
date
Field | Type | Description |
---|---|---|
timestamp | Long | Unix timestamp in milliseconds. |
yyyymmdd | int | numeric day in the YYYYMMDD format, e.g. 20230123. |
year | int | Year. |
month | int | Months of the year (start from 1). |
dayOfMonth | int | Day of the month (start from 1). |
ageInYears | int | Time delta in years between this date and now. |
ageInDays | int | Time delta in days between this date and now. |
poi.nfc
Field | Type | Description |
---|---|---|
fullMrz | String | Full MRZ. |
preScoringContext.cryptoTxnInfo
Field | Type | Description |
---|---|---|
.answer | String | Transaction risk severity according to Chainalysis. |
riskScore | Double | Transaction risk score. |
signals | Object | A set of the entity types the transaction may belong to. For example, Darknet Service , Online Marketplace , etc. |
preScoringContext.cryptoTxnInfo.chainalysis.alerts
Field | Type | Description |
---|---|---|
riskScore | Double | Transaction risk score. |
red | String | High and severe risk. |
yellow | String | Medium risk. |
green | String | Low risk. |
["alert name"] | String | This is the alert name triggered, for example, terrorist financing , sanctioned entities , and so on. |
preScoringContext.cryptoTxnInfo.chainalysis.addressAlert
Field | Type | Description |
---|---|---|
exposures | String | Name of the cluster the transaction is related to. E.g. Direct , Indirect . |
riskLevel | Double | Indicates the risk level of the address. GREEN , YELLOW , RED , UNKNOWN . |
triggers | Double | Category that is responsible for the alert being generated. |
category | String | Classification of the cluster the address belongs to. E.g. exchange . |
name | String | Name of the entity itself e.g. ChangeNOW . |
preScoringContext.cryptoTxnInfo.chainalysis.alerts["alert name"]
Field | Type | Description |
---|---|---|
alertsLevel | String | The level of severity classification that can be Red , Yellow , Green . |
service | String | Name of the cluster the transaction is related to. For example, Binance , Duelbits . |
category | String | This is the alert category. For exampler, Exchange , Sanctioned Entity . |
alertAmountUsd | Double | Alert amount in USD terms. |
alertAmountInDefaultCurrency | Double | Amount in the user's default currency settings. |
exposureType | String | This can be either Direct , or Indirect . |
settings.travelRuleSettings
Field | Type | Description |
---|---|---|
confirmationTimeoutInSecs | Integer | Timeout in seconds before the transaction gets the approved status. |
decision
Field | Description |
---|---|
approved | An item (transaction , applicant , amlcase ) was approved. |
rejected | An item (transaction , applicant , amlcase ) was rejected. |
reviewAnswer, answer
Field | Description |
---|---|
IGNORED | A check was skipped. |
GREEN | Successful result of the verification and/or check. |
YELLOW | There are some warnings regarding the verification and/or check. |
RED | The violations were found. |
ERROR | An error occured. |
rejectLabels
Field | Description |
---|---|
FORGERY | A forgery attempt was recognized. |
CRIMINAL | Applicant is involved in the illegal actions. |
DOCUMENT_TEMPLATE | The submitted documents are templates downloaded from the internet. |
DIGITAL_DOCUMENT | The applicant uploaded a digital version of the document. |
LOW_QUALITY | Documents have low-quality that doesn't allow definitive decisions to be made. |
SPAM | Applicant was created by mistake or is just a spam user (irrelevant images were supplied). |
NOT_DOCUMENT | Submitted documents aren't relevant for the verification procedure. |
SELFIE_MISMATCH | Applicant's photo (profile image) doesn't match a photo on the provided documents. |
ID_INVALID | A document that identifies a person (like a passport or an ID card) is not valid. |
DOCUMENT_DEPRIVED | Applicant has been deprived of the document. |
FOREIGNER | A rejection label associated with the applicants from an unsupported country or e.g. without a residence permit. |
DUPLICATE | Applicant has multiple accounts while duplicates aren't allowed by the regulations. |
BAD_AVATAR | Applicant's avatar doesn't meet the client's requirements. |
WRONG_USER_REGION | Applicant from a region/country which is not allowed to be registered. |
INCOMPLETE_DOCUMENT | Some information is missing from the document, or it's partially visible. |
BLACKLIST | User is blocklisted by Sumsub. |
BLOCKLIST | User is blocklisted by a client. |
WRONG_ADDRESS | Address from the applicant's documents doesn't match the address entered by them manually. |
OTHER | There is some unclassified reason of rejection. |
UNSATISFACTORY_PHOTOS | There were problems with the photos during verification, like poor quality or masked information. |
GRAPHIC_EDITOR | The document has been edited by a graphical editor. |
DOCUMENT_PAGE_MISSING | Some pages of a document are missing (if applicable). |
DOCUMENT_DAMAGED | Document is damaged. |
REGULATIONS_VIOLATIONS | Some violations of the regulations were found. |
INCONSISTENT_PROFILE | Data or documents of different persons were uploaded to one applicant. |
PROBLEMATIC_APPLICANT_DATA | Applicant data doesn't match the data in their documents. |
ADDITIONAL_DOCUMENT_REQUIRED | Additional documents are required to pass the check. |
AGE_REQUIREMENT_MISMATCH | The Age requirement is not met (e.g. can't rent a car to a person below 25yo). |
REQUESTED_DATA_MISMATCH | Provided information doesn't match with the data recognized from a document. |
EXPERIENCE_REQUIREMENT_MISMATCH | Applicant doesn't have enough experience (e.g. driving experience is not enough). |
COMPROMISED_PERSONS | Applicant doesn't correspond to Compromised Person Politics. |
PEP | Applicant belongs to the PEP category. |
ADVERSE_MEDIA | Applicant was found in the adverse media. |
FRAUDULENT_PATTERNS | There was fraudulent behavior detected during the verification. |
SANCTIONS | Applicant was found on the sanction lists. |
NOT_ALL_CHECKS_COMPLETED | Not all of the checks were completed. |
FRONT_SIDE_MISSING | Front side of the document is missing. |
BACK_SIDE_MISSING | Back side of the document is missing. |
SCREENSHOTS | Applicant uploaded screenshots. |
BLACK_AND_WHITE | Applicant uploaded black and white photos of their documents. |
INCOMPATIBLE_LANGUAGE | Document's translation is required. |
EXPIRATION_DATE | Applicant uploaded an expired document. |
UNFILLED_ID | Applicant uploaded the document without signatures and stamps. |
BAD_SELFIE | Applicant uploaded a selfie in poor quality. |
BAD_VIDEO_SELFIE | Applicant uploaded a video selfie in poor quality. |
BAD_FACE_MATCHING | Face check between a document and a selfie was failed. |
BAD_PROOF_OF_IDENTITY | Applicant uploaded a poor quality ID document. |
BAD_PROOF_OF_ADDRESS | Applicant uploaded a poor quality proof of address. |
BAD_PROOF_OF_PAYMENT | Applicant uploaded a poor quality proof of payment. |
SELFIE_WITH_PAYMENT | Special selfie is required (e.g. selfie with a piece of paper and date on it). |
FRAUDULENT_LIVENESS | There was an attempt to bypass liveness check. |
OK | Custom reject label. |
COMPANY_NOT_DEFINED_STRUCTURE | The entity's control structure wasn't defined. |
COMPANY_NOT_DEFINED_BENEFICIARIES | The entity's beneficial owners weren't identified and duly verified. |
COMPANY_NOT_VALIDATED_BENEFICIARIES | The entity's beneficial owners weren't validated. |
COMPANY_NOT_DEFINED_REPRESENTATIVES | The entity's representatives weren't defined. |
COMPANY_NOT_VALIDATED_REPRESENTATIVES | The entity's representatives weren't validated. |
APPLICANT_INTERRUPTED_INTERVIEW | Applicant refused to finish the interview during the Video Ident call. |
DOCUMENT_MISSING | Applicant refused to show or didn't have required documents during the Video Ident call. |
UNSUITABLE_ENV | Applicant is either not alone or nor visible during the Video Ident call. |
CONNACTION_INTERRUPTED | Video Ident call connection was interrupted. |
aggregate.txns.minutes1
Field | Type | Description |
---|---|---|
cnt | int | Quantity of the aggregated transactions. |
matchedRules | Object | All unique rules matched in this interval. |
amounts | Object | Numerical fields counted in this interval. |
currencyCodes | Object | Unique codes (USD, GBP, BTC, etc.) of the currencies used for this interval. |
deviceFingerprints | Object | Device fingerprints involved within this interval. |
ipCountries | Object | IP addresses of the countries involved within this interval. |
aggregate.byIp.minutes1
Field | Type | Description |
---|---|---|
cnt | int | Quantity of the aggregated transactions. |
externalUserIds | Object | User IDs aggregated on the client side. |
ipInfo
Field | Type | Description |
---|---|---|
ip | String | IP address. |
countryCode2 | String | Country code (ISO 3166-1 alpha-2). |
countryCode3 | String | Country code (ISO 3166-1 alpha-3). |
city | String | City the IP address belongs to. |
zipCode | String | ZIP code. |
lat | Double | Returns a Double value representing the latitude of the position in decimal degrees. |
lon | Double | Returns a Double value representing the longitude of the position in decimal degrees. |
asn | Integer | Autonomous System Number. |
asnOrg | String | ASN organisation. |
riskyAsn | Boolean | A value determining whether ASN is risky or not. |
coords
Field | Type | Description |
---|---|---|
lat | Double | Returns a Double value representing the latitude of the position in decimal degrees. |
lon | Double | Returns a Double value representing the longitude of the position in decimal degrees. |
accuracy | Double | Returns a Double value representing the accuracy of the latitude and longitude properties, expressed in meters. |
applicant.riskLabels.email
Field | Description |
---|---|
mediumRisk | Medium-risk email address. |
highRisk | High-risk email address. |
disposable | Temporary email address which is provided by a disposable email service and usually expires in a few minutes. |
noWebRegistrations | Email registration was not detected. |
noWebsiteExists | Email domain does not exist. |
nonDeliverable | Messages fail to be delivered to this email address. |
invalidEmail | Email address is invalid. |
applicant.riskLabels.phone
Field | Description |
---|---|
mediumRisk | Medium-risk phone number. |
highRisk | High-risk phone number. |
virtual | Virtual phone number that allows a user to make calls through the internet and is not associated with a physical location. |
disposable | Temporary phone number. |
noWebRegistrations | Phone number registration wasn't detected. |
applicant.riskLabels.device
Field | Description |
---|---|
vpnUsage | Detects whether VPN connection is used. |
torUsage | Detects whether TOR connection is used. |
highRiskIp | Indicates high risk IP addresses. |
multipleDevices | Informs about using multiple devices. |
multipleMobileDevices | Informs about using multiple mobile devices. |
lengthySession | Session lasts too long. |
failedSessionContinuation | Session was interrupted. |
distantIpLocations | Login from different and distant IP addresses (> 100 km). |
applicant.riskLabels.crossCheck
Field | Description |
---|---|
diverseIdDocCountries | ID documents issued in different countries. |
manyAccountDuplicates | Lots of the account duplicates are created. |
accountsInManyServices | The same account is registered in different services. |
addressCountryVsIpCountryMismatch | Physical address in the country mismatches the country IP address. |
idDocCountryVsIpCountryMismatch | ID document country mismatches the country IP address. |
exifCountryVsIdDocCountryOrIpCountryMismatch | The country detected by EXIF mismatches either the document country or the country IP address. |
applicant.riskLabels.selfie
Field | Description |
---|---|
asleep | Person in the selfie is asleep. |
forced | Person is coerced into verification. |
multipleFaces | Multiple faces are present. |
estimatedAgeMismatch | Estimated age mismatches the age in the documents. |
virtualCameraPresent | Virtual (software-based) camera that simulates a physical camera is detected. |
manyAttempts | There are numerous attempts of passing the selfie check. |
sameFaceWithDifferentData | There is the same face on the documents with different data. |
applicant.riskLabels.aml
Field | Description |
---|---|
pep | Applicant belongs to the PEP (Politically Exposed Person) category. |
sanctions | Applicant was found in sanctions lists. |
terrorism | Applicant is suspected of terrorism. |
crime | Applicant is suspected of criminal activity. |
adverseMedia | Compromising published information related to the applicant was found in the media. |
fitnessProbity | Applicant does not comply with Fitness and Probity regime. |
applicant.riskLabels.person
Field | Description |
---|---|
famousPerson | Applicant is supposedly a famous person. |
strangeName | Applicant has a strange name that does not seem to be a real one. |
noPhoneNamesFromWebServices | No phone names are found in web services. |
phoneNameMismatchFromWebServices | There is a name mismatch with the names associated with the phone number. |
noEmailNamesFromWebServices | No emails are found in web services. |
emailNameMismatchFromWebServices | There is a name mismatch with the names associated with the email address. |
applicant.riskLabels.company
Field | Description |
---|---|
companyAdditionalDataNotFound | Company data wast not found in the database. |
companyDataMismatch | Company data does not match the data in the database. |
applicant.assessment.scores
Field | Type | Description |
---|---|---|
result | Object | Score without a source key. |
sourceKeys | Map of Objects | Scores by a source key. |
preScoringContext.cryptoTxnInfo.signals
Field | Type | Description |
---|---|---|
atm | Double | Cryptocurrency ATM operator. |
childExploitation | Double | Organization which operates via darknets and is suspected of child abuse and exploitation. |
dark_market | Double | Online marketplace which operates via darknets and is used for trading illegal products for cryptocurrency. |
dark_service | Double | Organization which operates via darknets and offers illegal services for cryptocurrency. |
enforcementAction | Double | The entity is subject to legal proceedings. Jurisdiction will be annotated as a subtype. |
exchangeFraudulent | Double | Exchange that was involved in illegal activity. |
exchangeLicensed | Double | Organization that is licensed to provide exchange services. |
exchangeUnlicensed | Double | Organization that is not licensed to provide exchange services. |
illegalService | Double | Resource offering illegal services or engaged in illegal activities. |
liquidityPools | Double | The smart contracts where tokens are locked for the purpose of providing liquidity. |
marketplace | Double | Entity offering legal services/trading goods for cryptocurrency. |
miner | Double | Organization which utilizes its computing power for mining cryptocurrency blocks. |
mixer | Double | Service for mixing funds from different sources to make tracing them back harder or almost impossible. It is mostly used for money laundering. |
p2pExchangeLicensed | Double | Organization that is licensed to provide P2P exchange services. |
p2pExchangeUnlicensed | Double | Organization that is not licensed to provide P2P exchange services. |
payment | Double | Service which acts as an intermediary between customers and the company which provides services for making a payment. |
ransom | Double | The extortioners demanding payment in the form of cryptocurrency |
sanctions | Double | Organization that is found in sanctions lists. |
scam | Double | Entities that have scammed their customers and taken possession of their cryptocurrency. |
seizedAssets | Double | In the crypto seized by the government, the default Risk Score is 0%. |
stolenCoins | Double | Entities which have taken possession of someone else’s cryptocurrency by hacking. |
terrorismFinancing | Double | Organization which operates via darknets and involved in terrorism financing with cryptocurrency. |
trustedExchange | Double | Exchange that is reliable and can be trusted. |
wallet | Double | Service for storage and making payments with cryptocurrency. |
other | Double | None of the specified entities above. It may include a subtype. |
matchedRules
Field | Type | Description |
---|---|---|
cnt | int | Total quantity of matched rules. |
distinctCnt | int | Unique rules quantity. |
distinctVals | List of Strings | A list of the unique rules. |
amounts
Field | Type | Description |
---|---|---|
cnt | long | Quantity of transactions in the aggregate. |
min | Double | Minimum amount. |
max | Double | Maximum amount. |
mean | Double | Arithmetic mean amount. |
sum | Double | Sum of all transactions per interval. |
applicant.assessment.scores.result, Elements of applicant.assessment.scores.sourceKeys
Field | Type | Description |
---|---|---|
score | Double | Applicant score. |
answer | Object | Answer calculated by the provided score with respect to the threshold from KYT settings. |