What is a reconciliation context?
A reconciliation context defines the operational boundaries of a reconciliation process. It specifies:
- Which data sources are compared
- Which matching rules apply
- How exceptions are handled
- The time window covered by reconciliation
- Bank Account 1234 vs General Ledger (daily bank reconciliation)
- Payment Gateway vs Revenue System (payment reconciliation)
- Intercompany Entity A vs Entity B (intercompany reconciliation)
Context types
Matcher lets you use different reconciliation cardinalities based on transaction structure.
One-to-one (1:1)
Each transaction is reconciled against a single counterpart. Typical use cases:- Bank statements
- Direct payment matching
One-to-many (1:n)
One transaction is reconciled against multiple counterparts. Typical use cases:- Split payments
- Batch deposits
- Consolidated invoices
Many-to-many (n:m)
Multiple transactions are reconciled across multiple counterparts. Typical use cases:- Netting arrangements
- Complex payment allocation
- Multi-leg financial flows
Creating a reconciliation context
Basic context creation
Request
cURL
Context fields
| Field | Type | Default | Description |
|---|---|---|---|
name | String | — | Descriptive name for the context |
type | String | — | Matching cardinality: 1:1, 1:N, or N:M |
interval | String | — | Reconciliation frequency (e.g. daily, weekly) |
rateId | String | "" | Reference to an FX rate configuration for multi-currency matching |
feeToleranceAbs | Decimal | 0 | Absolute fee tolerance for amount comparison |
feeTolerancePct | Decimal | 0 | Percentage fee tolerance for amount comparison |
feeNormalization | String | "NET" | Fee normalization mode: NET or GROSS |
autoMatchOnUpload | Boolean | false | Automatically trigger a match run when a file is uploaded |
Response
Running reconciliation
Matcher processes transactions through match runs. You can trigger matching manually or view the history of past runs.
Manual match runs
Trigger a match run for a context:cURL
Response
mode: "DRY_RUN" to preview results without confirming matches.
Match run modes
| Mode | Description |
|---|---|
DRY_RUN | Preview matches without persisting results |
COMMIT | Execute matching and persist results |
Viewing match run history
cURL
Response
Match run statuses
| Status | Description |
|---|---|
PENDING | Run is queued |
PROCESSING | Run is in progress |
COMPLETED | Run finished successfully |
FAILED | Run encountered an error |
What is a source?
A source represents a system or data feed that supplies transactions to a reconciliation context. Each context requires at least two sources. Typical sources include:
- Bank statement feeds
- ERP general ledger exports
- Payment processor transaction streams
- Internal accounting systems
Adding sources to a context
Create a bank source
cURL
Response
Create a ledger source
cURL
Source types
| Type | Description | Typical use |
|---|---|---|
LEDGER | General ledger accounts | Internal accounting systems |
BANK | Bank statements | External bank feeds |
GATEWAY | Payment processor transactions | Payment gateways |
CUSTOM | Custom integrations | Any other data source |
Source configuration
Sources accept an optional
config object for additional metadata, and an optional feeScheduleId to associate a fee schedule:
cURL
| Field | Type | Description |
|---|---|---|
name | String | Descriptive name for the source |
type | String | Source type: LEDGER, BANK, GATEWAY, or CUSTOM |
feeScheduleId | String | Optional reference to a fee schedule for this source |
config | Object | Flexible key-value pairs for integration metadata |
Managing contexts
Update a context
cURL
Pause a context
To temporarily stop a context from being used in reconciliation runs, update its status toPAUSED:
cURL
- Prevents new match runs
- Preserves historical data
- Allows future reactivation by setting status back to
ACTIVE
Delete a context
cURL
Clone a context
To duplicate an existing context with its sources, rules, and fee schedules, use the clone endpoint. This is useful for creating templates or replicating configurations across environments.cURL
Response
DRAFT status, so you can review and adjust the configuration before activating it.
Context lifecycle
A reconciliation context follows a well-defined lifecycle that controls when matching can run and how data is preserved.
- A context is first created in Draft, where sources and settings are configured.
- Once all required sources are in place, the context becomes Active and is eligible for reconciliation runs.
- An active context can be temporarily Paused to stop execution without affecting configuration or historical data.
- When reconciliation for a period is complete, the context is Archived, preserving all results and audit records for future reference.

Best practices
Use descriptive names
Use descriptive names
Use explicit names that reflect accounts, systems, and purpose.
Start with conservative thresholds
Start with conservative thresholds
Favor accuracy over automation initially. Adjust thresholds based on observed results.
Separate concerns
Separate concerns
Use multiple contexts instead of a single broad reconciliation.
Flag regulatory sources
Flag regulatory sources
Always mark sources with compliance requirements.
Align timezones
Align timezones
Ensure source timezones reflect the original data feed.
Document sign conventions
Document sign conventions
Explicitly define debit and credit semantics for each source.

