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

# Obter Produto

> Serviço destinado a obter dados do Produto.

## Endpoint

```
POST https://api.tiny.com.br/api2/produto.obter.php
```

## Parâmetros

| Parâmetro | Tipo   | Ocorrência  | Descrição                                   |
| --------- | ------ | ----------- | ------------------------------------------- |
| token     | string | obrigatório | Chave gerada para identificar sua empresa   |
| id        | int    | obrigatório | Número de identificação do produto na Olist |
| formato   | string | obrigatório | Formato do retorno (json)                   |

## Retorno

| Campo                                                        | Tipo    | Tamanho | Ocorrência  | Descrição                                                                           |
| ------------------------------------------------------------ | ------- | ------- | ----------- | ----------------------------------------------------------------------------------- |
| retorno                                                      | object  | -       | obrigatório | Elemento raiz do retorno                                                            |
| retorno.status\_processamento                                | int     | -       | obrigatório | Conforme tabela "Status de Processamento"                                           |
| retorno.status                                               | string  | -       | obrigatório | Status do retorno: "OK" ou "Erro"                                                   |
| retorno.codigo\_erro                                         | int     | -       | condicional | Conforme tabela "Códigos de erro" (apenas se status=Erro)                           |
| retorno.erros\[]                                             | list    | -       | condicional | Lista dos erros encontrados                                                         |
| retorno.erros\[].erro                                        | string  | -       | condicional | Mensagem descrevendo o erro                                                         |
| retorno.produto                                              | object  | -       | condicional | Elemento contendo dados do produto (presente se status="OK")                        |
| retorno.produto.id                                           | int     | -       | condicional | Número de identificação do produto na Olist                                         |
| retorno.produto.data\_criacao                                | string  | 19      | condicional | Data de criação (formato: dd/mm/aaaa hh:mm:ss)                                      |
| retorno.produto.nome                                         | string  | 120     | condicional | Nome do produto                                                                     |
| retorno.produto.codigo                                       | string  | 30      | condicional | Código do produto                                                                   |
| retorno.produto.unidade                                      | string  | 3       | condicional | Unidade do produto                                                                  |
| retorno.produto.preco                                        | decimal | -       | condicional | Preço de venda do produto                                                           |
| retorno.produto.preco\_promocional                           | decimal | -       | condicional | Preço promocional do produto                                                        |
| retorno.produto.ncm                                          | string  | 10      | condicional | NCM do produto                                                                      |
| retorno.produto.origem                                       | string  | 1       | condicional | Código conforme Tabela Origem                                                       |
| retorno.produto.gtin                                         | string  | 14      | condicional | GTIN/EAN do produto                                                                 |
| retorno.produto.gtin\_embalagem                              | string  | 14      | condicional | GTIN/EAN da embalagem                                                               |
| retorno.produto.localizacao                                  | string  | 50      | condicional | Localização física no estoque                                                       |
| retorno.produto.peso\_liquido                                | decimal | -       | condicional | Peso líquido em Kg                                                                  |
| retorno.produto.peso\_bruto                                  | decimal | -       | condicional | Peso bruto em Kg                                                                    |
| retorno.produto.estoque\_minimo                              | decimal | -       | condicional | Quantidade mínima do estoque                                                        |
| retorno.produto.estoque\_maximo                              | decimal | -       | condicional | Quantidade máxima do estoque                                                        |
| retorno.produto.id\_fornecedor                               | int     | -       | condicional | ID do fornecedor na Olist                                                           |
| retorno.produto.codigo\_fornecedor                           | string  | 15      | condicional | Código do fornecedor na Olist                                                       |
| retorno.produto.codigo\_pelo\_fornecedor                     | string  | 20      | condicional | Código do produto pelo fornecedor                                                   |
| retorno.produto.unidade\_por\_caixa                          | string  | 3       | condicional | Itens por embalagem                                                                 |
| retorno.produto.preco\_custo                                 | decimal | -       | condicional | Preço de custo do produto                                                           |
| retorno.produto.preco\_custo\_medio                          | decimal | -       | condicional | Preço médio de custo                                                                |
| retorno.produto.situacao                                     | string  | 1       | condicional | "A" (Ativo) ou "I" (Inativo)                                                        |
| retorno.produto.tipo                                         | string  | 1       | condicional | "P" (Produto) ou "S" (Serviço)                                                      |
| retorno.produto.classe\_ipi                                  | string  | 5       | condicional | Classe IPI para bebidas/cigarros                                                    |
| retorno.produto.valor\_ipi\_fixo                             | decimal | -       | condicional | Valor IPI fixo                                                                      |
| retorno.produto.cod\_lista\_servicos                         | string  | 5       | condicional | Código conforme Tabela Lista de Serviços                                            |
| retorno.produto.descricao\_complementar                      | text    | -       | condicional | Descrição complementar                                                              |
| retorno.produto.obs                                          | text    | -       | condicional | Observações gerais                                                                  |
| retorno.produto.garantia                                     | string  | 20      | condicional | Garantia do produto                                                                 |
| retorno.produto.cest                                         | text    | 9       | condicional | Código CEST do produto                                                              |
| retorno.produto.tipoVariacao                                 | string  | 1       | obrigatório | "N" (Normal), "P" (Pai), "V" (Variação)                                             |
| retorno.produto.variacoes\[]                                 | list    | -       | condicional | Lista de variações (quando tipoVariacao="P")                                        |
| retorno.produto.variacoes\[].variacao.id                     | int     | -       | condicional | ID da variação na Olist                                                             |
| retorno.produto.variacoes\[].variacao.codigo                 | string  | -       | condicional | Código da variação                                                                  |
| retorno.produto.variacoes\[].variacao.preco                  | decimal | -       | condicional | Preço da variação                                                                   |
| retorno.produto.variacoes\[].variacao.grade\[]               | array   | -       | condicional | Grade da variação (chave-valor)                                                     |
| retorno.produto.idProdutoPai                                 | int     | -       | condicional | ID do produto pai (quando tipoVariacao="V")                                         |
| retorno.produto.sob\_encomenda                               | string  | 1       | obrigatório | "S" (Sim) ou "N" (Não)                                                              |
| retorno.produto.dias\_preparacao                             | int     | 3       | condicional | Dias corridos para preparação                                                       |
| retorno.produto.grade\[]                                     | array   | -       | condicional | Grade do produto                                                                    |
| retorno.produto.marca                                        | string  | -       | condicional | Marca do produto                                                                    |
| retorno.produto.tipoEmbalagem                                | int     | -       | condicional | 1 (Envelope), 2 (Pacote/Caixa), 3 (Rolo/Cilindro)                                   |
| retorno.produto.alturaEmbalagem                              | decimal | -       | condicional | Altura da embalagem em cm                                                           |
| retorno.produto.larguraEmbalagem                             | decimal | -       | condicional | Largura da embalagem em cm                                                          |
| retorno.produto.comprimentoEmbalagem                         | decimal | -       | condicional | Comprimento da embalagem em cm                                                      |
| retorno.produto.diametroEmbalagem                            | decimal | -       | condicional | Diâmetro da embalagem em cm                                                         |
| retorno.produto.categoria                                    | string  | -       | condicional | Árvore de categorias (separador ">>")                                               |
| retorno.produto.anexos\[]                                    | list    | -       | condicional | Lista de imagens e anexos                                                           |
| retorno.produto.anexos\[].anexo                              | string  | -       | condicional | URL do anexo/imagem                                                                 |
| retorno.produto.imagens\_externas\[]                         | list    | -       | condicional | URLs de imagens externas                                                            |
| retorno.produto.imagens\_externas\[].imagem\_externa.url     | string  | -       | condicional | URL da imagem externa                                                               |
| retorno.produto.classe\_produto                              | string  | 1       | obrigatório | "S" (Simples), "K" (Kit), "V" (Com variações), "F" (Fabricado), "M" (Matéria-prima) |
| retorno.produto.kit\[]                                       | list    | -       | condicional | Itens do kit (quando classe\_produto="K")                                           |
| retorno.produto.kit\[].item.id\_produto                      | int     | -       | obrigatório | ID do produto no kit                                                                |
| retorno.produto.kit\[].item.quantidade                       | decimal | -       | obrigatório | Quantidade no kit                                                                   |
| retorno.produto.seo\_title                                   | string  | 120     | condicional | Título para SEO/Google                                                              |
| retorno.produto.seo\_keywords                                | string  | 255     | condicional | Keywords para SEO (separadas por vírgula)                                           |
| retorno.produto.link\_video                                  | string  | 100     | condicional | Link do vídeo                                                                       |
| retorno.produto.seo\_description                             | string  | 255     | condicional | Descrição para SEO                                                                  |
| retorno.produto.slug                                         | text    | -       | condicional | Identificação legível no link                                                       |
| retorno.produto.mapeamentos\[]                               | array   | -       | condicional | Mapeamentos com e-commerce (requer Developer-Id)                                    |
| retorno.produto.mapeamentos\[].mapeamento.idEcommerce        | int     | -       | obrigatório | ID do e-commerce                                                                    |
| retorno.produto.mapeamentos\[].mapeamento.skuMapeamento      | string  | -       | obrigatório | ID do mapeamento no e-commerce                                                      |
| retorno.produto.mapeamentos\[].mapeamento.idMapeamento       | int     | -       | obrigatório | ID do mapeamento na Olist                                                           |
| retorno.produto.mapeamentos\[].mapeamento.preco              | decimal | -       | condicional | Preço no e-commerce                                                                 |
| retorno.produto.mapeamentos\[].mapeamento.preco\_promocional | decimal | -       | condicional | Preço promocional no e-commerce                                                     |

