---
title: "List reconciliation matches"
method: GET
path: "/v1/reconciliation/matches"
tags: ["Reconciliation"]
---

# List reconciliation matches

`GET /v1/reconciliation/matches`

Returns a paginated list of reconciliation matches for the company. Each match links two
reconciliation records (e.g. a payable and the bank transaction that paid it) and embeds both
records (`record_a`, `record_b`) without their embedding vectors. The `type` field is the
STI subtype derived from the linked pair. Non-admin callers only see matches whose payable
they can access.

## Query parameters

- `_start` integer
- `_end` integer
- `_order` 'asc' | 'desc'
- `_field` string
- `record_a_id` string, uuid
- `record_b_id` string, uuid

## Headers

- `company-id` string, uuid, required

## Response `200`

Paginated list of matches

- ReconciliationMatch[]
  - `id` string, uuid, required
  - `company_id` string, uuid
  - `record_a_id` string, uuid, required — One side of the match.
  - `record_b_id` string, uuid, required — The other side of the match.
  - `amount` integer, nullable — The reconciled amount in cents.
  - `type` 'Reconciliation::Match::PayableTransaction' | 'Reconciliation::Match::SubPayable' | 'Reconciliation::Match::PayableCreditNote' | 'Reconciliation::Match::PayableDebitNote' | 'Reconciliation::Match::PayableReimbursement', nullable — Fully-namespaced STI class name of the match, derived from the linked record pair.
  - `record_a` ReconciliationRecord — A reconciliation record — a normalized, read-only projection over reconcilable sources (bank transactions, payables, credit/debit notes, expense reports, imprest funds). Records are matched against each other to reconcile payables with the transactions that paid them. The `embedding` vector is never included in responses.
    - `id` string, uuid, required — The record id (equal to the underlying source record id).
    - `type` string, required — The reconciliation-record subtype.
    - `source_type` string — The polymorphic type of the underlying source record.
    - `company_id` string, uuid
    - `amount_cents` integer — The record's amount in cents.
    - `currency` string
    - `reference_date` string, date-time, nullable — Display date (issue/authorized/created date depending on the source).
    - `document_type` string, nullable — SII document type, for payable-like records.
    - `counterpart_company_id` string, uuid, nullable — The counterpart company id, when applicable.
    - `amount_to_be_reconciled` integer — Remaining amount still to reconcile, in cents.
    - `exhausted` boolean — Whether the record's available balance is genuinely zero.
    - `embedding_content` string, nullable — Text used to build the record's semantic embedding.
    - `matches_as_a` ReconciliationMatch[] — Matches where this record is `record_a`.
    - `matches_as_b` ReconciliationMatch[] — Matches where this record is `record_b`.
    - `matched_records` ReconciliationRecord[] — The records reconciled against this one.
    - `created_at` string, date-time
  - `record_b` ReconciliationRecord — A reconciliation record — a normalized, read-only projection over reconcilable sources (bank transactions, payables, credit/debit notes, expense reports, imprest funds). Records are matched against each other to reconcile payables with the transactions that paid them. The `embedding` vector is never included in responses.
    - `id` string, uuid, required — The record id (equal to the underlying source record id).
    - `type` string, required — The reconciliation-record subtype.
    - `source_type` string — The polymorphic type of the underlying source record.
    - `company_id` string, uuid
    - `amount_cents` integer — The record's amount in cents.
    - `currency` string
    - `reference_date` string, date-time, nullable — Display date (issue/authorized/created date depending on the source).
    - `document_type` string, nullable — SII document type, for payable-like records.
    - `counterpart_company_id` string, uuid, nullable — The counterpart company id, when applicable.
    - `amount_to_be_reconciled` integer — Remaining amount still to reconcile, in cents.
    - `exhausted` boolean — Whether the record's available balance is genuinely zero.
    - `embedding_content` string, nullable — Text used to build the record's semantic embedding.
    - `matches_as_a` ReconciliationMatch[] — Matches where this record is `record_a`.
    - `matches_as_b` ReconciliationMatch[] — Matches where this record is `record_b`.
    - `matched_records` ReconciliationRecord[] — The records reconciled against this one.
    - `created_at` string, date-time
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/cardda/apis/banking-api.md) · [All operations](https://skmtc.net/cardda/apis/banking-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cardda/banking-api/versions/ff1aeb3fda8b/schema)
