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.
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.
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.
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.
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"].
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.
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.
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.
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.
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"].
The data related to the gambling bet type transaction made by an applicant. It includes such information as a bet type, transaction amount, transaction currency code, and so on.
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.
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.
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.
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.
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.
gamblingBetInfo
The gamblingBetInfo object includes the data related to the gambling bet type transaction made by an applicant.
Field
Type
Description
amount
Double
The amount of funds used in the bet in a currency used by an applicant.
currencyCode
String
Code of the currency in which the transaction was made (USD, BTC, and so on).
amountInDefaultCurrency
Double
Transaction amount in the default currency.
defaultCurrencyCode
String
Code of the default currency.
status
String
Current state of a bet (pending, completed, or any other configured in your system).
resolutionDate
Date
Date on which the bet must actually be played. For example, a bet on horse racing that takes place on the specified date.
resultAmount
Double
Amount of funds won or lost as a result of the bet.
resultAmountInDefaultCurrency
Double
Amount of the bet result in the default currency set on your side.
diffAmount
Double
Difference between the actual bet amount and resultAmount. For example, you bet 100, you win 150 which is the result amount, so diffAmount is 50.
resultDiffAmountInDefaultCurrency
Double
Difference between the actual bet amount and resultAmount in the default currency set on your side.
betType
String
Type of betting by game areas, as they are sorted out on your side. For example, sports, casino, and so on.
gameType
String
More specific area, a subtype of betType. For example, football, dice_bet, and so on.
bonusId
String
Unique identifier of the bonus given to the user, if any.
gamblingLimitChangeInfo
The gamblingLimitChangeInfo object includes the data that explains changes in gambling limits for the applicant.
Field
Type
Description
type
Enum
A type of limits that gambling projects offer:
deposit — allows players to set a maximum amount of money they can deposit into their account over a specified time period.
loss — allows players to set a maximum amount of money they can lose while playing games over a specified time period.
wager — allows players to set a maximum amount of money they can bet on a single game or during a specified time period.
sessionTime — allows players to set a maximum amount of time they can spend playing games during a single session.
selfExclusion — allows players to voluntarily exclude themselves from playing games for a specified time or permanently.
reverted
Boolean
Sets true if a previously assigned limit is reverted.
amount
Double
Limit size value if the limit type is deposit, loss, or wager.
currencyCode
String
Code of the currency in which the transaction was made (USD, BTC, and so on). Specified if the limit type is deposit, loss, or wager.
period
Enum
Validity period of the established limit: daily, weekly, monthly.
amountInDefaultCurrency
Double
Limit size value in the default currency set on your side. Specified if the limit type is deposit, loss, or wager.
resolutionDate
Date
Date on which the specified limit expires.
sessionLimitInMins
Integer
User session duration limit in minutes.
gamblingBonusChangeInfo
The gamblingBonusChangeInfo object includes the data that explains changes in a gambling bonus for the applicant.
Field
Type
Description
bonusId
String
Unique identifier of the bonus given to a user.
amount
Double
Amount of bonus given to a user.
maxBonusAmount
Double
Maximum bonus amount a user can get if all conditions of the party issuing the bonus are met.
maxBetAmount
Double
Maximum bet a user can make to get the bonus.
wagerRequirement
Double
Ttotal amount of bets a user must make to get the bonus.
status
Enum
Bonus status that can be either of the following:
activated — the bonus is active and bonus funds appear on a player's balance. Wager requirements are active.
canceled — the player refused to receive the bonus. While the bonus is canceled all bonus funds will be nulled.
expired — each bonus has two different dates. The first one is the time to activate, the second is the time to wager. Example: time to activate — 3 days since the bonus is issued, time to wager — 7 days since the bonus is issued. While any of these time frames are passed, the bonus changes its status to expired. All bonus funds will be nulled.
lost — the bonus has been lost. The player lost his balance (real + bonus).
finished — the player has fulfilled the wager requirements, and the bonus has turned to personal funds on the balance.
currencyCode
String
Code of the bonus currency (USD, BTC, and so on).
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.
Directory information about VASP (Virtual Asset Service Provider).
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
Indicates the Essential Checks (EC) status:
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.
dueDiligenceStaus
Enum
Indicates the status of the Due Diligence process:
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.
riskScoreAnswer
Enum
Data based on the vendor information about VASP type:
GREEN — if the VASP type is exchange_licensed
YELLOW — if the VASP type is exchange_unlicensed, payment, other, atm, p2p_exchange_unlicensed, marketplace, liquidity_pools, transparent, gambling.
ERROR — no data received from the provider.
RED — otherwise.
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. Used to compare the data that you provide to us with that we extract from the applicant documents.
applicant.info — Contains information recognized and extracted from the applicant documents by Sumsub.
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.
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.