---
title: "Dismiss a review tip"
method: POST
path: "/reports/{id}/versions/{versionId}/review/findings/{findingId}/dismiss"
tags: ["Reports"]
---

# Dismiss a review tip

`POST /reports/{id}/versions/{versionId}/review/findings/{findingId}/dismiss`

## Request

- Base URL: `https://api.greentally.ai/v1`
- URL: `https://api.greentally.ai/v1/reports/{id}/versions/{versionId}/review/findings/{findingId}/dismiss`
- Auth: HTTP bearer

Report review spec §11.4. An open tip becomes dismissed (a completeness tip's status row is stored with its snapshot); a dismissed tip answers 200 unchanged; an applied tip is 409 REPORT_REVIEW_FINDING_CLOSED. There is no undo. 409 REPORT_REVIEW_VERSION_SUPERSEDED on a version that is no longer current. Needs report.edit_draft.

## Path parameters

- `id` string, required
- `versionId` string, required
- `findingId` string, required

## Response `200`

The tip, dismissed

- ReportReviewFindingResponse
  - `data` ReportReviewFinding, required
    - `anchor` ReportReviewAnchor, required: Where a tip sits. blockId is the block its marker sits beside (absent when no block holds it); completeness adds datapointId, checkId or rowKey (the row's first cell); wording (P2) adds sentenceIndex, sentenceHash and span (UTF-16 code units, [start, end)).
      - `blockId` string
      - `checkId` string
      - `datapointId` string
      - `rowKey` string
      - `sentenceHash` string
      - `sentenceIndex` integer
      - `span` object
        - `end` integer, required
        - `start` integer, required
    - `appliedVersionId` string: The version a wording apply wrote (P2); absent for completeness.
    - `category` 'share_as_predicate' | 'missing_subject' | 'omitted_key_fact' | 'unclear' | 'redundancy' | 'tone' | 'missing_item' | 'failed_check' | 'month_without_data' | 'site_without_data' | 'scope3_unassessed', required
    - `fix` ReportReviewFix, required: How the tip is fixed; type says which fields are set. none: nothing to apply or follow (dismiss only). rewrite (P2): original, rewrite (display texts); rewrite absent or empty (redundancy, tone or unclear only) means remove the sentence. answer: datapointId, year, item (as readiness shows it, pre-filled only from its stored suggestion), focusRow (a Scope 3 category), answeredSince (answered after this version was made: update the report). link: target, a place the client routes to.
      - `answeredSince` boolean
      - `datapointId` string
      - `focusRow` integer
      - `item` ReportReadinessItem
        - `answerable` boolean, required
        - `applicable` boolean, required
        - `choices` object[]
          - `label` string, required
          - `value` string, required
        - `citation` string
        - `columns` object[]
        - `display` string, required
        - `help` string
        - `id` string, required
        - `label` string, required
        - `origin` object
        - `question` string
        - `reason` string
        - `requirement` 'required' | 'if_applicable' | 'optional', required
        - `source` 'ledger' | 'profile' | 'derived' | 'user', required
        - `status` 'reported' | 'not_applicable' | 'omitted_sensitive' | 'not_estimated' | 'missing', required
        - `suggestion` ReportingProfileAnswer
          - `answeredAt` string, date-time, required
          - `answeredBy` string, required
          - `reason` string
          - `source` 'user' | 'tally', required
          - `status` 'reported' | 'not_applicable' | 'omitted_sensitive' | 'not_estimated', required
          - `unit` string
          - `value` unknown
        - `suggestionOrigin` 'override_last_year' | 'default_last_year': Where suggestion came from (last year's override row or last year's Default workspace row). Set only with suggestion.
        - `type` 'number' | 'integer' | 'money_eur' | 'percent' | 'tonnes' | 'text' | 'bool' | 'enum' | 'year' | 'date' | 'list' | 'table', required
        - `unit` string
      - `original` string
      - `rewrite` string
      - `target` 'emissions_data' | 'sites' | 'organization_profile' | 'answer_sheet'
      - `type` 'rewrite' | 'answer' | 'link' | 'none', required
      - `year` integer
    - `id` string, required
    - `kind` 'wording' | 'completeness', required: Template issues are stored for a central fix and never returned.
    - `originFindingId` string: Wording tips only: the tip's first row before any copy on write (its own id when not carried). Clients match a tip across versions by it.
    - `reason` string, required: Core's sentence; never model text.
    - `severity` 'high' | 'medium' | 'low': A fixed map by category
    - `state` 'current' | 'out_of_date', required: Completeness tips are always current.
    - `status` 'open' | 'applied' | 'dismissed', required
    - `statusAt` string, date-time
    - `statusBy` string
    - `title` string, required: Core's label of the tip (the item's label

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict

## Changes

- **2026-10-09** `840a458f7a4d`: 1 info
  - added the optional property `data/originFindingId` to the response with the `200` status
- **2026-10-07** `5c524454c847`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/greentally/apis/esgai-api/changes/reports/:id/versions/:versionId/review/findings/:findingId/dismiss/post.md)

---

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