---
title: "Create Package"
method: POST
path: "/app/package"
tags: ["Packages"]
---

# Create Package

`POST /app/package`

Cria um novo pacote.

## Request body

- object
  - `name` string, required — O nome do pacote
  - `description` string, nullable — A descrição detalhada do pacote
  - `category_id` number, required — O ID da categoria à qual o pacote pertence
  - `enabled` boolean — Define se o pacote está habilitado (visível na loja)
  - `price` number, required — Preço do pacote
  - `compare_at_price` number, nullable — Preço de comparação (preço original antes do desconto)
  - `expiry_days` number, nullable, required — Número de dias até a expiração do pacote, entre 1 e 365. Envie `null` para pacotes sem expiração.
  - `type` 'SINGLE' | 'MULTIPLE', required — Tipo do pacote: `SINGLE` (quantidade fixa de 1) ou `MULTIPLE` (quantidade variável)
  - `inventory_amount` number, nullable, required — Quantidade em estoque. Envie `null` para estoque ilimitado.
  - `per_user_limit` boolean — Define se o pacote pode ser comprado apenas uma vez por usuário
  - `min_amount` number, nullable — Quantidade mínima de compra (apenas pacotes `MULTIPLE`)
  - `image` string, nullable — URL da imagem do pacote
  - `parent_id` number, nullable — ID do pacote pai. Informe para criar uma variação de outro pacote. O pacote pai não pode ser uma variação
  - `is_variation_parent` boolean — Indica se este pacote aceita variações (pacote pai de variações)
  - `commands` CommandInput[] — Lista de comandos associados ao pacote
    - `type` 'PURCHASE' | 'EXPIRY' | 'REFUND' | 'CHARGEBACK', required — Momento de execução: `PURCHASE`, `EXPIRY`, `REFUND` ou `CHARGEBACK`
    - `command` string, required — Comando a ser executado (máximo 500 caracteres)
    - `game_server_id` number — ID do servidor de jogo. **Obrigatório para lojas do tipo `MINECRAFT` ou `HYTALE`.**
    - `offline_execute` boolean — Indica se o comando deve ser executado com o jogador offline. **Obrigatório para lojas do tipo `MINECRAFT` ou `HYTALE`.**
    - `schedule` number, nullable — Dias agendados para executar o comando, entre 1 e 365
    - `execute_once` boolean — Se `true`, o comando só será executado uma vez, ignorando quantidade de compra
  - `discord_actions` DiscordActionInput[] — Ações do Discord associadas ao pacote
    - `type` 'PURCHASE' | 'EXPIRY' | 'REFUND' | 'CHARGEBACK', required — Momento da ação: `PURCHASE`, `EXPIRY`, `REFUND` ou `CHARGEBACK`
    - `action` 'ADD_ROLE' | 'REMOVE_ROLE' | 'SEND_MESSAGE' | 'ADD_BAN' | 'REMOVE_BAN', required — Ação executada: `ADD_ROLE`, `REMOVE_ROLE`, `SEND_MESSAGE`, `ADD_BAN` ou `REMOVE_BAN`
    - `parameters` object, required — Parâmetros da ação
      - `role_id` string, nullable — ID do cargo. Obrigatório para `ADD_ROLE`.
      - `channel_id` string, nullable — ID do canal. Obrigatório para `SEND_MESSAGE`.
      - `message` string, nullable — Mensagem enviada. Obrigatória para `SEND_MESSAGE` (máximo 500 caracteres).
  - `variables` number[] — IDs das variáveis (campos de formulário) associadas ao pacote
  - `content` object — Conteúdo adicional entregue na compra (ex: instruções, links, credenciais)
    - `title` string, nullable, required — Título do conteúdo
    - `value` string, required — Valor/conteúdo (HTML ou texto simples)
    - `is_plain` boolean, required — `true` se o conteúdo é texto simples, `false` para HTML
    - `send_email` boolean, required — Indica se o conteúdo deve ser enviado por email na aprovação
  - `license_keys` string[] — Lista de chaves de licença adicionadas ao estoque (máximo 5.000 chaves, 3.000 caracteres cada). Ao informar, o `inventory_amount` é ajustado automaticamente
  - `license_key_format` object — Aplicar formatação em chaves de licença
    - `separator` string, required — Separador usado entre os campos da chave (ex: `-`)
    - `fields` string[], required — Lista de campos que compõem a chave (mínimo 1 campo)
  - `chat_delivery` object, nullable — Configurações de entrega via chat
    - `enabled` boolean, required — Habilita a entrega via chat
    - `initial_message` string, nullable — Mensagem inicial enviada no chat (máximo 3.000 caracteres)

## Response `200`

OK

- Package — Representação de um pacote.
  - `id` number
  - `store_id` number
  - `category_id` number
  - `position` number
  - `enabled` boolean
  - `name` string
  - `slug` string
  - `type` 'SINGLE' | 'MULTIPLE'
  - `price` number
  - `compare_at_price` number, nullable
  - `expiry_days` number, nullable
  - `inventory_amount` number, nullable
  - `per_user_limit` boolean
  - `description` string, nullable
  - `image` string, nullable
  - `icon` string, nullable
  - `parent_id` number, nullable
  - `is_variation_parent` boolean
  - `download_key` string, nullable
  - `min_amount` number, nullable
  - `license_key_format` object, nullable
  - `chat_delivery` object, nullable
  - `price_display` string
  - `created_at` string
  - `updated_at` string

---

[API](https://skmtc.net/centralcart/apis/centralcart-api.md) · [All operations](https://skmtc.net/centralcart/apis/centralcart-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/centralcart/centralcart-api/versions/6cbd98848375/schema)
