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

# Acknowledge an infraction report

> Acknowledges an OPEN infraction report as the receiving counterparty and changes its status to ACKNOWLEDGED. Acknowledging an already-ACKNOWLEDGED report with a new X-Idempotency header is idempotent and returns its current state with HTTP 200. Reports in CLOSED or CANCELLED return 409. Reusing the original X-Idempotency header returns the first attempt response, which may not reflect the current report state; use a different key to evaluate the current state. The report must belong to the authenticated organization, otherwise 404 is returned. When BACEN has not resolved the request yet, the operation answers 409 / PIX-0118; errors[] carries operationId and operationStatus when the provider sent valid values. The report keeps its current status until BACEN's change arrives. The replay gate stores no pending answer, so a retry under the same X-Idempotency runs the operation again: read the report instead.



## OpenAPI

````yaml /pt/openapi/v3-current/pix-lerian-dict.yaml post /dict/infraction-reports/{id}/acknowledge
openapi: 3.1.0
info:
  contact:
    name: Lerian Studio
    url: https://lerian.studio
  description: >-
    Public API for Pix keys, claims, fraud markers, infraction reports, and MED
    funds recovery.
  license:
    name: Lerian Studio General License
  title: Pix Lerian — DICT
  version: 1.2.0
servers:
  - url: https://api.example.com/dict-hub/v1
    description: >-
      Replace the example host with the URL provided during environment
      onboarding.
security:
  - BearerAuth: []
tags:
  - description: Manage ownership and portability claims for Pix keys.
    name: Claims
  - description: Register, retrieve, list, update, and remove Pix keys.
    name: Entries
  - description: Create, query, list, and cancel DICT fraud markers.
    name: Fraud Markers
  - description: Manage participant-scoped MED 2.0 funds recoveries.
    name: Funds Recoveries
  - description: Manage MED 2.0 infraction reports for the authenticated organization.
    name: Infraction Reports
  - description: Look up Pix keys and check whether keys exist in the DICT directory.
    name: Keys
  - description: Create, query, cancel, and settle MED 2.0 refunds.
    name: Refunds
  - description: >-
      Read the state of key reconciliation against BACEN, and start a
      verification or a file reconciliation.
    name: VSync
