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

# Analizar una infracción MED

> Registra el resultado del análisis del PSP contraparte. Las invariantes (resultadoAnalise {0=Aceita,1=Rejeitada}, tpFraude {0..4} obligatorio cuando Aceita) se validan antes de cualquier llamada al upstream. Persiste la entidad de respuesta del upstream (la marca de agua avanzada + el idMarcacaoFraude acuñado) y la devuelve.



## OpenAPI

````yaml es/openapi/v3-current/pix.yaml POST /v1/med/infractions/{idRelatoInfracao}/analyze
openapi: 3.0.3
info:
  title: Plugin BR Pix Directo - API completa
  description: >
    API completa para el sistema de pagos instantáneos Pix de Brasil,

    que incluye operaciones del diccionario de claves Pix,
    generación/decodificación

    de códigos QR, transacciones y límites transaccionales.
  version: 1.0.0
servers:
  - url: https://plugin-pix-direct.api.lerian.net
  - url: https://plugin-pix-direct-qrcode.api.lerian.net
security:
  - bearerAuth: []
paths:
  /v1/med/infractions/{idRelatoInfracao}/analyze:
    post:
      tags:
        - MED API
      summary: Analizar una infracción MED
      description: >-
        Registra el resultado del análisis del PSP contraparte. Las invariantes
        (resultadoAnalise {0=Aceita,1=Rejeitada}, tpFraude {0..4} obligatorio
        cuando Aceita) se validan antes de cualquier llamada al upstream.
        Persiste la entidad de respuesta del upstream (la marca de agua avanzada
        + el idMarcacaoFraude acuñado) y la devuelve.
      parameters:
        - description: The infraction GUID.
          in: path
          name: idRelatoInfracao
          required: true
          schema:
            description: El GUID de la infracción.
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnalyzeInfractionRequestBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InfractionView'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
components:
  schemas:
    AnalyzeInfractionRequestBody:
      additionalProperties: false
      properties:
        detalhesAnalise:
          description: Detalle del análisis.
          type: string
        idempotencyKey:
          description: Clave de idempotencia derivada del negocio (Chave-Idempotencia).
          type: string
        resultadoAnalise:
          description: Resultado del análisis de la infracción (0=Aceita, 1=Rejeitada).
          format: int64
          type: integer
        tpFraude:
          description: >-
            Código de tipo de fraude (0..4); obligatorio cuando
            resultadoAnalise=0 (Aceita).
          format: int64
          type: integer
      required:
        - resultadoAnalise
        - idempotencyKey
      type: object
    InfractionView:
      additionalProperties: false
      properties:
        detalhes:
          description: Detalle de texto libre para ayudar al recebedor a analizar.
          type: string
        detalhesAnalise:
          description: Detalle del análisis.
          type: string
        dtHrCriacao:
          description: Marca de tiempo de creación en el upstream (RFC 3339 UTC).
          type: string
        dtHrUltModificacao:
          description: >-
            Marca de tiempo de la última modificación en el upstream (RFC 3339
            UTC): la marca de agua del sondeo.
          type: string
        endToEndId:
          description: EndToEndId del pago sospechoso.
          type: string
        idMarcacaoFraude:
          description: GUID del marcador de fraude, cuando el análisis produjo uno.
          type: string
        idRecValores:
          description: >-
            GUID de la recuperación de valores, cuando la infracción provino de
            una recuperación.
          type: string
        idRelatoInfracao:
          description: GUID de la infracción (la clave natural).
          type: string
        motivo:
          description: >-
            Código de motivo de la infracción (1=Solicitacao de devolucao,
            2=Cancelamento da devolucao).
          format: int64
          type: integer
        motivoDescription:
          description: Etiqueta legible para humanos del motivo de la infracción.
          type: string
        pspContraParte:
          description: ISPB de la contraparte.
          type: string
        pspCriador:
          description: ISPB del creador de la infracción.
          type: string
        resultadoAnalise:
          description: >-
            Resultado del análisis de la infracción (0=Aceita, 1=Rejeitada);
            null hasta que se analice.
          format: int64
          type: integer
        resultadoAnaliseDescription:
          description: >-
            Etiqueta legible para humanos del resultado del análisis de la
            infracción.
          type: string
        status:
          description: >-
            Código de ciclo de vida stRelatoInfracao (0=Aberto, 1=Recebido,
            2=Cancelado, 3=Analisado).
          format: int64
          type: integer
        statusDescription:
          description: Etiqueta legible para humanos de stRelatoInfracao.
          type: string
        tpSitOrigem:
          description: Código de origen de la situación (0..5).
          format: int64
          type: integer
        tpSitOrigemDescription:
          description: Etiqueta legible para humanos de tpSitOrigem.
          type: string
        vlrInfracaoCents:
          description: >-
            Monto a bloquear en la cuenta, en centavos; null cuando está
            ausente.
          format: int64
          type: integer
      required:
        - idRelatoInfracao
        - endToEndId
        - motivo
        - motivoDescription
        - tpSitOrigem
        - tpSitOrigemDescription
        - status
        - statusDescription
        - pspCriador
        - pspContraParte
        - dtHrCriacao
        - dtHrUltModificacao
      type: object
    Detail:
      additionalProperties: false
      properties:
        code:
          description: >-
            Código de error de dominio estable y legible por máquina, acotado al
            servicio emisor (formato: <SERVICE>-NNNN).
          type: string
        detail:
          description: >-
            Una explicación legible para humanos específica de esta ocurrencia
            del problema.
          type: string
        errors:
          description: Lista opcional de detalles de error individuales
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          nullable: true
        instance:
          description: >-
            Una referencia URI que identifica la ocurrencia específica del
            problema.
          format: uri
          type: string
        status:
          description: Código de estado HTTP
          format: int64
          type: integer
        title:
          description: >-
            Un resumen breve y legible para humanos del tipo de problema. Este
            valor no debería cambiar entre ocurrencias del error.
          type: string
        type:
          default: about:blank
          description: >-
            Una referencia URI a la documentación legible para humanos del
            error.
          format: uri
          type: string
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Dónde ocurrió el error, p. ej. 'body.items[3].tags' o
            'path.thing-id'
          type: string
        message:
          description: Texto del mensaje de error
          type: string
        value:
          description: El valor en la ubicación indicada
      type: object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Autenticación con token JWT Bearer. Obtén el token desde el endpoint
        `/v1/login/oauth/access_token`

        usando credenciales de cliente (`clientId` y `clientSecret`).


        Incluye el token en el encabezado Authorization:

        `Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`


        El token expira después de 3600 segundos (1 hora).

````