> ## 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.

# Close an infraction report

> Closes an ACKNOWLEDGED infraction report with the reporter verdict (AGREED or DISAGREED) and changes its status to CLOSED. DISAGREED attempts to release all PENDING balance blocks; failure to release an individual block does not fail the close. AGREED leaves the blocks unchanged. fraudType is required when analysisResult is AGREED, and analysisDetails is required when fraudType is OTHER. Any pre-state other than ACKNOWLEDGED returns 409. Reusing the original Idempotency-Key returns the first attempt response instead of re-evaluating the current state. The report must belong to the authenticated organization, otherwise 404 is returned.



## OpenAPI

````yaml en/openapi/v3-current/pix-lerian-dict.yaml POST /dict/infraction-reports/{id}/close
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: Elastic License 2.0
    url: https://www.elastic.co/licensing/elastic-license
  title: Pix Lerian — DICT
  version: release-candidate
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: Register, retrieve, list, update, and remove Pix keys.
    name: Entries
  - description: Look up Pix keys and check whether keys exist in the DICT directory.
    name: Keys
  - description: Manage ownership and portability claims for Pix keys.
    name: Claims
  - 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: Create, query, cancel, and settle MED 2.0 refunds.
    name: Refunds
  - description: Create, query, list, and cancel DICT fraud markers.
    name: Fraud Markers
paths:
  /dict/infraction-reports/{id}/close:
    post:
      tags:
        - Infraction Reports
      summary: Close an infraction report
      description: >-
        Closes an ACKNOWLEDGED infraction report with the reporter verdict
        (AGREED or DISAGREED) and changes its status to CLOSED. DISAGREED
        attempts to release all PENDING balance blocks; failure to release an
        individual block does not fail the close. AGREED leaves the blocks
        unchanged. fraudType is required when analysisResult is AGREED, and
        analysisDetails is required when fraudType is OTHER. Any pre-state other
        than ACKNOWLEDGED returns 409. Reusing the original Idempotency-Key
        returns the first attempt response instead of re-evaluating the current
        state. The report must belong to the authenticated organization,
        otherwise 404 is returned.
      operationId: closeInfractionReport
      parameters:
        - description: Client-generated key used to retry exactly the same request safely.
          in: header
          name: Idempotency-Key
          required: true
          schema:
            maxLength: 64
            minLength: 1
            type: string
            description: >-
              Client-generated key used to retry exactly the same request
              safely.
          example: pix-demo-20260903-000001
        - 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
          example: 01960718-a213-2435-6078-901234567123
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloseInfractionReportRequest'
            examples:
              fictitiousExample:
                summary: Fictitious example
                value:
                  analysisDetails: Mule account confirmed by anti-fraud analysis.
                  analysisResult: AGREED
                  fraudType: MULE_ACCOUNT
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InfractionReportDetailOutput'
              examples:
                fictitiousExample:
                  summary: Fictitious example
                  value:
                    analysisDetails: Mule account confirmed by anti-fraud analysis.
                    analysisResult: AGREED
                    bacenFundsRecoveryId: 018f8c1d-1111-7abc-9def-000000000001
                    bacenInfractionReportId: 018f8c1d-aaaa-7abc-9def-000000000010
                    balanceBlocks:
                      - amount: '1000.00'
                        attemptNumber: 1
                        createdAt: '2026-06-18T12:00:00Z'
                        failureReason: balance-lock group settle exceeds the settle ceiling
                        id: 018f8c1d-1234-7abc-9def-000000000002
                        spiBlockId: 018f8c1d-5678-7abc-9def-000000000003
                        status: PENDING
                        updatedAt: '2026-06-18T12:05:00Z'
                    contactInformation:
                      email: user@example.com
                      phone: '+5511999999999'
                    correlationId: 9f3a8b7e2c1d4e5a8b6f1a2b3c4d5e6f
                    counterpartyParticipant: '87654321'
                    createdAt: '2026-06-18T12:00:00Z'
                    fraudMarkerId: 018f8c1d-bbbb-7abc-9def-000000000020
                    fraudType: MULE_ACCOUNT
                    id: 018f8c1d-1234-7abc-9def-000000000001
                    infractionAmount: '1500.00'
                    monitorAccount: false
                    reportDetails: conta usada repetidamente em golpes
                    reporterParticipant: '12345678'
                    situationType: SCAM
                    status: OPEN
                    transactionDepth: 1
                    transactionId: E12345678202601011200abcdef01234
                    updatedAt: '2026-06-18T12:05:00Z'
          description: OK
        '400':
          content:
            application/json:
              example:
                code: PIX-0030
                title: Idempotency Key Required
                message: >-
                  The Idempotency-Key header is required for this operation and
                  must be within the accepted length.
              schema:
                $ref: '#/components/schemas/LegacyErrorEnvelope'
          description: >-
            Idempotency-Key absent or longer than 64 bytes (PIX-0030). Legacy
            {code,title,message} envelope, NOT problem+json.
        '412':
          content:
            application/json:
              example:
                code: PIX-0031
                title: Idempotency Key Conflict
                message: The Idempotency-Key was already used with a different request.
              schema:
                $ref: '#/components/schemas/LegacyErrorEnvelope'
          description: >-
            Idempotency-Key replayed with a divergent request -- a different
            method, URL (including the path parameter), body, or identity header
            among X-Account-Id / X-Reason / X-End-To-End-Id (PIX-0031). Legacy
            {code,title,message} envelope, NOT problem+json.
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      x-codeSamples:
        - lang: bash
          label: cURL with fictitious data
          source: |-
            curl --request POST \
              --url https://api.example.com/dict-hub/v1/dict/infraction-reports/01960718-a213-2435-6078-901234567123/close \
              --header 'Authorization: Bearer demo-access-token' \
              --header 'Content-Type: application/json' \
              --header 'Idempotency-Key: pix-demo-20260903-000001' \
              --data '{
              "analysisDetails": "Mule account confirmed by anti-fraud analysis.",
              "analysisResult": "AGREED",
              "fraudType": "MULE_ACCOUNT"
            }'
components:
  schemas:
    CloseInfractionReportRequest:
      additionalProperties: false
      properties:
        analysisDetails:
          examples:
            - Mule account confirmed by anti-fraud analysis.
          type: string
        analysisResult:
          enum:
            - AGREED
            - DISAGREED
          examples:
            - AGREED
          type: string
        fraudType:
          enum:
            - APPLICATION_FRAUD
            - MULE_ACCOUNT
            - SCAMMER_ACCOUNT
            - OTHER
          examples:
            - MULE_ACCOUNT
          type: string
      required:
        - analysisResult
      type: object
    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
      required:
        - code
        - title
        - message
      type: object
    Detail:
      additionalProperties: false
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          examples:
            - ERR-0001
          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
        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
      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

````