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

# Listar solicitações de reembolso

> Lista os pedidos de reembolso abertos pelos compradores, do mais recente para o mais antigo, com status, motivo e o prazo em que a plataforma aprova sozinha. Use para acompanhar a fila e decidir o que aprovar ou recusar. Inclui as vendas dos produtores de quem a empresa é afiliada aprovada.



## OpenAPI

````yaml /openapi.yaml get /v1/refund-requests
openapi: 3.0.3
info:
  title: Ephra API
  description: >-
    API pública da Ephra: cobranças (PIX, cartão e boleto), transações, webhooks
    e a API do vendedor sobre catálogo, checkout, vendas, reembolsos,
    financeiro, crescimento e plataforma.


    **Limite de requisições.** 1000 requisições por minuto por IP de origem.
    Toda resposta traz `x-ratelimit-limit`, `x-ratelimit-remaining` e
    `x-ratelimit-reset` (segundos até a janela zerar); ao estourar o limite a
    resposta é `429` com `retry-after`.


    **Erros.** Toda falha responde o mesmo envelope: `{ "success": false,
    "message": "..." }`.
  version: 1.0.0
servers:
  - url: https://api.ephra.io
    description: Servidor de produção
security: []
tags:
  - name: Catálogo
    description: Produtos, ofertas, categorias e cupons — o que a empresa vende.
  - name: Checkout
    description: Checkouts, order bumps, upsells e links de pagamento.
  - name: Vendas
    description: Vendas, clientes, assinaturas e entregas já realizadas.
  - name: Reembolsos
    description: Pedidos de reembolso, contestações e o quiz de retenção.
  - name: Financeiro
    description: Saldo, saques, antecipações, taxas e extratos da empresa.
  - name: Crescimento
    description: Afiliados, coprodução, indicações, pixels e integrações de marketing.
  - name: Plataforma
    description: Conta, membros, chaves de API, webhooks e configurações gerais.
