> ## 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 Estrutura do Produto

> Serviço destinado a obter a estrutura do Produto.

## Endpoint

```
POST https://api.tiny.com.br/api2/produto.obter.estrutura.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"         |
| retorno.erros\[]                                 | list    | -       | condicional | Lista dos erros encontrados               |
| retorno.erros\[].erro                            | string  | -       | condicional | Mensagem descritiva do erro               |
| retorno.produto                                  | object  | -       | condicional | Elemento representando um produto         |
| retorno.produto.id                               | int     | -       | condicional | Número de identificação do produto        |
| retorno.produto.nome                             | string  | 120     | condicional | Nome do produto                           |
| retorno.produto.codigo                           | string  | 30      | condicional | Código do produto                         |
| retorno.produto.estrutura\[]                     | list    | -       | condicional | Lista de componentes do produto           |
| retorno.produto.estrutura\[].item                | object  | -       | condicional | Item da composição do produto             |
| retorno.produto.estrutura\[].item.id\_componente | int     | -       | condicional | ID do componente na Olist                 |
| retorno.produto.estrutura\[].item.codigo         | string  | 30      | condicional | Código do componente                      |
| retorno.produto.estrutura\[].item.nome           | string  | 120     | condicional | Nome do componente                        |
| retorno.produto.estrutura\[].item.quantidade     | decimal | -       | condicional | Quantidade do item na composição          |

> Valores decimais utilizam "." (ponto) como separador decimal, exemplo "5.25".

## Exemplo de chamada

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

## Exemplos de retorno

### Sucesso

```json theme={null}
{
  "retorno": {
    "status_processamento": "3",
    "status": "OK",
    "produto": {
      "id": "46829062",
      "codigo": "123",
      "nome": "produto teste",
      "estrutura": [
        {
          "item": {
            "id_componente": "626414",
            "codigo": "1",
            "nome": "Caderno",
            "quantidade": "1"
          }
        },
        {
          "item": {
            "id_componente": "11086140",
            "codigo": "223435780",
            "nome": "Caneta 001",
            "quantidade": "2"
          }
        }
      ]
    }
  }
}
```

### 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"
      }
    ]
  }
}
```
