> ## 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 solicitud de devolución MED

> Registra el resultado del análisis del PSP contestado. Las invariantes condicionalmente obligatorias se validan antes de cualquier llamada al upstream. Persiste la entidad de respuesta del upstream (la marca de agua avanzada) y la devuelve.



## OpenAPI

````yaml es/openapi/v3-current/pix.yaml POST /v1/med/refunds/{idSolDevolucao}/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/refunds/{idSolDevolucao}/analyze:
    post:
      tags:
        - MED API
      summary: Analizar una solicitud de devolución MED
      description: >-
        Registra el resultado del análisis del PSP contestado. Las invariantes
        condicionalmente obligatorias se validan antes de cualquier llamada al
        upstream. Persiste la entidad de respuesta del upstream (la marca de
        agua avanzada) y la devuelve.
      parameters:
        - description: The refund-request GUID.
          in: path
          name: idSolDevolucao
          required: true
          schema:
            description: El GUID de la solicitud de devolución.
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnalyzeRefundRequestBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundRequestView'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
components:
  schemas:
    AnalyzeRefundRequestBody:
      additionalProperties: false
      properties:
        detalhesAnalise:
          description: Detalle del análisis; obligatorio al rechazar con motivoRejeicao=4.
          type: string
        endToEndIdDevolucao:
          description: >-
            Id de devolucao pacs.004/008; obligatorio cuando resultadoAnalise es
            0 o 1.
          type: string
        idempotencyKey:
          description: Clave de idempotencia derivada del negocio (Chave-Idempotencia).
          type: string
        motivoRejeicao:
          description: Motivo de rechazo (0,1,3,4); obligatorio cuando resultadoAnalise=2.
          format: int64
          type: integer
        resultadoAnalise:
          description: >-
            Resultado del análisis (0=Aceita Totalmente, 1=Aceita Parcialmente,
            2=Rejeitada).
          format: int64
          type: integer
        valorDevolvidoCents:
          description: >-
            Monto realmente devuelto, en centavos; obligatorio para una
            aceptación parcial.
          format: int64
          type: integer
      required:
        - resultadoAnalise
        - idempotencyKey
      type: object
    RefundRequestView:
      additionalProperties: false
      properties:
        analysisDeadline:
          description: >-
            Plazo de análisis del lado contestado; null para solicitudes del
            lado del emisor y terminales.
          type: string
        breached:
          description: >-
            True cuando el plazo de análisis se ha alcanzado o superado
            (calculado en el momento de la lectura); false cuando no hay plazo
            definido.
          type: boolean
        detalhes:
          description: Detalle de texto libre.
          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 contestado o de la devolucao.
          type: string
        endToEndIdDevolucao:
          description: >-
            Referencia de devolucao pacs.004/pacs.008, registrada en el
            análisis.
          type: string
        idRecValores:
          description: >-
            GUID de la recuperación de valores, cuando proviene de una
            recuperación.
          type: string
        idRelatoInfracao:
          description: GUID de la infracción vinculada, cuando hay fraude.
          type: string
        idSolDevolucao:
          description: GUID de la solicitud de devolución (la clave natural).
          type: string
        ispbContestado:
          description: ISPB del PSP contestado.
          type: string
        ispbSolicitante:
          description: ISPB del PSP solicitante.
          type: string
        motivo:
          description: >-
            Código de motivo de la devolución (0=Falha Operacional, 1=Fraude,
            3=Pix Automático).
          format: int64
          type: integer
        motivoDescription:
          description: Etiqueta legible para humanos del motivo de la devolución.
          type: string
        motivoRejeicao:
          description: >-
            Motivo de rechazo (0,1,3,4); presente solo cuando el análisis
            rechazó la solicitud.
          format: int64
          type: integer
        motivoRejeicaoDescription:
          description: Etiqueta legible para humanos del motivo de rechazo.
          type: string
        resultadoAnalise:
          description: >-
            Resultado del análisis de la devolución (0=Aceita Totalmente,
            1=Aceita Parcialmente, 2=Rejeitada); null hasta que se analice.
          format: int64
          type: integer
        resultadoAnaliseDescription:
          description: >-
            Etiqueta legible para humanos del resultado del análisis de la
            devolución.
          type: string
        status:
          description: >-
            Código de ciclo de vida stSolDevolucao (0=Aberta, 1=Cancelada,
            2=Analisada).
          format: int64
          type: integer
        statusDescription:
          description: Etiqueta legible para humanos de stSolDevolucao.
          type: string
        valorDevolucaoCents:
          description: Monto de devolución solicitado, en centavos.
          format: int64
          type: integer
        valorDevolvidoCents:
          description: Monto realmente devuelto, en centavos; null cuando está ausente.
          format: int64
          type: integer
      required:
        - idSolDevolucao
        - endToEndId
        - motivo
        - motivoDescription
        - valorDevolucaoCents
        - status
        - statusDescription
        - ispbSolicitante
        - ispbContestado
        - dtHrCriacao
        - dtHrUltModificacao
        - breached
      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).

````