> Valores decimais utilizam "." (ponto) como separador decimal (ex: 5.25).

> Campo `grade` é um array onde chave=tipo de variação (ex: Tamanho, Cor), valor=valor da variação (ex: GG, Branco).

> Campo `categoria` retorna árvore de categorias com separador ">>" (ex: "Categoria pai >> Categoria filha").

> Mapeamentos são retornados apenas com Developer-Id válido no header.

## Exemplo de chamada

```bash theme={null}
curl -X POST https://api.tiny.com.br/api2/produto.obter.php \
  -d "token=SEU_TOKEN&id=349112581&formato=JSON"
```

## Exemplos de retorno

### Sucesso - Produto com variações

```json theme={null}
{
  "retorno": {
    "status_processamento": "3",
    "status": "OK",
    "produto": {
      "id": "349112581",
      "codigo": "123",
      "nome": "produto teste",
      "unidade": "UN",
      "preco": 0,
      "preco_promocional": 0,
      "ncm": "",
      "origem": "0",
      "situacao": "A",
      "tipo": "P",
      "cest": "01.003.00",
      "tipoVariacao": "P",
      "variacoes": [
        {
          "variacao": {
            "id": "323221231",
            "codigo": "123 - 1",
            "preco": "36.3200000000",
            "grade": {
              "Tamanho": "GG",
              "Cor": "Branco"
            }
          }
        },
        {
          "variacao": {
            "id": "323221232",
            "codigo": "123 - 2",
            "preco": "34.3400000000",
            "grade": {
              "Tamanho": "G",
              "Cor": "Branco"
            }
          }
        }
      ],
      "sob_encomenda": "S",
      "marca": "Marca do produto",
      "tipoEmbalagem": "2",
      "alturaEmbalagem": "26.50",
      "comprimentoEmbalagem": "27.42",
      "larguraEmbalagem": "28.00",
      "categoria": "Categoria pai >> Categoria filha",
      "classe_produto": "V"
    }
  }
}
```

### Erro - Token inválido

```json theme={null}
{
  "retorno": {
    "status_processamento": 1,
    "status": "Erro",
    "codigo_erro": 2,
    "erros": [
      {
        "erro": "token invalido"
      }
    ]
  }
}
```

### Erro - Produto não localizado

```json theme={null}
{
  "retorno": {
    "status_processamento": 2,
    "status": "Erro",
    "codigo_erro": 32,
    "erros": [
      {
        "erro": "Produto não localizado"
      }
    ]
  }
}
```
