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

> Serviço destinado a fazer consulta de estoque de Produtos.

## Endpoint

```
POST https://api.tiny.com.br/api2/produto.obter.estoque.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 | "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 o 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.unidade                             | string  | 3       | condicional | Unidade do produto                        |
| retorno.produto.saldo                               | decimal | 3       | condicional | Saldo em estoque                          |
| retorno.produto.saldoReservado                      | decimal | 3       | condicional | Saldo reservado em estoque                |
| retorno.produto.depositos\[]                        | list    | -       | condicional | Lista de depósitos                        |
| retorno.produto.depositos\[].deposito.nome          | string  | 120     | condicional | Nome do depósito                          |
| retorno.produto.depositos\[].deposito.desconsiderar | string  | 1       | condicional | Desconsidera saldo (S/N)                  |
| retorno.produto.depositos\[].deposito.saldo         | decimal | -       | condicional | Saldo no depósito                         |
| retorno.produto.depositos\[].deposito.empresa       | string  | 120     | condicional | Apelido da empresa                        |

> Valores decimais utilizam "." (ponto) como separador de decimais (exemplo: "5.25").

> Campo `saldoReservado` retornado apenas se conta possui extensão "Reserva de Estoques" habilitada.

> Campo `desconsiderar` indica se o saldo do depósito é considerado no total em estoque do produto.

> Com extensão MultiEmpresas, configure "Considerar estoque para API" nas configurações da empresa.

## Exemplo de chamada

```php theme={null}
$url = 'https://api.tiny.com.br/api2/produto.obter.estoque.php';
$token = 'coloque aqui a sua chave da api';
$id = 'xxxxx';
$formato = 'JSON';
$data = "token=$token&id=$id&formato=$formato";

enviarREST($url, $data);
```

## Exemplos de retorno

### Sucesso - Produto com estoque

```json theme={null}
{
  "retorno": {
    "status_processamento": "3",
    "status": "OK",
    "produto": {
      "id": "46829062",
      "codigo": "123",
      "nome": "produto teste",
      "unidade": "UN",
      "saldo": 10,
      "saldoReservado": 3,
      "depositos": [
        {
          "deposito": {
            "nome": "Deposito 1",
            "desconsiderar": "N",
            "saldo": 5,
            "empresa": "Tiny"
          }
        },
        {
          "deposito": {
            "nome": "Deposito 2",
            "desconsiderar": "N",
            "saldo": 5,
            "empresa": "Tiny"
          }
        },
        {
          "deposito": {
            "nome": "Deposito 3",
            "desconsiderar": "N",
            "saldo": 0,
            "empresa": "Tiny"
          }
        }
      ]
    }
  }
}
```

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