Expression attributes

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

FieldType
txnObjectDerived 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.
dataObjectTransaction-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.
aggregateObjectAggregated information about transactions based on certain criteria.
anomalyExpressionDataObjectAnomaly information obtained by anomaly detection ML Model.
applicantObjectApplicant 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.
counterpartyObjectThe other party that participates in the financial transaction.
poiObjectApplicant's proof of identity.
poaObjectApplicant's proof of address.
remitterObject
beneficiaryObject
questionnairesMap of ObjectsThe Questionnaire item values are nested by questionnaire, section, and item id. E.g. questionnaire["myQuestionnaireId"]["mySectionId"]["myItemId"].
propsMap of StringsMap 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"].
preScoringContextObjectPrescoring context that helps to enrich the information about a transaction.
applicantActionObjectAllows to build logic upon applicant action check results.
currentScoreIntegerCurrent score calculated in the rule matching process.
currentMatchedRuleNamesList of StringsList of rule names matched during the current rule-matching process.
currentRuleObjectCurrent rule to be processed and calculated.
currentFailedRulesList of StringsList of rules failed during the current rule-matching process.
clientListsMap of StringsClient lists based on key values.
txnFraudObjectContains information pertaining to Fraud Prevention.

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.

FieldTypeDescription
externalUserIdStringUnique user ID on the client side.
clientIdStringYour identifier as our client in the Sumsub system.
reviewObjectTransaction review.
createdAtDateDate and time (UTC) when a transaction was created in the Sumsub system.
scoringResultObjectOverall scoring result.
tagsList of StringsTransaction tags.
indIntegerIndex 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.
travelRuleInfoObjectTravel 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.

FieldTypeDescription
txnIdStringTransaction ID
txnDateDateThe 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 ).
txnLocalDateLocalDateTimeCalculated value of the transaction creation date and time on the client side if the transaction timezone is provided.
applicantObjectIncludes 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.
infoObjectTransaction-related financial information.
sourceKeyStringSource key assigned to the transaction.
userPlatformEventInfoObjectIndicates the applicant platform event status.

aggregate

FieldTypeDescription
txnsMap of ObjectsThe transactions-related data aggregated and mapped by certain criteria (e.g. in , out, all, rejected, same beneficiary , etc.).
currencyCodesList of StringsUnique currency codes (USD, GBP, BTC, etc.) of all non-rejected transactions.
KytAnomalyStatsScoreExpressionDataObjectAnomaly scores derived from daily statistical patterns, calculated based on the historical behavior of the applicant.

anomalyExpressionData

FieldTypeDescription
anomalyRiskLevelEnumTransactions general anomaly risk level (low, medium, high).

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.

FieldTypeDescription
externalUserIdStringUnique user identifier on your side.
fullNameStringFull name.
dobDateDate of birth.
placeOfBirthStringPlace of birth.
emailStringEmail address.
phoneStringPhone number.
addressObjectActual address (if provided).
typeEnumEntity type: individual or company.
paymentMethodObjectPayment method used by an applicant.
paymentMethodExtractedInfoObjectPayment method information extracted from available data.
deviceObjectInformation regarding the device involved in executing the transaction.
institutionInfoObjectInformation about the financial institution that facilitated the transaction.
institutionExtractedInfoObjectInformation about the financial institution, extracted from available data. Represents the BIC country.

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.

FieldTypeDescription
externalUserIdStringUnique user identifier on your side.
fullNameStringFull name.
dobDateDate of birth.
placeOfBirthStringPlace of birth.
emailStringEmail address.
phoneStringPhone number.
addressObjectActual address (if provided).
typeEnumEntity type: individual or company.
paymentMethodObjectPayment method used by a counterparty.
paymentMethodExtractedInfoObjectPayment method information extracted from available data.
deviceObjectInformation regarding the device involved in executing the transaction.
institutionInfoObjectInformation about the financial institution that facilitated the transaction.
institutionExtractedInfoObjectInformation about the financial institution, extracted from available data. Represents the 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.

FieldTypeDescription
idStringUnique applicant identifier.
externalUserIdStringUnique user identifier on your side.
createdAtDateThis 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.
fullNameStringFull name.
countryStringApplicant country (ISO 3166-1 alpha-3).
countryOfBirthStringApplicant country of birth (ISO 3166-1 alpha-3).
infoObjectInformation extracted from the applicant documents.
fixedInfoObjectBasic information on an applicant provided to the Sumsub SDK/API.
reviewObjectApplicant review.
sourceKeyStringSource key assigned to an applicant.
derivativesObjectVarious information derived from an applicant.
metadataMap of StringsApplicant's metadata.
riskLabelsObjectApplicant risk labels.
tagsList of StringsApplicant tags.
assessmentObjectApplicant assessment.
emailStringApplicant's email.
phoneObjectIncludes the details of the applicant's phone number.
emailDomainStringApplicant email's domain name.
typeEnumApplicant entity type: individual or company.
allMemberRolesList of StringsRoles of the applicant (shareholder, representative, director, ubo).

applicantAction

FieldTypeDescription
indIntegerIndex 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.
questionnairesMap of objectsQuestionnaire item values are nested by questionnaire, section, and item id. E.g. questionnaire["myQuestionnaireId"]["mySectionId"]["myItemId"].
reviewObjectAction review results.

poi

