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

# Listar cupons

> Retorna todos os cupons que você criou com suporte a paginação.

Você pode usar essa rota para visualizar todos os seus cupons, incluindo seus status (ativos, inativos ou expirados), descontos aplicados e quantas vezes foram utilizados.

**Alternativa**: Você também pode visualizar e gerenciar seus cupons pelo [Dashboard da AbacatePay](https://app.abacatepay.com/cupons).


Retorna todos os cupons da sua loja, incluindo ativos e inativos.

<Card horizontal>
  Requer a permissão `COUPON:READ`.
</Card>

Use `limit`, `after` e `before` para paginar. Cada item segue o mesmo formato da resposta do [Criar Cupom](/pages/coupons/create), incluindo `status`, `redeemsCount` e `maxRedeems`.


## OpenAPI

````yaml GET /coupons/list
openapi: 3.1.0
info:
  title: API AbacatePay
  description: API para gerenciamento de cobranças e pagamentos usando o AbacatePay.
  version: 1.0.0
servers:
  - url: https://api.abacatepay.com/v2
    description: Único servidor para os ambientes de produção e sandbox.
security: []
paths:
  /coupons/list:
    get:
      summary: Listar cupons
      description: >
        Retorna todos os cupons que você criou com suporte a paginação.


        Você pode usar essa rota para visualizar todos os seus cupons, incluindo
        seus status (ativos, inativos ou expirados), descontos aplicados e
        quantas vezes foram utilizados.


        **Alternativa**: Você também pode visualizar e gerenciar seus cupons
        pelo [Dashboard da AbacatePay](https://app.abacatepay.com/cupons).
      parameters:
        - name: after
          in: query
          description: Cursor para buscar itens após este ponto
          required: false
          schema:
            type: string
        - name: before
          in: query
          description: Cursor para buscar itens antes deste ponto
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Quantidade de itens por página (1-100)
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 100
            example: 100
        - name: id
          in: query
          description: Filtrar por identificador único do cupom
          required: false
          schema:
            type: string
            example: DEYVIN_20
        - name: status
          in: query
          description: Filtrar por status do cupom
          required: false
          schema:
            type: string
            enum:
              - ACTIVE
              - INACTIVE
              - EXPIRED
      responses:
        '200':
          description: Lista de cupons retornada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: Lista de cupons.
                    items:
                      $ref: '#/components/schemas/CouponResponse'
                  success:
                    $ref: '#/components/schemas/Success'
                  error:
                    type: string
                    nullable: true
                    example: null
                  pagination:
                    $ref: '#/components/schemas/PaginationCursor'
        '401':
          description: Não autorizado. Falha na autenticação.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: >-
                      Mensagem de erro descrevendo o motivo da falha na
                      autenticação.
                    example: Token de autenticação inválido ou ausente.
      security:
        - bearerAuth: []
components:
  schemas:
    CouponResponse:
      type: object
      description: Os dados do seu cupom.
      required:
        - id
        - discount
        - discountKind
        - status
        - createdAt
        - updatedAt
      additionalProperties: false
      properties:
        id:
          type: string
          description: Identificador único do cupom
          example: DEYVIN_20
        notes:
          type: string
          description: Descrição sobre o cupom
          example: Cupom de desconto pro meu público
        maxRedeems:
          type: integer
          description: >-
            Quantidade de vezes em que o cupom pode ser resgatado. -1 significa
            ilimitado.
          example: -1
          default: 10
        redeemsCount:
          type: integer
          description: Quantidade de vezes que o cupom já foi resgatado.
          example: 0
        discountKind:
          type: string
          description: Tipo de desconto aplicado, porcentagem ou fixo
          enum:
            - PERCENTAGE
            - FIXED
          example: PERCENTAGE
        discount:
          type: number
          description: Valor de desconto a ser aplicado
          example: 123
        devMode:
          type: boolean
          description: Indica se o cupom foi criado em ambiente de testes.
          example: true
        status:
          type: string
          description: Status atual do cupom.
          enum:
            - ACTIVE
            - INACTIVE
            - EXPIRED
          example: ACTIVE
        createdAt:
          type: string
          format: date-time
          description: Data de criação do cupom.
          example: '2025-05-25T23:43:25.250Z'
        updatedAt:
          type: string
          format: date-time
          description: Data de atualização do cupom.
          example: '2025-05-25T23:43:25.250Z'
        metadata:
          type: object
          description: Objeto chave valor para metadados do cupom
          default: {}
    Success:
      type: boolean
      description: Se a requisição obteve sucesso ou não.
      example: true
    PaginationCursor:
      type: object
      description: Informações de paginação baseada em cursor.
      required:
        - hasMore
        - next
        - before
      additionalProperties: false
      properties:
        hasMore:
          type: boolean
          description: Indica se existe mais itens para carregar.
        next:
          type: string
          nullable: true
          description: Cursor para próxima página (usar em after).
        before:
          type: string
          nullable: true
          description: Cursor para página anterior (usar em before).
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Todas as requisições devem incluir sua chave de API no header
        Authorization usando o formato `Bearer <abacatepay-api-key>`. Sem esse
        header a requisição será rejeitada.


        Saiba mais sobre como criar e usar chaves de API na [documentação de
        autenticação](/pages/authentication).

````