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

# Listar Disputas de MED

> Retorna a lista paginada de todas as disputas de MED da conta autenticada.

Retorna a lista paginada de todas as disputas de MED da conta autenticada. Aceita filtros por `status`, `created_at` e `updated_at`.


## OpenAPI

````yaml GET /med-contest/exposes
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:
    get:
      tags:
        - MED Contest
      summary: Listar disputas de MED
      description: >-
        Retorna a lista paginada de todas as disputas de MED da conta
        autenticada.
      operationId: listMedContests
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: string
            default: '1'
          description: Página.
        - name: pageSize
          in: query
          required: false
          schema:
            type: string
            default: '10'
          description: Itens por página.
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - WAITING_CONTENT
              - REQUESTED
              - DEFENSE_SUBMITTED
              - DEFENSE_FAILED
              - APPROVED
              - REJECTED
              - REFUNDED
              - CANCELLED
          description: Filtra por status do MED.
        - name: created_at
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Filtra por data de criação (ISO date).
        - name: updated_at
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Filtra por data de atualização (ISO date).
      responses:
        '200':
          description: Lista paginada de disputas
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MedContestListResponse'
        '404':
          description: Nenhuma disputa encontrada
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                empty:
                  summary: Sem resultados
                  value:
                    error: 404
                    message: Nenhuma disputa de MED encontrada
components:
  schemas:
    MedContestListResponse:
      type: object
      properties:
        medsContest:
          type: array
          items:
            $ref: '#/components/schemas/MedContestListItem'
        total:
          type: integer
          example: 1
        totalPages:
          type: integer
          example: 1
        currentPage:
          type: integer
          example: 1
        nextPage:
          type: integer
          nullable: true
          example: null
        prevPage:
          type: integer
          nullable: true
          example: null
        pageSize:
          type: integer
          example: 20
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: integer
          format: int32
        message:
          type: string
    MedContestListItem:
      type: object
      properties:
        id:
          type: integer
          description: ID interno da transação.
          example: 50231
        transactionId:
          type: string
          format: uuid
          description: UUID da transação.
          example: 01a51b3e-e17d-45eb-b8a2-e2392b6b1b28
        order_processor_id:
          type: string
          example: ORDER-XPTO-99
        status:
          type: string
          description: Status da transação. Em disputa permanece `MED`.
          example: MED
        external_id:
          type: string
          example: PARTNER-REF-001
        created_at:
          type: string
          format: date-time
          example: '2026-05-10T13:22:11.000Z'
        updated_at:
          type: string
          format: date-time
          example: '2026-05-11T09:14:02.000Z'
        user:
          type: object
          properties:
            name:
              type: string
              example: Parceiro X
        MedContest:
          $ref: '#/components/schemas/MedContestRecord'
    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

````