FieldTypeDescription
countryStringID document country (ISO 3166-1 alpha-3).
idDocTypeObjectID document type (e.g., ID card, Passport, Driver's license, etc.).
numberStringID document number.
additionalnumberStringID document additional number.
dobDateDate of birth of the document owner.
nationalityStringNationality of the document owner (ISO 3166-1 alpha-3).
placeOfBirthStringPlace of birth of the document owner.
issuedDateDateDate when the document was issued.
issueAuthorityStringAuthority that issued the ID document.
issueAuthorityCodeStringUnique code of the authority that issued the ID document.
validUntilDateValidity date of the ID document.
validityPeriodObjectValidity period of the ID document.
firtsIssuedDateDateDate when the document was first issued.
metadataMap of stringsMetadata related to a Proof of Identity.
addressObjectAddress specified in the ID document.
categoryStringID document category (e.g., category of a driver's license).
nfcObjectData retrieved from the NFC chip embedded in the identity document.
fullMrzStringMachine-readable zone (MRZ) lines, separated by the End of Line (\n) symbol.

poa

FieldTypeDescription
countryStringPoA (Proof of Address) document country (ISO 3166-1 alpha-3).
idDocTypeObjectPoA document type (e.g., Passport, Residence permit, etc.).
numberStringPoA document number.
metadataMap of stringsPoA related metadata.
addressObjectAddress specified in the PoA document.
issuedDateDateDate when the PoA document was issued.
detectedLanguagesList of StringsList of detected languages, presented using 2-letter codes (ISO 639-1).
imageObjectTechnical details of the document image.

preScoringContext

FieldTypeDescription
cryptoTxnInfoObjectCryptotransaction-related information.
amlCaseReviewObjectAML case review result.
paymentDetailsReviewObjectPayment details review result.
paymentMethodsSummaryObjectPayment methods statistics.
kytAnomalyStatsScoreObjectAnomaly scores derived from daily statistical patterns, calculated based on the historical behavior of the applicant.

currentRule

FieldTypeDescription
nameStringCurrent short name of the rule.
idStringCurrent ID of the rule.
revisionIntegerCurrent version of the rule's revision.
titleStringCurrent full title of the rule.
scoreIntegerScore that can be assigned to a transaction by the current rule.
dryRunBooleanValue determining whether a rule should be applied in the Test mode.
tagsList of StringsTags that can be assigned to a transaction by the current rule if it is applied.
sourceKeysList of StringsRule is only applied if the transaction has one of the listed source keys.

txnFraud

FieldTypeDescription
categorizationsMap of Double-sCategories identified by behavioral scoring model.
behavioralObjectContains information pertaining to the user's behavioral data.
emailObjectContains information pertaining to the user's email data.
phoneObjectContains information pertaining to the user's phone data.
ipObjectContains information pertaining to the user's IP address data.
deviceObjectContains information pertaining to the user's device data.

review

FieldTypeDescription
attemptCntIntegerNumber of the current check attempt on the same verification level.
buttonIdsArray of stringsList of button IDs that have been used for rejection.

Specific buttonId is automatically assigned to each rejection. For more details, see Temporary rejection and Final rejection clarification.
decisionObjectReview decision.
levelNameStringApplicant verification level.
rejectLabelsList of ObjectsList of rejection labels.
reviewAnswerObjectReview answer.

paymentDetailsReview

FieldTypeDescription
suspiciousPaymentDetailsBooleanDetects if there are risky words used in the transaction. true or false.

paymentMethodsSummary

FieldTypeDescription
cntIntegerPayment methods quantity.
duplicateAccountIdsList of StringsDuplicate accountIds used for payment methods by applicants within your same project. Includes the current transaction.
accountsMap of ObjectsAll payment methods used by the applicant of the current transaction.

txn.scoringResult

FieldTypeDescription
scoreIntegerCalculated score of the transaction.
dryScoreIntegerCalculated Test score of the transaction which would be assigned by the rules applied in the Test mode.
matchedRulesList of ObjectsAll rules that matched during the scoring session.
failedRulesList of ObjectsAll rules that failed during the scoring session.
ruleCntIntegerTotal number of the rules counted for a transaction.
dryRunRuleCntIntegerTotal number of the rules in the Test mode counted for a transaction.

txn.travelRuleInfo

FieldTypeDescription
protocolNameEnumName of the protocol used during the information exchange.
applicantObjectApplicant data used during the information exchange.
counterpartyObjectCounterparty information used during the information exchange.
originatorObject

Transaction originator data used during the process of the information exchange.

beneficiaryObject

Transaction beneficiary data used during the process of the information exchange.

statusEnumCurrent state of the information exchange.
expiredAtDateIf the timer is set, the transaction will be re-scored after a certain period of time.
applicantVaspIdObjectIdStores information about the applicant VASP institution.
counterpartyVaspIdObjectIdStores information about the counterparty VASP institution.

txn.travelRuleInfo.protocolName

txn.travelRuleInfo.status

ValueDescription
counterpartyVaspNotReachableData couldn't be sent since the second side of the transaction was not reachable. The response from the counterparty hasn’t been received.
counterpartyVaspNotFoundSecond side of the transaction was not found.
awaitingCounterpartySecond side of the transaction was found and the data was sent. The response from the counterparty is awaited.
onHoldSecond side of the transaction was found and the data was sent. The transaction has been interrupted on the second side.
expiredSecond side of the transaction was found and the data was sent. There was no response received from the counterparty on time.
unconfirmedOwnershipSecond side of the transaction was found and the data was sent. Wallet ownership has not been confirmed.
counterpartyUnconfirmedOwnershipSecond side of the transaction was found and the data was sent. The negative response on wallet ownership has been received.
counterpartyMismatchedDataData has been sent, compared and there is a mismatch between both data sets.
counterpartyVaspGeneralDeclineFor inbound and outbound messages, the counterparty declines the transaction. Mostly applicable when dealing with counterparties on connected protocols.
notEnoughCounterpartyDataNot enough information was found about the second side of the transaction.
completedTransaction is completed.
cancelledCounterparty 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.
finishedBlockchain transaction ID has been updated in the completed transaction record. This status always follows the completed status.

data.info

FieldTypeDescription
paymentTxnIdStringIdentifier from the payment processor: blockchain, bank.
typeStringTransaction type: card, account, crypto.
directionStringIt can be out (applicant sends to counterparty) or in (counterparty sends to applicant).
amountDoubleAmount of funds sent within the transaction in the currency used by the 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".
currencyCodeStringCode of the currency in which the transaction was made.
currencyTypeEnumType of the transaction currency: fiat or crypto.
amountInDefaultCurrencyDoubleTransaction amount in the default currency.
defaultCurrencyCodeStringCode of the default currency.
paymentDetailsStringComment with payment details.
mccString4-digit number representing Merchant Category Code (MCC).

data.userPlatformEventInfo

FieldTypeDescription
typeEnumUser event type sent within the transaction: login, failedLogin, signup, passwordReset, twoFaReset, general.
passwordHashStringHashed representation of the user’s password, used to detect and prevent fraud by identifying repeated use of the same password across multiple accounts.

aggregate.txns

FieldTypeDescription
minutes1ObjectOne minute from the moment a transaction is made.
minutes3ObjectThree minutes from the moment a transaction is made.
minutes5ObjectFive minutes from the moment a transaction is made.
hours1ObjectOne hour from the moment a transaction is made.
hours3ObjectThree hour from the moment a transaction is made.
days1ObjectOne day from the moment a transaction is made.
days2ObjectTwo days from the moment a transaction is made.
days3ObjectThree days from the moment a transaction is made.
day7ObjectSeven days from the moment a transaction is made.
days14ObjectFourteen days from the moment a transaction is made.
days30ObjectThirty days from the moment a transaction is made.
days90ObjectNinety days from the moment a transaction is made.
months1ObjectOne month from the moment a transaction is made.
months2ObjectTwo months from the moment a transaction is made.
months3ObjectThree months from the moment a transaction is made.
months6ObjectSix months from the moment a transaction is made.
months12ObjectTwelve months from the moment a transaction is made.
currentCalendarMonthObjectCurrent calendar month related to the date when a transaction is made.
previousCalendarMonthObjectPrevious calendar month related to the date when a transaction is made.
allTimeObjectOverall period of time from the date when a transaction is made.

aggregate.byIp

FieldTypeDescription
minutes1ObjectOne minute from the moment a transaction is made by a certain IP address.
minutes3ObjectThree minutes from the moment a transaction is made by a certain IP address.
hours1ObjectOne hour from the moment a transaction is made by a certain IP address.
hours3ObjectThree hour from the moment a transaction is made by a certain IP address.
days1ObjectOne day from the moment a transaction is made by a certain IP address.
days2ObjectTwo days from the moment a transaction is made by a certain IP address.
days3ObjectThree days from the moment a transaction is made by a certain IP address.
day7ObjectSeven days from the moment a transaction is made by a certain IP address.
days14ObjectFourteen days from the moment a transaction is made by a certain IP address.
days30ObjectThirty days from the moment a transaction is made by a certain IP address.
days90ObjectNinety days from the moment a transaction is made by a certain IP address.
months1ObjectOne month from the moment a transaction is made by a certain IP address.
months3ObjectThree months from the moment a transaction is made by a certain IP address.
months12ObjectTwelve months from the moment a transaction is made by a certain IP address.
currentCalendarMonthObjectCurrent calendar month related to the date when a transaction is made by a certain IP address.
previousCalendarMonthObjectPrevious calendar month related to the date when a transaction is made by a certain IP address.

aggregate.kytAnomalyStatsScoreExpressionData, preScoringContext.kytAnomalyStatsScore

FieldTypeDescription
dailyTurnoverAnomalyRiskLevelEnumAnomaly score based on the applicant's daily turnover and history. Shows how abnormally large the turnover is with respect to applicant history. Bucketed into low - medium - high level of abnormality. For applicants with no history, average amount is used.
dailyTurnoverEWMADoubleExponentially weighted moving average used to calculate anomaly score for turnover.
dailyTxnCntAnomalyRiskLevelEnumAnomaly score based on the applicant's daily number of transactions and history. Shows how abnormally large the number of transactions is with respect to applicant history. Bucketed into low - medium - high level of abnormality. For applicants with no history, average number is used.
dailyTxnCntEWMADoubleExponentially weighted moving average used to calculate anomaly score for number of transactions.

address

FieldTypeDescription
countryStringCountry code (ISO 3166-1 alpha-3).
formattedAddressStringAddress in an human-readable format.
stateStringName of the state or region if applicable.
townStringTown if applicable.
streetStringStreet if applicable.
subStreetStringStreet (line 2) if applicable.
postCodeStringPost code if applicable.

type

FieldDescription
individualIndividual applicant.
companyCompany applicant.

paymentMethod

FieldTypeDescription
typeStringPayment method type: card, account, crypto.
accountIdStringBank card number; bank account number; crypto address.
issuingCountryStringPayment issuing country code in Alpha-3 format.
memoStringOptional field in blockchain transactions to attach metadata or messages for identification, routing, or compliance purposes.

device

FieldTypeDescription
ipInfoObjectData about the IP address used.
userAgentStringDevice user-agent.
sessionIdStringID of the transaction session.
sessionAgeMsLongSession lifetime in milliseconds.
acceptLangStringLanguage of the browser used by a transaction participant, e.g. en.
platformStringDevice platform, e.g., Mobile Android.
coordsObjectGeographical coordinates.
addressObjectAddress related to a device.
fingerprintStringDevice 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.

FieldTypeDescription
codeStringTransaction institution code, e.g. BIC.
nameStringTransaction institution name.
addressObjectTransaction institution address.
vaspObjectDirectory information about VASP (Virtual Asset Service Provider).

vasp

The following table explains the VASP (Virtual Asset Service Provider) directory information.

FieldTypeDescription
headquartersCountryStringAlpha-3 code of the country where the VASP is legally registered and where its headquarter is located (for example, DEU, GBR, ARG, and so on).
countriesList of StringsList of all the registration countries for legal entities of the VASP. Presented as Alpha-3 code (e.g., DEU, GBR, ARG).
regulationTypeEnum

Represents the type of regulation for VASP (Virtual Asset Service Provider).

  • authorized — licensed or registered.
  • temporaryExemption — registration process has already been initiated but has not yet been completed.
  • unauthorized — unlicensed or unregistered.
essentialChecksStatusEnum

Status of the Essential Checks.

  • initiated — the VASP has just been added and is yet to complete any checks.
  • essentialChecksDone — the VASP for which Sumsub has only the information from blockchain analytics.
  • extendedEssentialChecksDone — Extended Essential Checks (EEC) have been passed.
  • rejected — the VASP is rejected due to a number of reasons.
dueDiligenceStausEnum

Status of the Due Diligence.

  • notStarted — the Due Diligence process has not been yet begun.
  • inProgress — the Due Diligence process is underway.
  • completed — the VASP has passed Due Diligence.
  • rejected — the VASP is rejected due to a number of reasons.

Note that a VASP with Due Diligence completed will have either essentialChecksDone or extendedEssentialChecksDone status as well.

riskScoreAnswerEnum

Refers to the VASP classification based on its type.

  • GREEN — if the VASP type is exchange_licensed, wallet, payment.
  • YELLOW — if the VASP type is exchange_unlicensed, payment, other, atm, p2p_exchange_unlicensed, marketplace, liquidity_pools, transparent.
  • ERROR — no data received from the provider.
  • RED — otherwise.
supportsSnsProtocolBooleanIndicates whether the VASP supports exchanging data via SNS protocoltrue, or not — false.
supportsGtrProtocolBooleanIndicates whether the VASP supports exchanging data via GTR protocoltrue, or not — false.
supportsCodeProtocolBooleanIndicates whether the VASP supports exchanging data via CODE protocoltrue, or not — false.
emailExistsBooleanVASP profile contains an associated email address.
urlExistsBooleanVASP profile contains an associated website address.
scoreDoubleVASP profile includes a score derived from EEC (Extended Essential Checks) assessments.
hiddenBooleanUsed to differentiate VASPs to be added to your VASPs list. If set to true, the VASP is categorized as one of the following: internal, test, risky, or a duplicate of an existing VASP.

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.
FieldTypeDescription
countryStringApplicant country (ISO 3166-1 alpha-3).
countryOfBirthStringApplicant country of birth (ISO 3166-1 alpha-3).
firstnameStringFirst name.
firstnameEnStringTransliterated first name.
middleNameStringMiddle name.
middleNameEnStringTransliterated middle name.
lastNameStringLast name.
lastnameEnStringTransliterated last name.
genderStringApplicant gender (M or F).
nationalityStringNationality (ISO 3166-1 alpha-3 country code).
taxResidenceCountryStringTax residence country (ISO 3166-1 alpha-3).
residenceCountryStringResidence country (ISO 3166-1 alpha-3).
ageStringApplicant age.
addressStringApplicant address.
companyInfoObjectCompany information (KYB).
tinStringTax identification number.
phoneObjectIncludes the details of the applicant phone number.

applicant.info.companyInfo, applicant.fixedInfo.companyInfo

The following table explains the companyInfo attributes.

FieldTypeDescription
countryStringAlpha-3 code of the country where the company is legally registered (for example, DEU, GBR, and so on).
typeStringType of legal entity. For example, private company limited by shares, public limited company, state-owned enterprise, and so on.
companyNameStringThe name of the company.
registrationNumberStringUnique number that is assigned to the company when it was registered as a legal entity.
addressObjectCompany address details.
legalAddressStringAddress a legal entity uses to register with a legal authority.
postalAddressStringCompany postal address.
registrationLocationStringCity, town, or another location where the company was registered.
incorporatedOnDateDate of company incorporation (format YYYY-mm-dd, e.g. 2001-09-25).
incorporationDateDateDate of company incorporation in the broader spectrum.
emailStringCompany email address.
phoneStringCompany phone number.
taxIdStringTaxpayer registration number/Code of taxpayer registration.
websiteStringWebsite URL of the company.
noUBOsBooleanWhen 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.
noShareholdersBooleanWhen 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.
ownershipStructureDepthInteger

Indicates the number of hierarchical tiers in the company ownership structure.

Mind the following:

  • Intermediate companies have their own ownershipStructureDepth values.
  • If a company has no associated parties, ownershipStructureDepth is null or empty.
  • ownershipStructureDepth is only calculated for KYB 2.0.
beneficiaryStatsObjectAggregates across all company beneficiaries.

applicant.info.companyInfo.beneficiaryStats, applicant.fixedInfo.companyInfo.beneficiaryStats

FieldTypeDescription
rejectLabelsList of StringsAll reject labels of the beneficiaries.

applicant.phone, info.phone, fixedInfo.phone

The following table explains the details of the applicant phone number.

FieldTypeDescription
countryStringCountry code (ISO 3166-1 alpha-3).
numberStringApplicant'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

FieldTypeDescription
estimatedAgeIntegerApplicant's estimated age.

applicant.riskLabels

FieldTypeDescription
emailList of ObjectsEmail risk labels.
phoneList of ObjectsPhone risk labels.
deviceList of ObjectsDevice risk labels.
deviceCheckList of ObjectsDevice check risk labels.
crossCheckList of ObjectsCross-check risk labels.
selfieList of ObjectsSelfie risk labels.
amlList of ObjectsAML risk labels.
personList of ObjectsPerson risk labels.
companyList of ObjectsCompany risk labels.

applicant.assessment

FieldTypeDescription
scoresMap of objectsTotal score that is calculated from the applied Rules and assigned to the applicant, primarily to set thresholds based on the applicant score.

date

FieldTypeDescription
ageInDaysIntegerTime delta in days between this date and now.
ageInYearsIntegerTime delta in years between this date and now.
dayOfMonthIntegerDay of the month (starts from 1).
monthIntegerMonth of the year (starts from 1).
timestampLongUnix timestamp in milliseconds.
yearIntegerYear.
yyyymmddIntegerNumeric day in the YYYYMMDD format, e.g. {@literal 20230123}.

poi.validityPeriod

FieldTypeDescription
millislongPeriod in milliseconds.
dayslongPeriod in days.
hourslongPeriod in hours.
minuteslongPeriod in minutes.
secondslongPeriod in seconds.

poi.nfc

Data retrieved from the NFC chip embedded in the identity document.

FieldTypeDescription
fullMrzStringFull MRZ (machine-readable zone).

poa.image

FieldTypeDescription
softwareTagStringSoftware used for the image processing.

preScoringContext.cryptoTxnInfo

FieldTypeDescription
.answerStringTransaction risk severity according to Chainalysis.
riskScoreDoubleTransaction risk score.
signalsObjectA set of the entity types the transaction may belong to. For example, Darknet Service , Online Marketplace , etc.
chainalysisObjectTransaction monitoring data extracted from Chainalysis.

preScoringContext.cryptoTxnInfo.chainalysis

FieldTypeDescription
alertsMap of objectsAlerts generated by Chainalysis.
addressAlertObjectAddress alert generated by Chainalysis.

preScoringContext.cryptoTxnInfo.chainalysis.alerts

FieldTypeDescription
riskScoreDoubleTransaction risk score.
redStringHigh and severe risk.
yellowStringMedium risk.
greenStringLow risk.
["alert name"]StringThis is the alert name triggered, for example, terrorist financing, sanctioned entities, and so on.

preScoringContext.cryptoTxnInfo.chainalysis.addressAlert

FieldTypeDescription
riskLevelDoubleIndicates the risk level of the address. GREEN, YELLOW, RED, UNKNOWN.
exposuresStringName of the cluster the transaction is related to. E.g. Direct, Indirect.
triggersDoubleCategory that is responsible for the alert being generated.
categoryStringClassification of the cluster the address belongs to. E.g. exchange.
nameStringName of the entity itself e.g. ChangeNOW.

preScoringContext.cryptoTxnInfo.chainalysis.alerts["alert name"]

FieldTypeDescription
alertsLevelStringThe level of severity classification that can be Red, Yellow, Green.
serviceStringName of the cluster the transaction is related to. For example, Binance, Duelbits.
categoryStringThis is the alert category. For exampler, Exchange, Sanctioned Entity.
alertAmountUsdDoubleAlert amount in USD terms.
alertAmountInDefaultCurrencyDoubleAmount in the user's default currency settings.
exposureTypeStringThis can be either Direct, or Indirect.

txnFraud.behavioral

FieldTypeDescription
riskLevelEnumSumsub valuation of associated risk.
labelsList of StringsLabels identified by behavioral scoring model.
metricsMap of DoublesMetrics identified by behavioral scoring model.

txnFraud.email

FieldTypeDescription
riskLevelEnumSumsub valuation of associated risk.
labelsList of StringsLabels identified by fraud model.
factsMap of DoublesInformation about the email, such as the number of breaches (public Enum breachesCnt).

txnFraud.phone

FieldTypeDescription
riskLevelEnumSumsub valuation of associated risk.
labelsList of StringsLabels identified by fraud model.

txnFraud.ip

FieldTypeDescription
riskLevelEnumSumsub valuation of associated risk.
labelsList of StringsLabels identified by fraud model.

txnFraud.device

FieldTypeDescription
riskLevelEnumSumsub valuation of associated risk.
labelsList of StringsLabels identified by fraud model.

decision

FieldDescription
approvedAn item (transaction, applicant, amlcase) was approved.
rejectedAn item (transaction, applicant, amlcase) was rejected.
resubmissionResubmission requested.

reviewAnswer, answer

FieldDescription
IGNOREDCheck was skipped.
GREENSuccessful result of the verification and/or check.
YELLOWThere are some warnings regarding the verification and/or check.
REDViolations were found.
ERRORError occured.

rejectLabels

FieldDescription
ADDITIONAL_DOCUMENT_REQUIREDAdditional documents are required to pass the check.
ADVERSE_MEDIAApplicant was found in the adverse media.
AGE_REQUIREMENT_MISMATCHThe Age requirement is not met (e.g. can't rent a car to a person below 25yo).
APPLICANT_INTERRUPTED_INTERVIEWApplicant refused to finish the interview during the Video Ident call.
BACK_SIDE_MISSINGBack side of the document is missing.
BAD_AVATARApplicant's avatar doesn't meet the client's requirements.
BAD_FACE_MATCHINGFace check between a document and a selfie was failed.
BAD_PROOF_OF_ADDRESSApplicant uploaded a poor quality proof of address.
BAD_PROOF_OF_IDENTITYApplicant uploaded a poor quality ID document.
BAD_PROOF_OF_PAYMENTApplicant uploaded a poor quality proof of payment.
BAD_SELFIEApplicant uploaded a selfie in poor quality.
BAD_VIDEO_SELFIEApplicant uploaded a video selfie in poor quality.
BLACK_AND_WHITEApplicant uploaded black and white photos of their documents.
BLACKLISTUser is blocklisted by Sumsub.
BLOCKLISTUser is blocklisted by you.
CHECK_UNAVAILABLEExternal database service is not available at the moment.
COMPANY_DATA_MISMATCHCompany attributes like Name, Registration on the provided documents do not match the state company registry.
COMPANY_INACTIVE_ENTITYAccording to the publicly available state company registry, the entity is inactive, dissolved, or deregistered.
COMPANY_INCORRECT_DATAProvided company attributes like Name, Registration or Tax Number do not match the provided documents or the state company registry.
COMPANY_NOT_DEFINED_BENEFICIARIESThe entity's beneficial owners weren't identified and duly verified.
COMPANY_NOT_DEFINED_OWNERSHIP_STRUCTURECompany ownership structure has not been specified or differs from the one declared by the corporate documents.
COMPANY_NOT_DEFINED_REPRESENTATIVESThe entity's representatives weren't defined.
COMPANY_NOT_DEFINED_STRUCTUREThe entity's control structure wasn't defined.
COMPANY_NOT_VALIDATED_BENEFICIARIESThe entity's beneficial owners weren't validated.
COMPANY_NOT_VALIDATED_BENEFICIAL_OWNERSNot all beneficial owners have passed the KYC verification procedure.
COMPANY_NOT_VALIDATED_DIRECTORSNot all directors have passed the KYC verification procedure.
COMPANY_NOT_VALIDATED_REPRESENTATIVESThe entity's representatives weren't validated.
COMPANY_PROBLEMATIC_STRUCTUREThere are officials in the control and ownership structure who got rejected.
COMPROMISED_PERSONSApplicant doesn't correspond to Compromised Person Politics.
CONNACTION_INTERRUPTEDVideo Ident call connection was interrupted.
CRIMINALApplicant is involved in the illegal actions.
DB_DATA_MISMATCHInput data/doc does not match the data from the external database.
DB_DATA_NOT_FOUNDData not found in the external database.
DB_NO_DATA_SOURCEInput data is not supported by any enabled source.
DIGITAL_DOCUMENTApplicant uploaded a digital version of the document.
DOCUMENT_DAMAGEDDocument is damaged.
DOCUMENT_DEPRIVEDApplicant has been deprived of the document.
DOCUMENT_MISSINGApplicant refused to show or didn't have required documents during the Video Ident call.
DOCUMENT_PAGE_MISSINGSome pages of a document are missing (if applicable).
DOCUMENT_TEMPLATESubmitted documents are templates downloaded from the internet.
DUPLICATEApplicant has multiple accounts while duplicates aren't allowed by the regulations.
EXPERIENCE_REQUIREMENT_MISMATCHApplicant doesn't have enough experience (e.g. driving experience is not enough).
EXPIRATION_DATEApplicant uploaded an expired document.
FOREIGNERRejection label associated with the applicants from an unsupported country or e.g. without a residence permit.
FORGERYForgery attempt was recognized.
FRAUDULENT_LIVENESSThere was an attempt to bypass liveness check.
FRAUDULENT_PATTERNSThere was fraudulent behavior detected during the verification.
FRONT_SIDE_MISSINGFront side of the document is missing.
GRAPHIC_EDITORDocument has been edited by a graphical editor.
GPS_AS_POA_SKIPPEDWhen GpsAsPoa was skipped and no image uploaded.
ID_INVALIDDocument that identifies a person (like a passport or an ID card) is not valid.
INCOMPATIBLE_LANGUAGEDocument's translation is required.
INCOMPLETE_DOCUMENTSome information is missing from the document, or it's partially visible.
INCONSISTENT_PROFILEData or documents of different persons were uploaded to one applicant.
INCORRECT_SOCIAL_NUMBERIncorrect TIN/SSN was provided to perform the check.
LOW_QUALITYDocuments have low-quality that doesn't allow definitive decisions to be made.
MORE_DOCUMENTS_REQUIREDAdditional documents are required to pass the check for applicant review.
NOT_ALL_CHECKS_COMPLETEDNot all of the checks were completed.
NOT_DOCUMENTSubmitted documents aren't relevant for the verification procedure.
OKCustom reject label.
OTHERThere is some unclassified reason of rejection.
OUTDATED_DOCUMENT_VERSIONBased on the publicly available state company register, not the most recent version was provided.
PEPApplicant belongs to the PEP category.
PROBLEMATIC_APPLICANT_DATAApplicant data doesn't match the data in their documents.
REGULATIONS_VIOLATIONSSome violations of the regulations were found.
REQUESTED_DATA_MISMATCHProvided information doesn't match with the data recognized from a document.
RESTRICTED_PERSONPerson is found in a restricted list (e.g., prohibited from betting).
SANCTIONSApplicant was found on the sanction lists.
SCREENSHOTSApplicant uploaded screenshots.
SELFIE_MISMATCHApplicant's photo (profile image) doesn't match a photo on the provided documents.
SELFIE_WITH_PAYMENTSpecial selfie is required (e.g. selfie with a piece of paper and date on it).
SPAMApplicant was created by mistake or is just a spam user (irrelevant images were supplied).
SUSPICIOUS_PATTERNSAn obsolete label. The applicant may have previously received a “Rejected” status in the dashboard due to patterns potentially implying a non-genuine verification attempt (e.g., signs of artificially altered data, third-party involvement, etc).
THIRD_PARTY_INVOLVEDVideo Ident user is trying to pass verification to transfer the account to a third party.
UNFILLED_IDApplicant uploaded the document without signatures and stamps.
UNSATISFACTORY_PHOTOSThere were problems with the photos during verification, like poor quality or masked information.
UNSUITABLE_DOCUMENTDocument either does not fit the required type or lacks obligatory elements, like seal, apostille, or notary certification.
UNSUITABLE_ENVApplicant is either not alone or nor visible during the Video Ident call.
UNSUPPORTED_LANGUAGEVideo Ident user does not speak the language common to the operator.
WRONG_ADDRESSAddress from the applicant's documents doesn't match the address entered by them manually.
WRONG_USER_REGIONApplicant from a region/country which is not allowed to be registered.

aggregate.txns[].minutes1

FieldTypeDescription
cntintQuantity of the aggregated transactions.
matchedRuleNamesObjectAll unique rules matched in this interval.
matchedRuleNamesByTagObjectAll unique rules matched in this interval by tag.
amountsObjectNumerical fields counted in this interval.
currencyCodesObjectUnique codes (USD, GBP, BTC, etc.) of the currencies used for this interval.
deviceFingerprintsObjectDevice fingerprints involved within this interval.
ipCountriesObjectIP addresses of the countries involved within this interval.

aggregate.txnPercentileAggregates.byIp

FieldTypeDescription
days7ObjectSeven days from the moment the transaction is made.
days14ObjectFourteen days from the moment the transaction is made.
days30ObjectThirty days from the moment the transaction is made.

ipInfo

FieldTypeDescription
ipStringIP address.
countryStringCountry code (ISO 3166-1 Alpha-2).
cityStringCity the IP address belongs to.
zipCodeStringZIP code.
latDoubleReturns a Double value representing the latitude of the position in decimal degrees.
lonDoubleReturns a Double value representing the longitude of the position in decimal degrees.
asnIntegerAutonomous System Number.
asnOrgStringASN organisation.
riskyAsnBooleanA value determining whether ASN is risky or not.

coords

FieldTypeDescription
latDoubleReturns a Double value representing the latitude of the position in decimal degrees.
lonDoubleReturns a Double value representing the longitude of the position in decimal degrees.
accuracyDoubleReturns a Double value representing the accuracy of the latitude and longitude properties, expressed in meters.

applicant.riskLabels.email

FieldDescription
mediumRiskMedium-risk email address.
highRiskHigh-risk email address.
disposableTemporary email address which is provided by a disposable email service and usually expires in a few minutes.
noWebRegistrationsEmail registration was not detected.
noWebsiteExistsEmail domain does not exist.
nonDeliverableMessages fail to be delivered to this email address.
invalidEmailEmail address is invalid.

applicant.riskLabels.phone

FieldDescription
mediumRiskMedium-risk phone number.
highRiskHigh-risk phone number.
virtualVirtual phone number that allows a user to make calls through the internet and is not associated with a physical location.
disposableTemporary phone number.
noWebRegistrationsPhone number registration wasn't detected.

applicant.riskLabels.device

FieldDescription
vpnUsageDetects whether VPN connection is used.
torUsageDetects whether TOR connection is used.
highRiskIpIndicates high risk IP addresses.
multipleDevicesInforms about using multiple devices.
multipleMobileDevicesInforms about using multiple mobile devices.
lengthySessionSession lasts too long.
failedSessionContinuationSession was interrupted.
distantIpLocationsLogin from different and distant IP addresses (> 100 km).
thirdPartyLinkAccessLink access via external source, e.g., WhatsApp or Telegram.
riskySessionContinuationContinuation of the session from a risky IP when the link was failed to be opened or accessed from a messenger.

applicant.riskLabels.deviceCheck

FieldDescription
badBotIndicates that the bot is an automated tool that does not have legitimate uses and assumes fraudulent activity.
tamperingIndicates the usage of anti-detect browser or tampering with the browser default behaviour.
virtualMachineDetects whether the browser is running inside a virtualization software by examining the browser configuration.
remoteControlIndicates whether the request originated from a device being remotely controlled or remotely controlling another device.
goodBotIndicates that the bot is a well-known web crawler or other search engine bot.
incognitoDetects whether incognito or private modes are being used.
privacySettingsModePrivacy settings that have the ability to randomize and obfuscate signal output are enabled.
highActivityNumber of visits for the past 24 hours surpasses a threshold. The threshold is calculated for each user separately and is determined through a normal traffic distribution.
developerToolsInforms whether developer tools were manually opened in Chrome or Firefox browsers.

applicant.riskLabels.crossCheck

FieldDescription
diverseIdDocCountriesID documents issued in different countries.
manyAccountDuplicatesLots of the account duplicates are created.
accountsInManyServicesThe same account is registered in different services.
addressCountryVsIpCountryMismatchPhysical address in the country mismatches the country IP address.
idDocCountryVsIpCountryMismatchID document country mismatches the country IP address.
exifCountryVsIdDocCountryOrIpCountryMismatchThe country detected by EXIF mismatches either the document country or the country IP address.

applicant.riskLabels.selfie

FieldDescription
asleepPerson in the selfie is asleep.
forcedPerson is coerced into verification.
multipleFacesMultiple faces are present.
estimatedAgeMismatchEstimated age mismatches the age in the documents.
virtualCameraPresentVirtual (software-based) camera that simulates a physical camera is detected.
manyAttemptsThere are numerous attempts of passing the selfie check.
sameFaceWithDifferentDataThere is the same face on the documents with different data.

applicant.riskLabels.aml

FieldDescription
pepApplicant belongs to the PEP (Politically Exposed Person) category.
sanctionsApplicant was found in sanctions lists.
terrorismApplicant is suspected of terrorism.
crimeApplicant is suspected of criminal activity.
adverseMediaCompromising published information related to the applicant was found in the media.
fitnessProbityApplicant does not comply with Fitness and Probity regime.

applicant.riskLabels.person

FieldDescription
famousPersonApplicant is supposedly a famous person.
strangeNameApplicant has a strange name that does not seem to be a real one.
noPhoneNamesFromWebServicesNo phone names are found in web services.
phoneNameMismatchFromWebServicesThere is a name mismatch with the names associated with the phone number.
noEmailNamesFromWebServicesNo emails are found in web services.
emailNameMismatchFromWebServicesThere is a name mismatch with the names associated with the email address.

applicant.riskLabels.company

FieldDescription
companyAdditionalDataNotFoundAdditional company fields are absent in the database.
companyDataMismatchMismatch of additional company fields in the database.
companyDocumentMissesRequiredFieldRequired company fields are absent in the document.
companyDocumentDataMismatchMismatch of additional company fields in the document.

applicant.assessment.scores

FieldTypeDescription
tagStringApplicant tag.
scoreFloatApplicant score.

preScoringContext.cryptoTxnInfo.signals

FieldTypeDescription
atmDoubleCryptocurrency ATM operator.
childExploitationDoubleOrganization which operates via darknets and is suspected of child abuse and exploitation.
dark_marketDoubleOnline marketplace which operates via darknets and is used for trading illegal products for cryptocurrency.
dark_serviceDoubleOrganization which operates via darknets and offers illegal services for cryptocurrency.
enforcementActionDoubleThe entity is subject to legal proceedings. Jurisdiction will be annotated as a subtype.
exchangeFraudulentDoubleExchange that was involved in illegal activity.
exchangeLicensedDoubleOrganization that is licensed to provide exchange services.
exchangeUnlicensedDoubleOrganization that is not licensed to provide exchange services.
illegalServiceDoubleResource offering illegal services or engaged in illegal activities.
liquidityPoolsDoubleThe smart contracts where tokens are locked for the purpose of providing liquidity.
marketplaceDoubleEntity offering legal services/trading goods for cryptocurrency.
minerDoubleOrganization which utilizes its computing power for mining cryptocurrency blocks.
mixerDoubleService for mixing funds from different sources to make tracing them back harder or almost impossible. It is mostly used for money laundering.
p2pExchangeLicensedDoubleOrganization that is licensed to provide P2P exchange services.
p2pExchangeUnlicensedDoubleOrganization that is not licensed to provide P2P exchange services.
paymentDoubleService which acts as an intermediary between customers and the company which provides services for making a payment.
ransomDoubleThe extortioners demanding payment in the form of cryptocurrency
sanctionsDoubleOrganization that is found in sanctions lists.
scamDoubleEntities that have scammed their customers and taken possession of their cryptocurrency.
seizedAssetsDoubleIn the crypto seized by the government, the default Risk Score is 0%.
stolenCoinsDoubleEntities which have taken possession of someone else’s cryptocurrency by hacking.
terrorismFinancingDoubleOrganization which operates via darknets and involved in terrorism financing with cryptocurrency.
trustedExchangeDoubleExchange that is reliable and can be trusted.
walletDoubleService for storage and making payments with cryptocurrency.
otherDoubleNone of the specified entities above. It may include a subtype.

matchedRuleNames, matchedRuleNamesByTag

FieldTypeDescription
cntintTotal quantity of matched rules.
distinctCntintQuantity of unique rules.
distinctValsList of StringsList of unique rules.

amounts

FieldTypeDescription
cntlongQuantity of transactions in the aggregate.
minDoubleMinimum amount.
maxDoubleMaximum amount.
meanDoubleArithmetic mean amount.
sumDoubleSum of all transactions per interval.