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

# Criar Produto

> Cadastra um novo produto na plataforma

## Visão Geral

Este endpoint permite cadastrar um novo produto na plataforma KlivoPay. Produtos são itens que você vende e podem ser digitais ou físicos.

## Endpoint

```
POST https://api.klivopay.com.br/api/public/v1/products
```

## Parâmetros

<ParamField body="api_token" type="string" required>
  Seu token de autenticação da API KlivoPay
</ParamField>

<ParamField body="title" type="string" required>
  Título/nome do produto
</ParamField>

<ParamField body="cover" type="string" required>
  URL da imagem de capa do produto
</ParamField>

<ParamField body="amount" type="integer" required>
  Valor do produto em centavos. Exemplo: R\$ 299,00 = `29900`
</ParamField>

<ParamField body="payment_type" type="integer" required>
  Tipo de pagamento: `1` = Pagamento único
</ParamField>

<ParamField body="product_type" type="string" required>
  Tipo do produto: `digital` ou `fisico`
</ParamField>

<ParamField body="id_category" type="integer" required>
  ID da categoria do produto (use o endpoint de categorias para consultar)
</ParamField>

<ParamField body="sale_page" type="string">
  URL da página de vendas do produto
</ParamField>

<ParamField body="delivery_type" type="string">
  Tipo de entrega para produtos digitais: `email`, `download`, etc.
</ParamField>

## Exemplo de Requisição

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST 'https://api.klivopay.com.br/api/public/v1/products' \
    -H 'Content-Type: application/json' \
    -d '{
      "api_token": "seu_token_aqui",
      "title": "Curso de Marketing Digital",
      "cover": "https://exemplo.com/capa.jpg",
      "sale_page": "https://meucurso.com.br/marketing",
      "payment_type": 1,
      "product_type": "digital",
      "delivery_type": "email",
      "id_category": 5,
      "amount": 29900
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.klivopay.com.br/api/public/v1/products', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      api_token: 'seu_token_aqui',
      title: 'Curso de Marketing Digital',
      cover: 'https://exemplo.com/capa.jpg',
      sale_page: 'https://meucurso.com.br/marketing',
      payment_type: 1,
      product_type: 'digital',
      delivery_type: 'email',
      id_category: 5,
      amount: 29900
    })
  });

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  url = 'https://api.klivopay.com.br/api/public/v1/products'
  payload = {
      'api_token': 'seu_token_aqui',
      'title': 'Curso de Marketing Digital',
      'cover': 'https://exemplo.com/capa.jpg',
      'payment_type': 1,
      'product_type': 'digital',
      'id_category': 5,
      'amount': 29900
  }

  response = requests.post(url, json=payload)
  print(response.json())
  ```

  ```php PHP theme={null}
  <?php
  $url = 'https://api.klivopay.com.br/api/public/v1/products';
  $data = [
      'api_token' => 'seu_token_aqui',
      'title' => 'Curso de Marketing Digital',
      'cover' => 'https://exemplo.com/capa.jpg',
      'payment_type' => 1,
      'product_type' => 'digital',
      'id_category' => 5,
      'amount' => 29900
  ];

  $options = [
      'http' => [
          'header'  => "Content-Type: application/json\r\n",
          'method'  => 'POST',
          'content' => json_encode($data)
      ]
  ];

  $context = stream_context_create($options);
  $result = file_get_contents($url, false, $context);
  print_r(json_decode($result));
  ?>
  ```
</CodeGroup>

## Resposta de Sucesso

```json 201 Created theme={null}
{
  "success": true,
  "data": {
    "hash": "prod123abc",
    "title": "Curso de Marketing Digital",
    "cover": "https://exemplo.com/capa.jpg",
    "sale_page": "https://meucurso.com.br/marketing",
    "product_type": "digital",
    "delivery_type": "email",
    "payment_type": 1,
    "amount": 29900,
    "category": {
      "id": 5,
      "name": "Educação"
    },
    "created_at": "2025-01-20T10:15:00Z"
  }
}
```

## Códigos de Resposta

<ResponseField name="201" type="Created">
  Produto criado com sucesso
</ResponseField>

<ResponseField name="400" type="Bad Request">
  Dados inválidos na requisição
</ResponseField>

<ResponseField name="401" type="Unauthorized">
  Token de API inválido ou ausente
</ResponseField>

<ResponseField name="422" type="Unprocessable Entity">
  Erro de validação nos dados enviados
</ResponseField>

<ResponseField name="500" type="Internal Server Error">
  Erro interno do servidor
</ResponseField>