paths:
  /dict/infraction-reports/{id}/acknowledge:
    post:
      tags:
        - Infraction Reports
      summary: Acknowledge an infraction report
      description: >-
        Acknowledges an OPEN infraction report as the receiving counterparty and
        changes its status to ACKNOWLEDGED. Acknowledging an
        already-ACKNOWLEDGED report with a new X-Idempotency header is
        idempotent and returns its current state with HTTP 200. Reports in
        CLOSED or CANCELLED return 409. Reusing the original X-Idempotency
        header returns the first attempt response, which may not reflect the
        current report state; use a different key to evaluate the current state.
        The report must belong to the authenticated organization, otherwise 404
        is returned. When BACEN has not resolved the request yet, the operation
        answers 409 / PIX-0118; errors[] carries operationId and operationStatus
        when the provider sent valid values. The report keeps its current status
        until BACEN's change arrives. The replay gate stores no pending answer,
        so a retry under the same X-Idempotency runs the operation again: read
        the report instead.
      operationId: acknowledgeInfractionReport
      parameters:
        - description: >-
            REQUIRED. Client-supplied replay key, at most 64 bytes. A request
            without it is refused with PIX-0030 @ 400 before the handler runs.
            Resending the same key and request within 1 hour returns the
            original response, its status included, with X-Idempotency-Replayed:
            true. Reusing the key with a divergent method, path or body, or
            while the first request runs, is PIX-0031 @ 412.
          in: header
          name: X-Idempotency
          required: true
          schema:
            maxLength: 64
            minLength: 1
            type: string
        - description: Infraction report internal ID (UUID format)
          in: path
          name: id
          required: true
          schema:
            description: Infraction report internal ID (UUID format)
            examples:
              - 018f8c1d-1234-7abc-9def-000000000001
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InfractionReportDetailOutput'
          description: OK
        '400':
          content:
            application/json:
              example:
                code: PIX-0030
                title: Idempotency Key Required
                message: >-
                  The X-Idempotency header is required for this operation and
                  must be within the accepted length.
              schema:
                $ref: '#/components/schemas/LegacyErrorEnvelope'
            application/problem+json:
              example:
                type: https://errors.lerian.studio/v1/PIX-0001
                title: Bad Request
                status: 400
                detail: Your request is missing one or more required header params.
                code: PIX-0001
              schema:
                $ref: '#/components/schemas/Detail'
          description: >-
            Bad Request (PIX-0001, PIX-0002, PIX-0003, PIX-0017, PIX-0015,
            PIX-0020). X-Idempotency absent or longer than 64 bytes (PIX-0030).
            Legacy {code,title,message} envelope, NOT problem+json.
        '404':
          content:
            application/problem+json:
              example:
                type: https://errors.lerian.studio/v1/PIX-0011
                title: Not Found
                status: 404
                detail: >-
                  No entity was found for the given ID. Please make sure to use
                  the correct ID.
                code: PIX-0011
              schema:
                $ref: '#/components/schemas/Detail'
          description: Not Found (PIX-0011).
        '409':
          content:
            application/problem+json:
              example:
                type: https://errors.lerian.studio/v1/PIX-0012
                title: Conflict
                status: 409
                detail: >-
                  The entity already exists or conflicts with an existing
                  resource.
                code: PIX-0012
              schema:
                $ref: '#/components/schemas/Detail'
          description: Conflict (PIX-0012, PIX-0118).
        '412':
          content:
            application/json:
              example:
                code: PIX-0031
                title: Idempotency Key Conflict
                message: >-
                  The X-Idempotency header is held by a request still running or
                  whose receipt could not be stored, or was already used with a
                  different request.
              schema:
                $ref: '#/components/schemas/LegacyErrorEnvelope'
          description: >-
            Refused under this X-Idempotency (PIX-0031): the first request under
            it is still running (with Retry-After: 1), its receipt could not be
            stored and the key is held for the hour, or the request differs from
            the first (method, URL, body, or identity header among X-Account-Id
            / X-Reason / X-End-To-End-Id). An earlier request under this key may
            already have executed. Legacy {code,title,message} envelope, NOT
            problem+json.
        '422':
          content:
            application/problem+json:
              example:
                type: https://errors.lerian.studio/v1/PIX-0013
                title: Unprocessable Entity
                status: 422
                detail: >-
                  The operation could not be processed due to a business rule
                  violation.
                code: PIX-0013
              schema:
                $ref: '#/components/schemas/Detail'
          description: Unprocessable Entity (PIX-0013).
        '500':
          content:
            application/problem+json:
              example:
                type: https://errors.lerian.studio/v1/PIX-0000
                title: Internal Server Error
                status: 500
                detail: internal error
                code: PIX-0000
              schema:
                $ref: '#/components/schemas/Detail'
          description: Internal Server Error (PIX-0000).
        '502':
          content:
            application/problem+json:
              example:
                type: https://errors.lerian.studio/v1/PIX-0071
                title: Bad Gateway
                status: 502
                detail: internal error
                code: PIX-0071
              schema:
                $ref: '#/components/schemas/Detail'
          description: Bad Gateway (PIX-0071, PIX-0070, PIX-0072).
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
components:
  schemas:
    InfractionReportDetailOutput:
      additionalProperties: false
      properties:
        analysisDetails:
          examples:
            - Mule account confirmed by anti-fraud analysis.
          type: string
        analysisResult:
          enum:
            - AGREED
            - DISAGREED
          examples:
            - AGREED
          type: string
        bacenFundsRecoveryId:
          examples:
            - 018f8c1d-1111-7abc-9def-000000000001
          type: string
        bacenInfractionReportId:
          examples:
            - 018f8c1d-aaaa-7abc-9def-000000000010
          type: string
        balanceBlocks:
          items:
            $ref: '#/components/schemas/BalanceBlockOutput'
          type:
            - array
            - 'null'
        contactInformation:
          $ref: '#/components/schemas/ContactInformationOutput'
        correlationId:
          examples:
            - 9f3a8b7e2c1d4e5a8b6f1a2b3c4d5e6f
          type: string
        counterpartyParticipant:
          examples:
            - '87654321'
          type: string
        createdAt:
          examples:
            - '2026-06-18T12:00:00Z'
          format: date-time
          type: string
        fraudMarkerId:
          examples:
            - 018f8c1d-bbbb-7abc-9def-000000000020
          type: string
        fraudType:
          enum:
            - APPLICATION_FRAUD
            - MULE_ACCOUNT
            - SCAMMER_ACCOUNT
            - OTHER
          examples:
            - MULE_ACCOUNT
          type: string
        id:
          examples:
            - 018f8c1d-1234-7abc-9def-000000000001
          type: string
        infractionAmount:
          examples:
            - '1500.00'
          type: string
        monitorAccount:
          examples:
            - false
          type: boolean
        reportDetails:
          examples:
            - conta usada repetidamente em golpes
          type: string
        reporterParticipant:
          examples:
            - '12345678'
          type: string
        situationType:
          enum:
            - SCAM
            - ACCOUNT_TAKEOVER
            - COERCION
            - FRAUDULENT_ACCESS
            - OTHER
            - UNKNOWN
          examples:
            - SCAM
          type: string
        status:
          enum:
            - OPEN
            - ACKNOWLEDGED
            - CLOSED
            - CANCELLED
          examples:
            - OPEN
          type: string
        transactionDepth:
          examples:
            - 1
          format: int64
          maximum: 2147483647
          minimum: 1
          type: integer
        transactionId:
          examples:
            - E12345678202601011200abcdef01234
          type: string
        updatedAt:
          examples:
            - '2026-06-18T12:05:00Z'
          format: date-time
          type: string
      required:
        - id
        - bacenInfractionReportId
        - transactionId
        - situationType
        - contactInformation
        - status
        - balanceBlocks
        - monitorAccount
        - createdAt
        - updatedAt
      type: object
    LegacyErrorEnvelope:
      additionalProperties: false
      properties:
        code:
          description: PIX-XXXX error code
          type: string
        message:
          description: Human-readable error message
          type: string
        title:
          description: Short error title
          type: string
        fields:
          additionalProperties:
            type: string
          description: Per-field detail, keyed by the field or header the refusal names
          type: object
        headers:
          additionalProperties:
            type: string
          description: Per-header detail, keyed by the request header the refusal names
          type: object
      required:
        - code
        - title
        - message
      type: object
    Detail:
      additionalProperties: true
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
        upstream:
          $ref: '#/components/schemas/Upstream'
          description: >-
            RFC 9457 extension member: the error a proxied third-party provider
            reported. Absent unless the emitting service explicitly surfaced
            one.
      type: object
    BalanceBlockOutput:
      additionalProperties: false
      properties:
        amount:
          examples:
            - '1000.00'
          type: string
        attemptNumber:
          examples:
            - 1
          format: int64
          type: integer
        createdAt:
          examples:
            - '2026-06-18T12:00:00Z'
          format: date-time
          type: string
        failureReason:
          examples:
            - balance-lock group settle exceeds the settle ceiling
          type: string
          description: >-
            Why the hold failed, sanitized for egress. Present ONLY when status
            is FAILED, so its presence is itself the signal that manual action
            is needed.
        id:
          examples:
            - 018f8c1d-1234-7abc-9def-000000000002
          type: string
        spiBlockId:
          examples:
            - 018f8c1d-5678-7abc-9def-000000000003
          type: string
        status:
          enum:
            - PENDING
            - SETTLING
            - SETTLED
            - RELEASED
            - FAILED
          examples:
            - PENDING
          type: string
        updatedAt:
          examples:
            - '2026-06-18T12:05:00Z'
          format: date-time
          type: string
        pendingReason:
          description: >-
            Why the block is still PENDING, sanitized for egress. Present ONLY
            when status is PENDING and a reason is recorded. Informational:
            unlike failureReason, its presence is not the signal that manual
            action is needed. With no spiBlockId, the block's SPI create went
            unanswered and it awaits the admin replay (its release, settle and
            blocks/close answer 409 PIX-0012 until then; a release deferred
            meanwhile, or due on a cancelled or DISAGREED-closed report, is run
            by the replay right after it links the block); with a spiBlockId,
            its release at the SPI failed or a deferred one has not run yet, or
            the SPI compensated a failed settle and the group awaits a new
            settle.
          examples:
            - >-
              The provider adapter service is unavailable. Please try again
              later.
          type: string
      required:
        - id
        - amount
        - status
        - attemptNumber
        - createdAt
        - updatedAt
      type: object
    ContactInformationOutput:
      additionalProperties: false
      properties:
        email:
          examples:
            - user@example.com
          type: string
        phone:
          examples:
            - '+5511999999999'
          type: string
      required:
        - email
        - phone
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    Upstream:
      additionalProperties: false
      properties:
        code:
          description: The upstream provider's own error code, verbatim.
          examples:
            - E4001
          type: string
        message:
          description: >-
            The upstream provider's own error message, verbatim (bounded, never
            its raw response body).
          examples:
            - account not found at provider
          type: string
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.