This page is a reference for every building block available when defining rule conditions and actions. For a guided walkthrough of the Rule Builder, see Building rules.
Condition logic
Conditions are organized into a tree of groups:
all (AND) — Every condition in the group must match.
any (OR) — At least one condition in the group must match.
At the top level, a rule can have multiple paths connected with OR logic. If any path matches, the rule triggers. Within each path, you nest all / any groups to express complex boolean logic.
This rule triggers if the transaction amount exceeds 50,000∗∗and∗∗theclientishigh−risk,∗∗or∗∗iftheamountexceeds100,000 regardless of risk tier.
Entities
Each condition targets one of four entities:
Entity relationships
For non-transaction entities, you can specify which participant the condition applies to:
Operators
Comparison operators
Array operators
Range operator
Aggregation operators
Aggregation conditions compute a value over a set of historical transactions before comparing with the operator and value. This enables velocity checks, cumulative thresholds, and statistical analysis.
Aggregation fields
When using an aggregation, provide these additional fields on the condition:
Time windows
Time windows define the lookback period for aggregation conditions.
Time types
Time periods
Used with aggregationTimeValue to define the window length:
Example: velocity check
“Count of deposits in the last 24 hours exceeds 10”:
Aggregation filters
Filters narrow which transactions are included in the aggregation. Each filter is a simple condition with property, operator, and value — the same comparison operators listed above apply.
Common filter patterns:
- Filter by transaction type:
{ "property": "type", "operator": "equal", "value": "WITHDRAW" }
- Filter by currency:
{ "property": "currency", "operator": "in", "value": ["USD", "EUR"] }
- Filter by direction:
{ "property": "direction", "operator": "equal", "value": "OUTGOING" }
Actions
Actions define what happens when a rule matches. Each rule must have at least one action.
CREATE_ALERT
Creates a compliance alert for analyst review.
HALT_TRANSACTION
Freezes the transaction until an analyst resolves the associated alert. Always used alongside CREATE_ALERT.
A rule with HALT_TRANSACTION blocks settlement on every match. Reserve this for high-confidence patterns where false positives are rare.
Common rule patterns
Large transaction detection
Alert when a single transaction exceeds a threshold:
Velocity check (structuring detection)
Alert when a customer makes more than 5 deposits under $10,000 in 24 hours:
High-risk customer with large withdrawal
Combine entity conditions for targeted detection:
Cumulative threshold
Alert when total outgoing volume exceeds $200,000 in 30 days: