> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polymorfa.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Acknowledge ban safe finding

> Records that a named person on the team has seen this finding, optionally silences its notifications for up to 30 days, and unlocks the appeal form. It does not change the Health estimate, the restriction, or any campaign limit. Requires a signed-in organization owner, admin, or developer; an API key or token is refused with `bansafe_ack_requires_dashboard_identity`.

Requires a verified dashboard bearer and current organization authorization. Organization keys and project tokens are not accepted.



## OpenAPI

````yaml api-reference/features/operate.json POST /platform/bansafe/findings/{findingId}/acknowledge
openapi: 3.0.3
info:
  title: Operate API methods
  version: 1.0.0
  description: Task-focused operate methods across supported Polymorfa connection types.
servers: []
security: []
paths:
  /platform/bansafe/findings/{findingId}/acknowledge:
    post:
      tags:
        - Bansafe
      summary: Acknowledge ban safe finding
      description: >-
        Records that a named person on the team has seen this finding,
        optionally silences its notifications for up to 30 days, and unlocks the
        appeal form. It does not change the Health estimate, the restriction, or
        any campaign limit. Requires a signed-in organization owner, admin, or
        developer; an API key or token is refused with
        `bansafe_ack_requires_dashboard_identity`.


        Requires a verified dashboard bearer and current organization
        authorization. Organization keys and project tokens are not accepted.
      operationId: managementAcknowledgeBanSafeFinding
      parameters:
        - name: findingId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: |-
            Identifier for the finding.

            <!-- polymorfa-input-table -->
            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `uuid` |
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/management__AcknowledgeBanSafeFindingInput'
      responses:
        '200':
          description: Success
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Stable request correlation identifier.
            Polymorfa-Version:
              schema:
                type: string
              description: API version applied to this response.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    allOf:
                      - $ref: >-
                          #/components/schemas/management__BanSafeFindingAcknowledgement
                    description: Structured data carried by this object.
                required:
                  - data
        '400':
          $ref: '#/components/responses/management__BadRequest'
        '401':
          $ref: '#/components/responses/management__Unauthorized'
        '403':
          $ref: '#/components/responses/management__Forbidden'
        '404':
          $ref: '#/components/responses/management__NotFound'
      security:
        - management__ConsoleSession: []
      servers:
        - url: https://api.polymorfa.com
        - url: http://localhost:8080
          description: local dev
