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

# Criar Produto

> Cria um novo produto. A criação já gera automaticamente a oferta padrão, o checkout e o link de pagamento.

#### Escopo

```bash theme={null}
    write products
```

<Note>
  Ao criar um produto, a Cakto já gera **a oferta padrão, o checkout e o link de pagamento** (`https://pay.cakto.com.br/{id_da_oferta}`). Não existe um endpoint separado para "criar checkout" — o checkout é a vitrine do produto.

  Para o passo a passo completo, veja o guia [Criar um checkout](/comece-aqui/criar-checkout).
</Note>


## OpenAPI

````yaml POST /public_api/products/
openapi: 3.0.3
info:
  title: Cakto API
  version: 1.0.0
  description: Documentação da API pública do Cakto.
servers:
  - url: https://api.cakto.com.br
    description: Cakto API
security: []
paths:
  /public_api/products/:
    post:
      tags:
        - products
      description: >-
        Public API for managing products, inherits from ProductRetrieveAPI and
        ProductAPI,

        customizes the schema generation and authentication/permission settings.
      operationId: products_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PhisicalProductCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PhisicalProductCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PhisicalProductCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhisicalProductCreate'
          description: ''
        '401':
          description: Request não autenticado devido à ausência ou invalidez do token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedError'
              examples:
                Token ausente ou inválido:
                  $ref: '#/components/examples/UnauthenticatedErrorExample'
      security:
        - OAuth Token: []
components:
  schemas:
    PhisicalProductCreate:
      type: object
      properties:
        name:
          type: string
          title: Nome
          description: Nome do produto
          maxLength: 255
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
          title: Preço
          description: Preço do produto
        type:
          allOf:
            - $ref: '#/components/schemas/ProductType'
          title: Tipo
          description: |-
            Tipo de venda do produto, ex.: venda única, assinatura...

            * `unique` - Pagamento único
            * `subscription` - Assinatura recorrente
        description:
          type: string
          title: Descrição
          description: Descrição do produto
        category:
          type: string
          nullable: true
          title: Categoria
          description: Categoria do produto
        guarantee:
          type: integer
          title: Garantia (dias)
          description: Número de dias que o produto aceita reembolso
        salesPage:
          type: string
          format: uri
          nullable: true
          title: Página de vendas
          description: Link da página de vendas do produto
          maxLength: 2048
      required:
        - description
        - name
    UnauthenticatedError:
      type: object
      properties:
        detail:
          type: string
    ProductType:
      enum:
        - unique
        - subscription
      type: string
      description: |-
        * `unique` - Pagamento único
        * `subscription` - Assinatura recorrente
  examples:
    UnauthenticatedErrorExample:
      summary: Token ausente ou inválido
      description: Token ausente ou inválido
      value:
        detail: As credenciais de autenticação não foram fornecidas.
  securitySchemes:
    OAuth Token:
      type: http
      scheme: bearer
      in: header
      name: Authorization
      description: >-
        Token de autenticação do tipo `Bearer {access_token}`, onde
        `{access_token}` é o token obtido no fluxo de
        [autenticação](/authentication).

````