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

# Duplicar Produto

> Cria uma cópia de um produto existente

#### Escopo

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

## Notas

<Info>
  * O produto duplicado recebe um novo Id único
  * As relações são duplicadas com novos IDs: ofertas, checkouts, links, order bumps, entregas de conteúdo, métodos de pagamento e pixels de rastreamento
  * Pixels vinculados a afiliados **não** são copiados
  * O nome recebe o sufixo ` - Cópia` (ex.: `Curso de Fotografia - Cópia`)
  * O produto duplicado **herda o `status` do produto original** — se o original estiver inativo, a cópia também estará
  * As métricas de vendas da cópia começam zeradas
  * Você pode modificar qualquer aspecto do produto duplicado após a criação
</Info>

<Tip>
  **Fluxo recomendado:**

  1. Duplique o produto usando este endpoint
  2. Imediatamente atualize o nome e outros detalhes específicos
  3. Verifique e ajuste ofertas, preços e configurações conforme necessário
  4. Teste o checkout antes de promover o produto
</Tip>


## OpenAPI

````yaml POST /public_api/products/{id}/duplicate/
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/{id}/duplicate/:
    post:
      tags:
        - products
      description: >-
        Public API for managing products, inherits from ProductRetrieveAPI and
        ProductAPI,

        customizes the schema generation and authentication/permission settings.
      operationId: products_duplicate_create
      parameters:
        - in: path
          name: id
          schema:
            type: string
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
              examples:
                Successo:
                  value:
                    id: cd287b31-d4b7-4e94-858a-66e05ce2f4a2
                    name: Product Name Example
                    image: https://example-image-url.com/image.png
                    description: Description example
                    price: 15
                    type: unique
                    contentDeliveries:
                      - cakto
                      - telegram
                      - discord
                    emailAccessLink: null
                    salesPage: https://example-sales-page.com.br/product-page
                    status: active
                    paymentMethods:
                      - applepay
                      - boleto
                      - credit_card
                      - googlepay
                      - pix
                    category:
                      id: 0673d296-1802-45e0-bc93-112f7514dddb
                      name: Animais e Plantas
          description: Corpo da resposta status 200
        '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:
    Product:
      type: object
      properties:
        id:
          type: string
          description: Identificador único do produto
          maxLength: 255
        name:
          type: string
          title: Nome
          description: Nome do produto
          maxLength: 255
        image:
          type: string
          format: uri
          readOnly: true
          nullable: true
          title: Imagem
          description: Imagem do produto
        description:
          type: string
          title: Descrição
          description: Descrição do produto
        price:
          type: number
          format: double
          description: Preço do produto
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyEnum'
          title: Moeda
          description: |-
            Moeda do produto

            * `BRL` - Real
            * `EUR` - Euro
            * `MXN` - Peso Mexicano
            * `PEN` - Sol Peruano
            * `USD` - Dólar
            * `CLP` - Peso Chileno
            * `COP` - Peso Colombiano
            * `ARS` - Peso Argentino
            * `BOB` - Boliviano
            * `UYU` - Peso Uruguayo
        type:
          allOf:
            - $ref: '#/components/schemas/ProductType'
          title: Tipo
          description: |-
            Tipo de venda do produto, ex.: venda única, assinatura...

            * `unique` - Pagamento único
            * `subscription` - Assinatura recorrente
        contentDeliveries:
          type: array
          items:
            type: string
          readOnly: true
          description: Id dos métodos de entrega de conteúdo disponíveis
        emailAccessLink:
          type: string
          format: uri
          nullable: true
          title: Link de acesso
          description: Link a ser enviado por e-mail para acesso ao conteúdo após a compra
          maxLength: 2048
        salesPage:
          type: string
          format: uri
          nullable: true
          title: Página de vendas
          description: Link da página de vendas do produto
          maxLength: 2048
        status:
          allOf:
            - $ref: '#/components/schemas/ProductStatus'
          description: |-
            Status atual do produto

            * `active` - Ativo
            * `waiting_config` - Aguardando Configuração
            * `blocked` - Bloqueado
            * `deleted` - Deletado
        paymentMethods:
          type: array
          items:
            type: string
          readOnly: true
          description: Id dos métodos de pagamento disponíveis
        category:
          allOf:
            - $ref: '#/components/schemas/Category'
          readOnly: true
          description: Categoria do produto
      required:
        - category
        - contentDeliveries
        - description
        - image
        - name
        - paymentMethods
        - price
    UnauthenticatedError:
      type: object
      properties:
        detail:
          type: string
    CurrencyEnum:
      enum:
        - BRL
        - EUR
        - MXN
        - PEN
        - USD
        - CLP
        - COP
        - ARS
        - BOB
        - UYU
      type: string
      description: |-
        * `BRL` - Real
        * `EUR` - Euro
        * `MXN` - Peso Mexicano
        * `PEN` - Sol Peruano
        * `USD` - Dólar
        * `CLP` - Peso Chileno
        * `COP` - Peso Colombiano
        * `ARS` - Peso Argentino
        * `BOB` - Boliviano
        * `UYU` - Peso Uruguayo
    ProductType:
      enum:
        - unique
        - subscription
      type: string
      description: |-
        * `unique` - Pagamento único
        * `subscription` - Assinatura recorrente
    ProductStatus:
      enum:
        - active
        - waiting_config
        - blocked
        - deleted
      type: string
      description: |-
        * `active` - Ativo
        * `waiting_config` - Aguardando Configuração
        * `blocked` - Bloqueado
        * `deleted` - Deletado
    Category:
      type: object
      properties:
        id:
          type: string
          maxLength: 255
        name:
          type: string
          maxLength: 255
      required:
        - name
  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).

````