Skip to main content
GET
List reconciliation rules

Authorizations

X-API-KEY
string
header
required

Query Parameters

reconciliation_id
string
required

The reconciliation to list rules for

Response

200 - application/json

List of rules

filters
object
required

A rule tree with group nodes (AND/OR) and condition leaf nodes. Conditions compare a field on one side to a field on the other side. On a many_to_one rule only AND-combined eq conditions without tolerances are accepted: amount eq amount is satisfied by the rollup itself (the group total is compared to the Side B amount), and every other condition segments the Side A groups by its key and requires the Side B record to carry the same value in its value field (for example metadata.operator eq metadata.operator keeps each operator's batches with that operator's payout). OR groups, other operands and tolerances are rejected on many_to_one rules.

reconciliation_id
integer
required
id
integer
priority
integer

Lower values run first

group_by
string[]

Side A field keys to group records by before matching. The first key is the primary axis: in rollup.group_by_kind 'date' mode it must be a date field; in 'identifier' mode it can be any field (e.g. a batch id in metadata). Additional keys further segment Side A — in date mode each segment matches only Side B records with the same value for those fields; in identifier mode they form a composite cohort key and do not constrain the Side B record. To require the Side B record to share a value in either mode, add an eq condition to filters.

cardinality
enum<string>
default:one_to_one

Match cardinality. 'one_to_one' matches single records on each side. 'many_to_one' rolls up multiple records on one side to match a single record on the other side — requires the rollup field to be set.

Available options:
one_to_one,
many_to_one
rollup
object | null

Required when cardinality is 'many_to_one'. Configures how records on the many side are aggregated before matching.

description
string

Optional human-readable description of what this rule matches

source
enum<string>

Origin of the rule. 'user' = created manually via the API or UI. 'ai' = created by the AI rules engine. 'default' = built-in rule seeded on older reconciliations (no longer created).

Available options:
user,
ai,
default
status
enum<string>

Active rules are used by the reconciliation engine. Proposed rules are awaiting review from a cold start.

Available options:
active,
proposed
confidence
enum<string>

AI confidence rating. Only present on AI-generated rules from cold start.

Available options:
high,
medium,
low
sample_match_rate
string

How many sample records this rule matched during dry-run evaluation (e.g. '42/50'). Only present on AI-generated rules from cold start.

created_at
string<date-time>