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

# Detalhar Disputa de MED

> Retorna os detalhes da disputa, incluindo o documento de evidência em base64 (quando já tiver sido enviado).

Retorna os detalhes da disputa, incluindo o documento de evidência codificado em base64 (quando já tiver sido enviado).

<Tip>
  Diferente do endpoint de listagem (que retorna apenas a URL armazenada em `content`), aqui o campo `MedContest.content` vem como **data URI em base64** — útil para reprocessar ou exibir o documento sem precisar baixá-lo separadamente.
</Tip>


## OpenAPI

````yaml GET /med-contest/exposes/{medId}
openapi: 3.0.1
info:
  title: 3X Pay Gateway
  description: >-
    Para autenticar as rotas dessa API são necessario ter em mãos a
    **api_secret** e **api_key** da sua conta. Este podem ser encontrados dentro
    do painel https://app.3xpay.co acessando a página de Configurações e
    clicando na opção de Credencias de API.
  version: 1.0.0
servers:
  - url: https://gateway.3xpay.co
security:
  - apiKeyAuth: []
    apiSecretAuth: []
tags:
  - name: Transações
    description: Operações relacionadas a transações financeiras
  - name: Webhooks
    description: Notificações de eventos da API
  - name: Balance
    description: Operações relacionadas ao saldo da conta
  - name: Sub-accounts
    description: Operações relacionadas a subcontas BaaS
  - name: MED Contest
    description: >-
      Endpoints server-to-server para responder a solicitações de MED (Mecanismo
      Especial de Devolução do Pix)
paths:
  /med-contest/exposes/{medId}:
    get:
      tags:
        - MED Contest
      summary: Detalhar disputa de MED
      description: >-
        Retorna os detalhes da disputa, incluindo o documento de evidência em
        base64 (quando já tiver sido enviado).
      operationId: getMedContest
      parameters:
        - name: medId
          in: path
          required: true
          schema:
            type: integer
          description: >-
            ID numérico retornado por `POST /med-contest/exposes` ou listado em
            `GET /med-contest/exposes`.
      responses:
        '200':
          description: Detalhes da disputa
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MedContestTransactionDetail'
        '400':
          description: Erro de validação
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                invalidId:
                  summary: medId inválido
                  value:
                    error: 400
                    message: Validation failed (numeric string is expected)
                notInDispute:
                  summary: Transação fora de disputa
                  value:
                    error: 400
                    message: Esta transação não está em estado de disputa de MED
        '404':
          description: Disputa não encontrada
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                notFound:
                  summary: medId inexistente
                  value:
                    error: 404
                    message: Disputa de MED não encontrada
components:
  schemas:
    MedContestTransactionDetail:
      type: object
      description: >-
        Transação em disputa com o detalhe do `MedContest` aninhado. No detalhe,
        `MedContest.content` vem como data URI em base64.
      properties:
        id:
          type: integer
          example: 50231
        transactionId:
          type: string
          format: uuid
          example: 01a51b3e-e17d-45eb-b8a2-e2392b6b1b28
        status:
          type: string
          example: MED
        MedContest:
          allOf:
            - $ref: '#/components/schemas/MedContestRecord'
            - type: object
              properties:
                content:
                  type: string
                  nullable: true
                  description: Data URI em base64 do documento de evidência.
                  example: data:application/pdf;base64,JVBERi0xLj...
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: integer
          format: int32
        message:
          type: string
    MedContestRecord:
      type: object
      description: >-
        Registro da disputa de MED. O campo `id` é o `medId` usado nos demais
        endpoints.
      properties:
        id:
          type: integer
          description: ID numérico da disputa (medId).
          example: 1024
        transactionId:
          type: integer
          description: ID interno da transação relacionada.
          example: 50231
        status:
          $ref: '#/components/schemas/MedContestStatus'
        content:
          type: string
          nullable: true
          description: >-
            URL do arquivo de evidência armazenado. `null` enquanto a evidência
            não foi enviada.
          example: https://s3.../comprovante.pdf
        description:
          type: string
          nullable: true
          description: Descrição/texto da defesa enviada com a evidência.
          example: Comprovante de pagamento original.
        external_med_id:
          type: string
          nullable: true
          description: ID da disputa no PSP upstream (preenchido após o envio).
          example: dispute_8f3a...
        processor_name:
          type: string
          nullable: true
          description: Nome do PSP upstream que recebeu a defesa.
          example: woovi
        retry_count:
          type: integer
          description: Quantidade de tentativas de envio.
          example: 0
        last_error:
          type: string
          nullable: true
          description: Mensagem do último erro de transporte, se houver.
        created_at:
          type: string
          format: date-time
          example: '2026-05-12T10:30:00.000Z'
        updated_at:
          type: string
          format: date-time
          example: '2026-05-12T10:30:00.000Z'
    MedContestStatus:
      type: string
      description: Status do registro de disputa.
      enum:
        - WAITING_CONTENT
        - REQUESTED
        - DEFENSE_SUBMITTED
        - DEFENSE_FAILED
        - APPROVED
        - REJECTED
        - REFUNDED
        - CANCELLED
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: api_key
    apiSecretAuth:
      type: apiKey
      in: header
      name: api_secret

````