Match simulation
Preview how a single rule — an existing configured rule (
ruleId) or an inline candidate rule (rule) — would match a context’s unmatched transactions, without committing anything.
ruleId— preview an existing configured rule of the context.rule— preview an un-persisted candidate definition (typeis one ofEXACT,TOLERANCE,DATE_LAG,FUZZY, plus itsconfig).
400. sampleLimit (1–200, default 25) caps the returned would-match pairs.
The response reports how many 1:1 groups the rule would form, a bounded sample of would-match pairs (each with a confidence score and per-component rationale), and the per-side unmatched counts:
Scope: the simulation scores by the deterministic rule engine over the raw transaction amounts. It does not apply run-time fee normalization or the FX-variance band, and it previews only 1:1 pairwise grouping (no 1:N/N:M allocation). A pair that only matches after fee normalization, inside the FX band, or via allocation is not counted here.
Fee simulation
Calculate fees for a given gross amount using a specific fee schedule. Use it to validate a schedule’s rules before you attach it to a context.
Fee simulation has no transaction metadata, so expression-fee items that require a transaction identifier surface their missing-identifier error as a
4xx. A missing schedule returns 404.When to use each
| Use | When |
|---|---|
Match simulation (/matching/simulate) | You are authoring or reviewing a match rule and want to see how many transactions it would group, and which pairs, before committing it. |
Fee simulation (/fee-schedules/{scheduleId}/simulate) | You are configuring a fee schedule and want to verify the net/fee breakdown it would produce for a representative gross amount. |
Response codes
| Status | Meaning |
|---|---|
200 | Simulation returned |
400 | Invalid input (ambiguous/missing rule, invalid ids, invalid gross amount) |
404 | Context, rule, or fee schedule not found |
503 | Match simulation not available |

