How rules work
When a matching run starts, Matcher evaluates rules in priority order.
- Rules are evaluated from the lowest priority number to the highest.
- The first rule that produces a match determines the outcome.
- If no rule matches, the transaction becomes an exception.
Rule types
Exact
Requires a strict match on the selected fields.- Best for: Deterministic matches where values should align 1:1.
Tolerance
Allows controlled variance (amount and/or date).- Best for: Known variance patterns such as fees, rounding, or posting delays.
Composite
Combines multiple conditions using AND/OR logic.- Best for: Scenarios that depend on multiple signals (amount, reference patterns, counterparties).
Exact rules
EXACT rules require the configured fields to match precisely.
Basic exact rule
cURL
Response
Exact rule with reference matching
Match on external reference values, optionally constrained by a pattern:referencematches exactlycurrencymatchesreferencealso matches the configured pattern
Tolerance rules
Tolerance rules accept variance while keeping the match bounded and explainable.
Percentage tolerance
cURL
Response
- Transaction A: $1,000.00 on 2024-01-15
- Transaction B: $1,008.00 on 2024-01-17
- Variance: 0.8% amount, 2 days → Matches
Absolute tolerance
Use fixed variance for scenarios like fees:Combined tolerance
Use both percentage and absolute tolerances (whichever is greater):Composite rules
Composite rules let you express matching logic as a decision tree using AND/OR blocks.
And conditions
All conditions must pass:cURL
Response
Or conditions
At least one sub-condition must match:reference, external_id, or counterparty matches.
Rule priority
Rules are evaluated by priority. Lower numbers run first.
Priority strategy
| Priority | Rule type | Use case |
|---|---|---|
| 1–10 | EXACT | Deterministic matches |
| 11–50 | TOLERANCE (tight) | Small, expected variance |
| 51–90 | TOLERANCE (loose) | Broader variance that typically requires review |
| 91–100 | Catch-all | Last resort (use carefully) |
Example priority configuration
Confidence scoring
Rules can contribute to confidence scoring so your run output reflects match quality, not just pass/fail.
- Base score: 80
- Amount variance 0.5%: -2.5 points
- Date variance 2 days: -4 points
- Final score: 73.5
Rule parameters reference
Amount conditions
| Parameter | Type | Description |
|---|---|---|
tolerance_type | String | percentage, absolute, or combined |
tolerance_value | Decimal | Tolerance value |
percentage | Decimal | Percentage for combined type |
absolute | Decimal | Absolute value for combined type |
sign_agnostic | Boolean | Ignore sign differences |
Date conditions
| Parameter | Type | Description |
|---|---|---|
tolerance_days | Integer | Days before and after |
days_before | Integer | Days before only |
days_after | Integer | Days after only |
use_posting_date | Boolean | Use posting date instead of transaction date |
String conditions
| Parameter | Type | Description |
|---|---|---|
match_type | String | exact, contains, starts_with, ends_with, regex |
case_sensitive | Boolean | Case-sensitive matching |
value | String | Value or pattern to match |
Practical examples
Bank reconciliation rules
Payment gateway reconciliation
Intercompany reconciliation
Testing rules
Test rules in dry-run mode before applying changes to production contexts.
Dry run a matching job
cURL
Response
Test a specific rule
Response
Managing rules
List rules
Update rule priority
Disable a rule
Delete a rule
Best practices
Start strict, then loosen
Start strict, then loosen
Lead with exact rules. Add tolerance rules only for the variance you can justify and explain.
Leave room in priorities
Leave room in priorities
Use gaps (1, 10, 20, 50) so you can insert rules without renumbering your entire set.
Dry-run every change
Dry-run every change
Treat rule updates as production changes. Validate match rates and exception volume before committing.
Write descriptions that explain intent
Write descriptions that explain intent
A rule should document the variance it covers and the risk it introduces.
Review rule output over time
Review rule output over time
If a rule never matches, it may be unnecessary. If it matches too often, it may be too broad.
Keep loose rules at low priority
Keep loose rules at low priority
High tolerance increases false positives. Use it as a fallback and review results carefully.

