Create a match rule
Use this endpoint to create a new match rule within a specific context. Match rules define how transactions are matched during reconciliation.
Authorizations
Bearer token authentication (format: "Bearer {token}")
Headers
A unique identifier for tracing the request across services.
Optional idempotency key for safe retries. Matcher reads the key only from this header, and only when you send one. A request that carries a key only in X-Idempotency-Key or Idempotency-Key is refused with 400 (MTCH-0015), and nothing is processed. If the same key is sent again and the original request was already processed, the stored response is returned with X-Idempotency-Replayed: true. A malformed key returns 400, a key whose first request is still in progress returns 409, and an idempotency storage failure returns 500. These refusals are problem documents.
Path Parameters
The unique identifier of the reconciliation context. Context ID
Body
Match rule creation payload
Rule-specific configuration object. Includes the built-in toggles (matchAmount, matchCurrency, matchDate, matchReference) and tolerance/lag parameters, plus an optional composite-key array matchFields: [{ field, mode, tolerance? }] where mode is one of required, conditional, or off, and tolerance is an optional per-field relaxation ({ absTolerance?, percentTolerance? } for numeric or { stringMode: exact|fold } for text). Optional date keys (opt-in; default behavior is raw UTC days): timezone (an IANA zone name, e.g. America/Sao_Paulo, buckets dates by local sales-day before the date window/lag is applied), calendar (a vendored business-day calendar name, US_FED or BR_ANBIMA — on TOLERANCE it makes dateWindowDays count business days; on DATE_LAG it pairs with businessDayMode), and businessDayMode (DATE_LAG only; makes minDays/maxDays count business days under calendar). Optional signMode key (one of same, opposite, ignore; default same) selects the axis used when the rule compares amounts: same matches signed amounts (legacy behavior); opposite matches a value against its negation (a -100 refund reconciles against a +100 charge); ignore compares magnitudes only. It is consulted only when the rule actually compares amounts (matchAmount on EXACT/FUZZY, the tolerance band on TOLERANCE); on a rule that does not compare amounts it is accepted but inert.
Execution priority; lower numbers run first. Must be unique within the context.
1 <= x <= 10001
Matching strategy. EXACT requires identical field values; TOLERANCE allows configured numeric slack; DATE_LAG allows a configured date offset between sides; FUZZY matches on normalized/similarity-scored references (free-text memos, truncated refs) and always proposes for review (never auto-confirms).
EXACT, TOLERANCE, DATE_LAG, FUZZY "EXACT"
Response
Successfully created match rule.
Rule-specific configuration object (matched fields and tolerance/lag parameters).
Identifier of the context this rule belongs to.
"550e8400-e29b-41d4-a716-446655440000"
Creation timestamp in RFC 3339 format.
"2025-01-15T10:30:00Z"
Unique identifier of the rule.
"550e8400-e29b-41d4-a716-446655440000"
Execution priority; lower numbers run first.
1 <= x <= 10001
Matching strategy. EXACT requires identical field values; TOLERANCE allows configured numeric slack; DATE_LAG allows a configured date offset between sides; FUZZY matches on normalized/similarity-scored references and always proposes for review.
EXACT, TOLERANCE, DATE_LAG, FUZZY "EXACT"
Last update timestamp in RFC 3339 format.
"2025-01-15T10:30:00Z"

