Configure transaction monitoring rules with conditions, velocity windows, and automated actions. Start from built-in rule bundles or create custom rules from the console.
Every transaction submitted to Didit is evaluated against all active rules for your application. Rules define conditions, velocity checks, and actions that determine the transaction’s final status and score.
Rules are configured from the Business Console. There is no public rule-CRUD API — the design goal is to keep rules tightly reviewed by your compliance team rather than changed by code. Rules are evaluated on every transaction submitted via POST /v3/transactions/, and the result appears in the transaction’s rule_runs[] array (see response schema).
Didit provides a pre-configured rule library for every application with transaction monitoring enabled. These rules are based on common regulatory typologies and can be customized or disabled. For the complete catalogue of every preset rule with thresholds and actions, see the Rules library.
Bundle
Examples
Finance
Structuring detection (inbound/outbound), large single transactions above reporting thresholds
Every rule has a source that indicates who manages it:
Source
Description
Preset
Rules from Didit’s built-in library. These are automatically created for every application with transaction monitoring enabled. You can customise their thresholds, disable them, or switch them to test mode, but they cannot be deleted.
Custom
Rules created by your team from the Business Console. You have full control over custom rules — create, edit, and delete as needed.
When a rule matches a transaction, one or more actions are executed. Each rule can have multiple actions that are all applied together:
Action
Description
Add score
Add a specified number of points to the transaction’s risk score. The cumulative score across all matched rules determines whether the transaction crosses the review or decline threshold.
Change status
Directly set the transaction status to IN_REVIEW, DECLINED, or AWAITING_USER. This takes effect immediately regardless of the score.
Add tags
Automatically tag the transaction for categorization and filtering (e.g., high-risk, structuring-suspect).
Add note
Attach an automated note to the transaction for analyst context.
Add to list
Add the applicant, counterparty, or other entity to a blocklist, allowlist, or custom list.
Most preset rules combine add score with change status — for example, a sanctions counterparty rule adds 90 points to the score and immediately declines the transaction.
Before activating a rule, you can validate it against historical data:
Set a rule to Test mode — the rule is evaluated on every new transaction, but results don’t affect the transaction’s status or score. Execution statistics (matched count, affected entities) accumulate so you can assess impact before going live.
Use the backtest feature to retroactively evaluate a rule’s conditions and aggregation against transactions from a specified time period. The backtest returns the number of transactions evaluated, matched, and the affected entities — without modifying any historical data.
Before any rules are evaluated, Didit checks the transaction’s entities against your application’s blocklists. If any match is found, the transaction is immediately declined — rules are not evaluated.The following entities are checked:
Entity
Blocklist type
What is checked
User (applicant)
User Blocklist
The applicant’s vendor_data identifier
Business
Business Blocklist
The business’s vendor_data identifier
Wallet address
Wallet Address Blocklist
The account_id of crypto wallet payment methods
Bank account
Bank Account Blocklist
The account_id of bank transfer payment methods
IP address
IP Address Blocklist
The IP address from the party’s device context (supports CIDR ranges)
Device fingerprint
Device Fingerprint Blocklist
The device fingerprint or persistent device ID
When a blocklist match occurs:
Transaction status is set to DECLINED
Decision reason is set to blocklisted
An activity record is created for audit tracking
Blocklist checks run before rule evaluation. A blocklisted entity will always be declined regardless of rule configuration or score thresholds.
Didit integrates with external AML and blockchain analytics providers to enrich transactions with risk intelligence. When a transaction is submitted, the system can:
Screen counterparties against global sanctions and watchlist databases
Evaluate wallet addresses (for crypto transactions) against blockchain intelligence data, including mixer exposure, sanctioned entity connections, and high-risk service interactions
Check applicant AML status by cross-referencing the transaction’s linked user against their latest AML screening results
AML screening results are attached to the transaction and factor into the rule engine’s scoring. If a counterparty or wallet matches a sanctions list, the corresponding rule automatically flags or declines the transaction.