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

# Criar um cupom

> Permite que você crie um novo cupom que pode ser usado por seus clientes para aplicar descontos.

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


Cria um cupom de desconto que seus clientes aplicam no checkout.

<Card title="Obrigatórios" horizontal>
  `code` (único na sua loja), `discountKind` (`PERCENTAGE` ou `FIXED`) e `discount` (valor do desconto).
</Card>

**`PERCENTAGE`** desconta uma porcentagem do total. **`FIXED`** desconta um valor fixo em centavos.

**Exemplo — 10% de desconto ilimitado:**

```json theme={null}
{
  "code": "BEMVINDO10",
  "discountKind": "PERCENTAGE",
  "discount": 10,
  "maxRedeems": -1,
  "notes": "Cupom de boas-vindas"
}
```

**Exemplo — R\$ 20,00 fixo, válido 50 vezes:**

```json theme={null}
{
  "code": "PROMO20",
  "discountKind": "FIXED",
  "discount": 2000,
  "maxRedeems": 50
}
```

<Tip title="maxRedeems" horizontal>
  `-1` significa usos ilimitados. Qualquer valor positivo limita o número total de resgates.
</Tip>


## OpenAPI

````yaml POST /coupons/create
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/create:
    post:
      summary: Criar um cupom
      description: >
        Permite que você crie um novo cupom que pode ser usado por seus clientes
        para aplicar descontos.


        **Alternativa**: Você também pode criar e gerenciar seus cupons pelo
        [Dashboard da AbacatePay](https://app.abacatepay.com/cupons).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Coupon'
      responses:
        '200':
          description: Cupom criado com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CouponResponse'
                  error:
                    type: string
                    nullable: true
                    example: null
                  success:
                    $ref: '#/components/schemas/Success'
        '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:
    Coupon:
      type: object
      description: Os dados do seu cupom.
      required:
        - code
        - discount
        - discountKind
      additionalProperties: false
      properties:
        code:
          type: string
          description: Identificador único do cupom
          example: DEYVIN_20
        notes:
          type: string
          description: Descrição sbre o cupom
          example: Cupom de desconto pro meu público
        maxRedeems:
          type: number
          description: >-
            Quantidade de vezes em que o cupom pode ser resgatado. -1 Significa
            que esse cupom pode ser resgatado sem limites
          example: 10
          default: -1
        discountKind:
          type: string
          description: Tipo de desconto aplicado, porcentagem ou fixo
          enum:
            - PERCENTAGE
            - FIXED
        discount:
          type: number
          description: Valor de desconto a ser aplicado
        metadata:
          type: object
          description: Objeto chave valor para metadados do cupom
          default: {}
    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
  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).

````