components:
  schemas:
    management__AcknowledgeBanSafeFindingInput:
      type: object
      additionalProperties: false
      properties:
        note:
          type: string
          maxLength: 500
          description: >-
            Specifies note for this management acknowledge ban safe finding
            input.


            <!-- polymorfa-input-table -->

            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | String length | At most `500` characters |
        snoozeDays:
          type: integer
          minimum: 1
          maximum: 30
          description: |-
            Silence this finding's notifications for this many days.

            <!-- polymorfa-input-table -->
            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Numeric value | `1` through `30` (inclusive) |
    management__BanSafeFindingAcknowledgement:
      type: object
      additionalProperties: false
      properties:
        finding:
          allOf:
            - $ref: '#/components/schemas/management__BanSafeFinding'
          description: >-
            Specifies finding for this management ban safe finding
            acknowledgement.
        message:
          type: string
          description: The exact sentence shown in the console next to the button.
      required:
        - finding
        - message
    management__BanSafeFinding:
      type: object
      additionalProperties: false
      description: >-
        One safety finding, with the sentences to show a customer. A
        `not_measured` entry has no stored lifecycle and reports null
        timestamps; it is never reported as resolved and never omitted.
      properties:
        id:
          type: string
          format: uuid
          nullable: true
          description: |-
            Identifier for this resource.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string`; Format: `uuid` |
            | Alternative 2 | `null` |

            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `uuid` |
        key:
          type: string
          maxLength: 64
          description: |-
            Specifies key for this management ban safe finding.

            <!-- polymorfa-input-table -->
            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | String length | At most `64` characters |
        title:
          type: string
          description: >-
            Customer-visible name of the check. A `not_measured` entry carries
            the same title as a stored one.
        summary:
          type: string
          description: >-
            The evidence sentence for this finding, with the numbers from
            `evidence` already filled in. A number the check could not read
            reads as `unknown`, and a `not_measured` entry therefore reads as
            the sentence with no numbers in it. Empty for a key Polymorfa has
            retired.
        fix:
          type: string
          description: >-
            What to change to clear the finding. Empty for a key Polymorfa has
            retired.
        status:
          type: string
          enum:
            - open
            - acknowledged
            - resolved
            - not_measured
          description: |-
            Current status of this resource or operation.

            <!-- polymorfa-input-table -->
            **Allowed values**
            | Value | Meaning |
            | --- | --- |
            | `open` | Open. |
            | `acknowledged` | Acknowledged. |
            | `resolved` | Resolved. |
            | `not_measured` | Not measured. |
        severity:
          type: string
          enum:
            - info
            - warning
            - critical
            - null
          nullable: true
          description: >-
            Specifies severity for this management ban safe finding.


            <!-- polymorfa-input-table -->

            **Allowed values**

            | Value | Meaning |

            | --- | --- |

            | `info` | Info. |

            | `warning` | Warning. |

            | `critical` | Critical. |

            | `null` | Null. |


            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; Value `info` or `warning` or
            `critical` |

            | Alternative 2 | `null` |
        occurrences:
          type: integer
          minimum: 0
          description: |-
            Specifies occurrences for this management ban safe finding.

            <!-- polymorfa-input-table -->
            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Numeric value | `0` or greater |
        reopenedCount:
          type: integer
          minimum: 0
          description: |-
            Number of reopeneds.

            <!-- polymorfa-input-table -->
            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Numeric value | `0` or greater |
        evidence:
          type: object
          additionalProperties: true
          description: >-
            Numbers only. Never message content, a message identifier, or a
            recipient identifier.
        sessionId:
          type: string
          format: uuid
          description: |-
            Identifier of the connected Polymorfa session.

            <!-- polymorfa-input-table -->
            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `uuid` |
        session:
          type: string
          description: Identifier of the connected Polymorfa session.
        phoneNumber:
          type: string
          description: Phone number in international format.
        firstSeenAt:
          type: string
          format: date-time
          nullable: true
          description: |-
            Timestamp for first seen at.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string`; Format: `date-time` |
            | Alternative 2 | `null` |

            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `date-time` |
        lastSeenAt:
          type: string
          format: date-time
          nullable: true
          description: |-
            Timestamp for last seen at.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string`; Format: `date-time` |
            | Alternative 2 | `null` |

            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `date-time` |
        acknowledgedAt:
          type: string
          format: date-time
          nullable: true
          description: |-
            Timestamp for acknowledged at.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string`; Format: `date-time` |
            | Alternative 2 | `null` |

            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `date-time` |
        acknowledgedBy:
          type: string
          nullable: true
          description: |-
            Specifies acknowledged by for this management ban safe finding.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        acknowledgementNote:
          type: string
          nullable: true
          maxLength: 500
          description: >-
            Specifies acknowledgement note for this management ban safe finding.


            <!-- polymorfa-input-table -->

            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; String length: At most `500`
            characters |

            | Alternative 2 | `null` |


            **Value constraints**

            | Constraint | Accepted input |

            | --- | --- |

            | String length | At most `500` characters |
        snoozedUntil:
          type: string
          format: date-time
          nullable: true
          description: |-
            Specifies snoozed until for this management ban safe finding.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string`; Format: `date-time` |
            | Alternative 2 | `null` |

            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `date-time` |
        resolvedAt:
          type: string
          format: date-time
          nullable: true
          description: |-
            Timestamp for resolved at.

            <!-- polymorfa-input-table -->
            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string`; Format: `date-time` |
            | Alternative 2 | `null` |

            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `date-time` |
        resolveReason:
          type: string
          nullable: true
          enum:
            - clean
            - key_retired
            - number_removed
            - stale
            - null
          description: >-
            Specifies resolve reason for this management ban safe finding.


            <!-- polymorfa-input-table -->

            **Allowed values**

            | Value | Meaning |

            | --- | --- |

            | `clean` | Clean. |

            | `key_retired` | Key retired. |

            | `number_removed` | Number removed. |

            | `stale` | Stale. |

            | `null` | Null. |


            **Accepted alternatives**

            | Alternative | Accepted input |

            | --- | --- |

            | Alternative 1 | Type: `string`; Value `clean` or `key_retired` or
            `number_removed` or `stale` |

            | Alternative 2 | `null` |
      required:
        - id
        - key
        - title
        - summary
        - fix
        - status
        - severity
        - occurrences
        - reopenedCount
        - evidence
        - sessionId
        - session
        - phoneNumber
        - firstSeenAt
        - lastSeenAt
        - acknowledgedAt
        - acknowledgedBy
        - acknowledgementNote
        - snoozedUntil
        - resolvedAt
        - resolveReason
    management__ErrorEnvelope:
      type: object
      required:
        - error
        - data
        - docs
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
            - param
          properties:
            type:
              type: string
              enum:
                - invalid_request_error
                - authentication_error
                - permission_error
                - conflict_error
                - rate_limit_error
                - api_error
                - upstream_error
              description: |-
                Type discriminator for this object.

                <!-- polymorfa-input-table -->
                **Allowed values**
                | Value | Meaning |
                | --- | --- |
                | `invalid_request_error` | Invalid request error. |
                | `authentication_error` | Authentication error. |
                | `permission_error` | Permission error. |
                | `conflict_error` | Conflict error. |
                | `rate_limit_error` | Rate limit error. |
                | `api_error` | Api error. |
                | `upstream_error` | Upstream error. |
            code:
              type: string
              description: Stable failure code. Use this value for programmatic handling.
            message:
              type: string
              description: Safe explanation of the failure.
            param:
              type: string
              nullable: true
              description: |-
                Invalid request field, or null when no field applies.

                <!-- polymorfa-input-table -->
                **Accepted alternatives**
                | Alternative | Accepted input |
                | --- | --- |
                | Alternative 1 | Type: `string` |
                | Alternative 2 | `null` |
          description: Error details returned when the operation fails.
        data:
          type: string
          nullable: true
          enum:
            - null
          description: |-
            Always null for a failed request.

            <!-- polymorfa-input-table -->
            **Allowed values**
            | Value | Meaning |
            | --- | --- |
            | `null` | Null. |

            **Accepted alternatives**
            | Alternative | Accepted input |
            | --- | --- |
            | Alternative 1 | Type: `string` |
            | Alternative 2 | `null` |
        docs:
          type: string
          format: uri
          description: |-
            Documentation link to this failure code.

            <!-- polymorfa-input-table -->
            **Value constraints**
            | Constraint | Accepted input |
            | --- | --- |
            | Format | `uri` |
  responses:
    management__BadRequest:
      description: A path, query, or request-body value did not pass validation.
      headers:
        X-Request-Id:
          schema:
            type: string
          description: Stable request correlation identifier.
        Polymorfa-Version:
          schema:
            type: string
          description: API version applied to this response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/management__ErrorEnvelope'
    management__Unauthorized:
      description: Missing/invalid credential for this audience.
      headers:
        X-Request-Id:
          schema:
            type: string
          description: Stable request correlation identifier.
        Polymorfa-Version:
          schema:
            type: string
          description: API version applied to this response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/management__ErrorEnvelope'
    management__Forbidden:
      description: Authenticated but lacks the required scope/role/audience.
      headers:
        X-Request-Id:
          schema:
            type: string
          description: Stable request correlation identifier.
        Polymorfa-Version:
          schema:
            type: string
          description: API version applied to this response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/management__ErrorEnvelope'
    management__NotFound:
      description: >-
        The requested resource was not found inside the authenticated
        organization or project scope.
      headers:
        X-Request-Id:
          schema:
            type: string
          description: Stable request correlation identifier.
        Polymorfa-Version:
          schema:
            type: string
          description: API version applied to this response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/management__ErrorEnvelope'

````