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

# List Disputes

> Lista as disputas (MED — Mecanismo Especial de Devolução) da loja, das mais recentes para as mais antigas. Enquanto uma disputa estiver aberta ou perdida (não perdoada), o valor contestado fica retido do saldo sacável (campo disputeBlocked do GET /v1/wallet). No sandbox retorna lista vazia com "sandbox": true.



## OpenAPI

````yaml /api-reference/openapi.yaml get /v1/disputes
openapi: 3.1.0
info:
  title: PurinCash API
  version: 1.0.0
servers:
  - url: https://api.purincash.com
    description: Produção
security:
  - bearerAuth: []
tags:
  - name: Cartao
    description: Pagamentos no cartao de credito.
  - name: Cobrancas
    description: Cobrancas PIX avulsas com valor livre.
  - name: Entregas
    description: Conteudo entregue automaticamente apos o pagamento.
  - name: Disputas
    description: Contestacoes (MED) e envio de evidencias.
  - name: Pagamentos
    description: Pagamentos PIX e LTC vinculados ou nao a um produto.
  - name: Saques
    description: Saques em PIX, LTC e USDT.
  - name: Produtos
    description: Produtos de cobranca criados pela API.
  - name: Sandbox
    description: Simulacao de pagamentos e saldo de teste.
  - name: Splits
    description: Cobrancas divididas entre varias contas.
  - name: Loja
    description: Produtos da loja do Discord (somente leitura).
  - name: Assinaturas
    description: PIX recorrente.
  - name: Carteira
    description: Saldo, retencoes e valores a liberar.
paths:
  /v1/disputes:
    get:
      tags:
        - Disputas
      summary: List Disputes
      description: >-
        Lista as disputas (MED — Mecanismo Especial de Devolução) da loja, das
        mais recentes para as mais antigas. Enquanto uma disputa estiver aberta
        ou perdida (não perdoada), o valor contestado fica retido do saldo
        sacável (campo disputeBlocked do GET /v1/wallet). No sandbox retorna
        lista vazia com "sandbox": true.
      operationId: listDisputes
      parameters:
        - name: limit
          in: query
          required: false
          description: Quantidade máxima de resultados (1-100).
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
        - name: offset
          in: query
          required: false
          description: Quantidade de resultados a pular (paginação).
          schema:
            type: integer
            minimum: 0
            default: 0
        - name: status
          in: query
          required: false
          description: Filtra pelo status da disputa. Valores fora da lista são ignorados.
          schema:
            type: string
            enum:
              - aberta
              - resolvida
              - perdida
      responses:
        '200':
          description: Lista de disputas.
          content:
            application/json:
              schema:
                type: object
                properties:
                  disputes:
                    type: array
                    description: Disputas da loja, das mais recentes para as mais antigas.
                    items:
                      $ref: '#/components/schemas/Dispute'
                  total:
                    type: integer
                    description: Total de disputas que atendem ao filtro.
                  limit:
                    type: integer
                    description: Limite aplicado à consulta.
                  offset:
                    type: integer
                    description: Offset aplicado à consulta.
                  sandbox:
                    type: boolean
                    description: >-
                      Presente e true apenas com chave ps_test_ (a lista é
                      sempre vazia no sandbox).
              example:
                disputes:
                  - id: 665f1a2b3c4d5e6f7a8b9c0d
                    code: MED-2024-001
                    wooviDisputeId: abc123
                    endToEndId: E12345678202603181000
                    orderCode: JUE7Y9MPSX
                    buyer: João Silva
                    buyerDiscordId: ''
                    product: Premium Plan
                    amount: 23.07
                    reason: Produto não recebido
                    status: aberta
                    evidences: []
                    resolvedAt: null
                    createdAt: '2026-03-18T10:00:00.000Z'
                total: 3
                limit: 50
                offset: 0
        '401':
          description: Chave de API ausente ou inválida.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Unauthorized
        '500':
          description: Erro interno.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Internal error
components:
  schemas:
    Dispute:
      type: object
      description: Disputa (MED) registrada contra a loja.
      properties:
        id:
          type: string
          description: ID da disputa.
        code:
          type: string
          description: Código interno da disputa (formato MED-...).
        wooviDisputeId:
          type: string
          description: ID da disputa no gateway (vazio quando não houver).
        endToEndId:
          type: string
          description: >-
            Identificador end-to-end da transação PIX contestada (vazio quando
            não houver).
        orderCode:
          type: string
          description: Código do pedido relacionado (vazio quando não houver).
        buyer:
          type: string
          description: Nome do comprador.
        buyerDiscordId:
          type: string
          description: Discord ID do comprador (vazio quando não houver).
        product:
          type: string
          description: Produto relacionado à disputa.
        amount:
          type: number
          description: >-
            Valor contestado em BRL. Enquanto a disputa estiver aberta ou
            perdida (não perdoada), esse valor é retido do saldo sacável (campo
            disputeBlocked do GET /v1/wallet).
        reason:
          type: string
          description: Motivo da disputa.
        status:
          type: string
          enum:
            - aberta
            - resolvida
            - perdida
          description: Status da disputa.
        evidences:
          type: array
          description: >-
            Evidências já enviadas. As URLs são assinadas e regeneradas a cada
            consulta (expiram após o período de validade).
          items:
            type: object
            properties:
              url:
                type: string
                description: URL assinada do documento (com expiração).
              description:
                type: string
                description: Descrição do documento.
              correlationID:
                type: string
                description: Identificador da evidência.
              uploadedAt:
                type: string
                format: date-time
                description: Data de envio da evidência.
        resolvedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: Data de resolução da disputa (null enquanto aberta).
        createdAt:
          type: string
          format: date-time
          description: Data de criação da disputa.
    Error:
      type: object
      properties:
        error:
          type: string
          description: >-
            Mensagem de erro legivel. Trate pelo codigo HTTP; o texto pode
            mudar.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Chave de API gerada no dashboard da PurinCash (ps_live_ ou ps_test_).

````