Skip to main content
A ruleset is a named, reusable list of up to 20 rules; a sync has at most one ruleset attached. Each rule has conditions (groups of conditions: OR across groups, AND within a group) and one action.
Fields: merchantName, description, amount, direction, category, class, accountId, reference. Operators: contains, does_not_contain, equals/is, is_not, starts_with, is_in, is_not_in, and for amount gt, lt, eq, between. Actions: { "type": "skip" }, { "type": "email" } (notify by email, still written), { "type": "set_category", "value": "…" }, { "type": "set_merchant", "value": "…" }. Rules evaluate in position order; the first skip wins. value is always a string, or an array of strings for between, is_in and is_not_in. A number is rejected with 400 parameter_invalid.
Rule amounts are the only place in v2 where money is not minor units. An amount value is a decimal string in major units — "100" means one hundred dollars, not one hundred cents — and it is compared against the absolute value of the transaction, so gt "100" matches a −104.96debitanda+104.96 debit and a +104.96 credit alike. Use a direction condition in the same group to restrict to one side. between takes two values and orders them for you.
Dry-run a ruleset before attaching it: POST /v2/rulesets/{id}/preview returns the actions each recent transaction would receive, and writes nothing.