---
title: "Update a reconciliation"
method: PATCH
path: "/reconciliations/{id}"
---

# Update a reconciliation

`PATCH /reconciliations/{id}`

Update reconciliation name, run type, or reassign data streams. If stream IDs are provided, all existing stream associations are replaced.

## Path parameters

- `id` string, required

## Request body

- object
  - `name` string
  - `run_type` 'continuous' | 'batch'
  - `side_a_stream_ids` string[]
  - `side_b_stream_ids` string[]

## Response `200`

Reconciliation updated

- Reconciliation
  - `id` integer
  - `name` string, required — Human readable name for the reconciliation
  - `run_type` 'continuous' | 'batch'
  - `side_a_streams` DataStream[] — Data streams on side A of the reconciliation
    - `id` integer — Unique numeric identifier
    - `key` string, required — Unique immutable identifier
    - `name` string, required — Human readable name
    - `description` string — Optional description of the data stream
    - `type` string — The type of data stream (e.g. api, csv, stripe, bank_feed)
    - `program_id` integer, nullable
    - `records_count` integer — Record count from the ClickHouse mirror
  - `side_b_streams` DataStream[] — Data streams on side B of the reconciliation
    - `id` integer — Unique numeric identifier
    - `key` string, required — Unique immutable identifier
    - `name` string, required — Human readable name
    - `description` string — Optional description of the data stream
    - `type` string — The type of data stream (e.g. api, csv, stripe, bank_feed)
    - `program_id` integer, nullable
    - `records_count` integer — Record count from the ClickHouse mirror
  - `created_at` string, date-time
  - `current_run` ReconciliationRun — A single execution of a reconciliation's batch or continuous matching pipeline.
    - `id` integer
    - `kind` 'batch' | 'continuous'
    - `status` 'pending' | 'running' | 'completed' | 'failed'
    - `trigger` 'manual' | 'rule_activated' | 'agent' | 'record_created' — What initiated this run
    - `total_records` integer — Total records considered by the run
    - `processed_records` integer — Records processed so far
    - `matched_records` integer — Records that were matched during the run
    - `rule_summary` object, nullable — Per-rule match counts, populated as the run progresses
    - `progress` integer — Processing progress as a percentage (0-100)
    - `started_at` string, date-time, nullable
    - `completed_at` string, date-time, nullable
  - `last_run` ReconciliationRun — A single execution of a reconciliation's batch or continuous matching pipeline.
    - `id` integer
    - `kind` 'batch' | 'continuous'
    - `status` 'pending' | 'running' | 'completed' | 'failed'
    - `trigger` 'manual' | 'rule_activated' | 'agent' | 'record_created' — What initiated this run
    - `total_records` integer — Total records considered by the run
    - `processed_records` integer — Records processed so far
    - `matched_records` integer — Records that were matched during the run
    - `rule_summary` object, nullable — Per-rule match counts, populated as the run progresses
    - `progress` integer — Processing progress as a percentage (0-100)
    - `started_at` string, date-time, nullable
    - `completed_at` string, date-time, nullable

## Other responses

- `404` — Reconciliation not found

---

[API](https://skmtc.net/endclose/apis/end-close-api.md) · [All operations](https://skmtc.net/endclose/apis/end-close-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/endclose/end-close-api/revisions/613ceff68dc7/schema)
