---
title: "Entry Ai Match Proposals"
method: POST
path: "/bank-entries/{entry_id}/ai-match-proposals"
tags: ["reconciliation"]
---

# Entry Ai Match Proposals

`POST /bank-entries/{entry_id}/ai-match-proposals`

## Request

- Base URL: `https://app.zeno-works.ch` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zeno-works.ch/bank-entries/{entry_id}/ai-match-proposals`
- Auth: none declared

Advisory AI match proposals for one unmatched/partially-matched bank entry.

On-demand "Ask AI": builds the bounded deterministic candidate pool and asks the
accountant's ``bank-match`` use case which candidate(s) the payment settles. NO
DB writes — the human links via the existing manual-link flow (this endpoint is
also the manual AI retry for entries whose worker consult recorded ``ai_no_match``).
Policy-independent (works with autonomy off). 503 when the accountant is
unreachable. See doc/pipeline.md §"AI match proposals".

## Path parameters

- `entry_id` string, required

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Response `200`

Successful Response

- AiMatchProposalsResponse
  - `proposals` AiMatchProposalOut[]
    - `kind` string
    - `item_id` string, nullable
    - `journal_entry_id` string, nullable
    - `gl_open_item_id` string, nullable
    - `counterparty_name` string, nullable
    - `filename` string, nullable
    - `document_number` string, nullable
    - `total_incl_vat` string, nullable
    - `currency` string, nullable
    - `confidence` number, required
    - `rationale` string, required
  - `no_match` boolean
  - `needs_review` boolean
  - `notes` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zeno-works/apis/zeno-api.md) · [All operations](https://skmtc.dev/zeno-works/apis/zeno-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zeno-works/apis/zeno-api/revisions/1eb93dde146c?raw)