paths:
  /v1/refund-requests:
    get:
      tags:
        - Reembolsos
      summary: Listar solicitações de reembolso
      description: >-
        Lista os pedidos de reembolso abertos pelos compradores, do mais recente
        para o mais antigo, com status, motivo e o prazo em que a plataforma
        aprova sozinha. Use para acompanhar a fila e decidir o que aprovar ou
        recusar. Inclui as vendas dos produtores de quem a empresa é afiliada
        aprovada.
      operationId: listRefundRequests
      parameters:
        - schema:
            type: integer
            minimum: 1
            default: 1
          in: query
          name: page
          required: false
          description: Página desejada, começando em 1.
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
          in: query
          name: pageSize
          required: false
          description: Quantidade de itens por página (máximo 100).
        - schema:
            type: string
            enum:
              - pending
              - approved
              - rejected
              - processed
              - canceled
          in: query
          name: status
          required: false
          description: Filtra por situação da solicitação.
        - schema:
            type: string
            enum:
              - api
              - manual_pending
              - manual_done
          in: query
          name: refundChannel
          required: false
          description: Filtra pelo canal que executou o estorno.
        - schema:
            type: string
            format: date-time
          in: query
          name: startDate
          required: false
          description: Considera apenas solicitações abertas a partir desta data.
        - schema:
            type: string
            format: date-time
          in: query
          name: endDate
          required: false
          description: Considera apenas solicitações abertas até esta data.
        - schema:
            type: string
            minLength: 1
          in: query
          name: search
          required: false
          description: >-
            Busca por nome ou e-mail do comprador, ou pelo nome de um produto da
            venda.
      responses:
        '200':
          description: Página de solicitações de reembolso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Sempre `true` em uma resposta bem-sucedida.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: Identificador da solicitação de reembolso.
                        transactionId:
                          type: string
                          description: >-
                            Identificador da venda que o comprador quer
                            estornar.
                        status:
                          type: string
                          enum:
                            - pending
                            - approved
                            - rejected
                            - processed
                            - canceled
                          description: Situação da solicitação na fila do vendedor.
                        reason:
                          type: string
                          nullable: true
                          description: >-
                            Motivo do comprador — do quiz de retenção quando
                            veio por ele.
                        reasonType:
                          type: string
                          nullable: true
                          description: Categoria do motivo, quando a origem a classificou.
                        requestedBy:
                          type: string
                          nullable: true
                          description: >-
                            Quem abriu a solicitação: o comprador, o suporte ou
                            o sistema.
                        rejectionReason:
                          type: string
                          nullable: true
                          description: Justificativa informada pelo vendedor ao recusar.
                        approvalReason:
                          type: string
                          nullable: true
                          description: Motivo informado pelo vendedor ao aprovar.
                        reviewedAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: Momento em que o vendedor decidiu.
                        autoApproveAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Quando a plataforma aprova sozinha por decurso de
                            prazo; `null` quando não há relógio correndo.
                        amount:
                          type: integer
                          description: Valor da venda em centavos (R$ 199,00 = 19900).
                        paymentMethod:
                          type: string
                          enum:
                            - pix
                            - credit_card
                            - boleto
                            - multiple_cards
                          description: Forma de pagamento da venda que será estornada.
                        refundChannel:
                          type: string
                          enum:
                            - api
                            - manual_pending
                            - manual_done
                          nullable: true
                          description: >-
                            Canal que executou o estorno: `api`,
                            `manual_pending` ou `manual_done`.
                        customer:
                          type: object
                          properties:
                            name:
                              type: string
                              nullable: true
                              description: Nome do comprador que pediu o reembolso.
                            email:
                              type: string
                              nullable: true
                              description: E-mail do comprador.
                            document:
                              type: string
                              nullable: true
                              description: CPF ou CNPJ do comprador, só dígitos.
                            phone:
                              type: string
                              nullable: true
                              description: Telefone do comprador.
                          required:
                            - name
                            - email
                            - document
                            - phone
                          additionalProperties: false
                          nullable: true
                          description: Comprador da venda.
                        items:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: Identificador do item da venda.
                              name:
                                type: string
                                description: Nome do produto no momento da compra.
                              quantity:
                                type: integer
                                description: Quantidade comprada do item.
                              unitPrice:
                                type: integer
                                description: Preço unitário em centavos (R$ 49,90 = 4990).
                            required:
                              - id
                              - name
                              - quantity
                              - unitPrice
                            additionalProperties: false
                          description: Itens da venda, incluindo order bumps.
                        createdAt:
                          type: string
                          format: date-time
                          description: Momento em que a solicitação foi aberta.
                        updatedAt:
                          type: string
                          format: date-time
                          description: Momento da última alteração da solicitação.
                      required:
                        - id
                        - transactionId
                        - status
                        - reason
                        - reasonType
                        - requestedBy
                        - rejectionReason
                        - approvalReason
                        - reviewedAt
                        - autoApproveAt
                        - amount
                        - paymentMethod
                        - refundChannel
                        - customer
                        - items
                        - createdAt
                        - updatedAt
                      additionalProperties: false
                  pagination:
                    type: object
                    properties:
                      page:
                        type: integer
                        description: Página devolvida.
                      pageSize:
                        type: integer
                        description: Itens por página pedidos.
                      total:
                        type: integer
                        description: Total de itens que satisfazem o filtro.
                      totalPages:
                        type: integer
                        description: Total de páginas disponíveis.
                    required:
                      - page
                      - pageSize
                      - total
                      - totalPages
                    additionalProperties: false
                required:
                  - success
                  - data
                  - pagination
                additionalProperties: false
                description: Página de solicitações de reembolso.
              example:
                success: true
                data:
                  - id: 48127
                    transactionId: clx9b3k2p0007qz0a7h8i9j0k
                    status: pending
                    reason: Não era o que eu esperava · Achei o conteúdo raso
                    reasonType: quiz
                    requestedBy: customer
                    rejectionReason: null
                    approvalReason: null
                    reviewedAt: null
                    autoApproveAt: '2026-09-14T10:32:00.000Z'
                    amount: 19700
                    paymentMethod: pix
                    refundChannel: null
                    customer:
                      name: Mariana Ribeiro
                      email: mariana.ribeiro@exemplo.com.br
                      document: '39053344705'
                      phone: '+5521988887777'
                    items:
                      - id: 90321
                        name: Curso de Tráfego Pago
                        quantity: 1
                        unitPrice: 14900
                      - id: 90322
                        name: Pacote de Criativos Prontos
                        quantity: 1
                        unitPrice: 4800
                    createdAt: '2026-09-12T10:32:00.000Z'
                    updatedAt: '2026-09-12T10:32:00.000Z'
                pagination:
                  page: 1
                  pageSize: 10
                  total: 1
                  totalPages: 1
        '401':
          description: Token ausente, inválido, expirado ou de empresa bloqueada.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Sempre `false` em uma resposta de erro.
                  message:
                    type: string
                    description: Mensagem legível explicando a falha.
                required:
                  - success
                  - message
                additionalProperties: false
                description: Token ausente, inválido, expirado ou de empresa bloqueada.
              example:
                success: false
                message: Token inválido ou expirado
        '422':
          description: A requisição não passou na validação de schema.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Sempre `false` em uma resposta de erro.
                  message:
                    type: string
                    description: Mensagem legível explicando a falha.
                required:
                  - success
                  - message
                additionalProperties: false
                description: A requisição não passou na validação de schema.
              example:
                success: false
                message: 'name: Nome é obrigatório'
        '429':
          description: >-
            Requisições demais: o limite é de 1000 requisições por minuto por IP
            de origem. Espere o número de segundos do header `retry-after` e
            repita com recuo exponencial.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Sempre `false` em uma resposta de erro.
                  message:
                    type: string
                    description: Mensagem legível explicando a falha.
                required:
                  - success
                  - message
                additionalProperties: false
                description: >-
                  Requisições demais: o limite é de 1000 requisições por minuto
                  por IP de origem. Espere o número de segundos do header
                  `retry-after` e repita com recuo exponencial.
              example:
                success: false
                message: Muitas requisições. Tente novamente em breve.
          headers:
            retry-after:
              $ref: '#/components/headers/retry-after'
            x-ratelimit-limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            x-ratelimit-remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            x-ratelimit-reset:
              $ref: '#/components/headers/x-ratelimit-reset'
        '500':
          description: >-
            Falha interna ao processar a requisição. Repita; se persistir, abra
            chamado com o horário e a rota.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Sempre `false` em uma resposta de erro.
                  message:
                    type: string
                    description: Mensagem legível explicando a falha.
                required:
                  - success
                  - message
                additionalProperties: false
                description: >-
                  Falha interna ao processar a requisição. Repita; se persistir,
                  abra chamado com o horário e a rota.
              example:
                success: false
                message: Erro interno do servidor
      security:
        - bearerAuth: []
components:
  headers:
    retry-after:
      description: Segundos a esperar antes de repetir a requisição.
      schema:
        type: integer
    x-ratelimit-limit:
      description: Teto de requisições na janela (1000). Presente em toda resposta.
      schema:
        type: integer
    x-ratelimit-remaining:
      description: >-
        Quantas requisições ainda cabem na janela atual. Presente em toda
        resposta.
      schema:
        type: integer
    x-ratelimit-reset:
      description: Segundos até o contador da janela zerar. Presente em toda resposta.
      schema:
        type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````