---
title: "Reopen Bank Transaction"
method: POST
path: "/api/autopilot/bank/transactions/{transaction_id}/reopen"
tags: ["autopilot"]
---

# Reopen Bank Transaction

`POST /api/autopilot/bank/transactions/{transaction_id}/reopen`

## Request

- Base URL: `https://api.taxcompass.it` (the document declares no server; this is the origin it was published from)
- URL: `https://api.taxcompass.it/api/autopilot/bank/transactions/{transaction_id}/reopen`
- Auth: HTTP bearer

Put one movement back in the inbox — the undo for confirm, auto-record and ignore.

A confirmed movement (whether the user or the import recorded it) has its
payment soft-deleted — the same delete the Incassi screen offers — and
returns to the inbox; an ignored one simply returns. An already-open one is
returned unchanged, so a double tap is not an error. The movement comes
back as a suggestion on the next read, and is never recorded again by
itself: automatic recording only reads the rows an upload inserts.

## Path parameters

- `transaction_id` string, uuid, required

## Response `200`

Successful Response

- BankTransactionRead: One imported bank movement, as the reconciliation inbox sees it. ``amount`` keeps the statement's own sign — a credit is positive, a debit negative — because only a credit can be an incasso, and flipping debits to positives here would let the matcher read a refund as income. ``counterparty`` and ``causale`` come back decrypted (they are a Fernet envelope at rest); ``incasso_id`` is set once a movement has been tied to a payment in the ledger, which one confirmation writes. ``suggestions`` is recomputed on every read of the inbox rather than stored (AP-112), so it is empty on a row nobody is matching any more — a confirmed or ignored movement, or a debit.
  - `id` string, uuid, required
  - `booked_date` string, date, required
  - `amount` string, required
  - `side` 'credit' | 'debit', required
  - `match_status` 'unmatched' | 'suggested' | 'confirmed' | 'ignored', required
  - `import_batch` string, uuid, required
  - `incasso_id` string, uuid, nullable
  - `counterparty` string, nullable
  - `causale` string, nullable
  - `suggestions` MatchSuggestionRead[]
    - `invoice_id` string, uuid, required
    - `score` integer, required
    - `reasons` string[]
    - `signals` string[]
    - `certain` boolean
  - `invoice_id` string, uuid, nullable
  - `auto_recorded_at` string, date-time, nullable

## Other responses

- `404`: No such movement for this user
- `422`: Validation Error

---

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