---
title: "Record Action Outcome"
method: PUT
path: "/api/conversations/{conv_id}/actions/{action_id}"
tags: ["conversations"]
---

# Record Action Outcome

`PUT /api/conversations/{conv_id}/actions/{action_id}`

## 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/conversations/{conv_id}/actions/{action_id}`
- Auth: HTTP bearer

Record a proposed card's fate (confirmed / dismissed) in the saved transcript.

Called by the co-pilot after the card's own write landed (or it was waved
away), so a transcript restored after a refresh shows what happened instead
of a live button. First write wins; the stored outcome is returned either way.

## Path parameters

- `conv_id` string, required
- `action_id` string, required

## Request body

- RecordActionOutcome: What happened to one proposed card: confirmed (the write landed) or dismissed. There is no "open": a card is open until something is recorded, and nothing un-records one. That is the property a restored transcript depends on — a write that happened can never be shown again as a button that would do it.
  - `state` 'confirmed' | 'dismissed', required
  - `note` string, nullable

## Response `200`

Successful Response

- ActionOutcome: The outcome as stored — echoed back so a second writer learns the first one won.
  - `state` 'confirmed' | 'dismissed', required
  - `note` string, nullable
  - `at` string, date-time, required

## Other responses

- `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)
