# Plataforma Milk's

Esta documentação descreve em detalhes a API de integração de dados da Plataforma Milk's. Com esta documentação, sua empresa pode implementar a integração de dados do seu ERP com nossa plataforma.

A Plataforma Milk's é uma solução completa de informatização e monitoramento do processo operacional de gestão da captação e da qualidade do leite para laticínios e cooperativas.&#x20;

Para acessar a API de integração de dados com o módulo de captação de leite, Milk's Rota, acesse o link abaixo:

{% content-ref url="/pages/-LjsmpV6UoZqHEgHwRxl" %}
[Milk's Rota](/milks-rota)
{% endcontent-ref %}

Para acessar a API de integração de dados com o módulo de qualidade, Milk's Camp, acesse o link abaixo:

{% content-ref url="/pages/-LjsmrhfNHohu-hWx19y" %}
[Milk's Camp](/milks-camp)
{% endcontent-ref %}


# Milk's Rota

O Milk's Rota é o módulo de captação da plataforma Milk's.

A API do módulo do Milk's Rota permite manter integrados os registros auxiliares do processo operacional de captação de leite do laticínio.

{% hint style="info" %}
**IMPORTANTE**: A API controla as operações de **CRUD** baseando-se na propriedade "***codigo***" dos registros enviados no arquivo "**JSON**" da requisição, inclusive para fazer o relacionamento entre as tabelas.&#x20;

Se existir uma dependência entre os registros, a tabela que ***contém*** o registro do relacionamento deverá ser "***ENVIADA ANTES***" , da tabela que **precisa** do registro relacionado, caso contrário, a linha de dados **NÃO** será importada.  \
**Exemplo:**  `Na importação dos registros de fazendas será preciso enviar o código do produtor, proprietário da fazenda. Sendo assim, o cadastro de produtores deve ser enviado antes do cadastro de fazendas.`
{% endhint %}

{% content-ref url="/pages/-MErYx3Ml\_ZfKvNIkYoq" %}
[Agente de coleta](/milks-rota/agente-de-coleta)
{% endcontent-ref %}

{% content-ref url="/pages/-MRZl774KzgigGmMMxtu" %}
[Análise de qualidade](/milks-rota/analise-de-qualidade)
{% endcontent-ref %}

{% content-ref url="/pages/-MCrtWizQPbdF2kRE8Vb" %}
[Fazenda](/milks-rota/fazenda)
{% endcontent-ref %}

{% content-ref url="/pages/-MDfC3wtIAyyLMEu8THl" %}
[Grupo de rota](/milks-rota/grupo-de-rota)
{% endcontent-ref %}

{% content-ref url="/pages/-MEs2r3pPgi5m-WrSqVV" %}
[Linha](/milks-rota/linha)
{% endcontent-ref %}

{% content-ref url="/pages/-MEsFHDM4S57tk5QQJbv" %}
[Motivo de cancelamento](/milks-rota/motivo-de-cancelamento)
{% endcontent-ref %}

{% content-ref url="/pages/-MEwvGIFp7T9\_BzujwU0" %}
[Ponto de coleta](/milks-rota/ponto-de-coleta)
{% endcontent-ref %}

{% content-ref url="/pages/-MCXSL67y8lV9WAVa4uz" %}
[Produtor](/milks-rota/produtor)
{% endcontent-ref %}

{% content-ref url="/pages/-MEth0I1ZyctoXnj4VZO" %}
[Programação de coleta](/milks-rota/programacao-de-coleta)
{% endcontent-ref %}

{% content-ref url="/pages/-MErxPybV6k3bdFegT7q" %}
[Rota](/milks-rota/rota-1)
{% endcontent-ref %}

{% content-ref url="/pages/-MEeAYc4Ui2iS-iFg8EJ" %}
[Tanque](/milks-rota/tanque)
{% endcontent-ref %}

{% content-ref url="/pages/-MRR01ASlUfQnwLJwktK" %}
[Tanque coletivo](/milks-rota/tanque-coletivo)
{% endcontent-ref %}

{% content-ref url="/pages/-MEs8MvNOj0MKJjoo5Yu" %}
[Técnico](/milks-rota/tecnico)
{% endcontent-ref %}

{% content-ref url="/pages/-MErnBYXnO8HCXxHliS\_" %}
[Veículo](/milks-rota/veiculos)
{% endcontent-ref %}

{% content-ref url="/pages/-MF7iTTud-MVxY7zCi\_A" %}
[Viagens](/milks-rota/viagens)
{% endcontent-ref %}

{% content-ref url="/pages/-MI5YpUzAnERu7vGnjRN" %}
[Métodos auxiliares](/milks-rota/metodos-auxiliares)
{% endcontent-ref %}


# Análise de qualidade

São os resultados dos indicadores de qualidade do leite. Valores obtidos dos exames das amostras enviadas á RBQL e importados para a plataforma Milk's.

Para enviar registros de resultados de análise do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-MRZnA-OuEN2dxbMkOkl" %}
[Enviar resultados](/milks-rota/analise-de-qualidade/enviar-resultados)
{% endcontent-ref %}


# Enviar resultados

Envia os registros com os indicadores dos resultados de análise de qualidade

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeAnalise>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de resultados
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de resultados de análise obtidos do laboratório externo. Cada registro  pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do agente de coleta

| Campo           | Descrição                                                   | Tipo           | Obrigatório |
| --------------- | ----------------------------------------------------------- | -------------- | ----------- |
| **conta**       | Código de registro da conta da empresa na plataforma Milk's | Texto          | SIM         |
| **produtor**    | Código do produtor a quem pertence o resultado              | Texto          | SIM         |
| tanque          | Código do tanque de onde foi obtida a amostra para análise  | Texto          | NÃO         |
| fazenda         | Código da fazenda onde se produz o leite da amostra         | Texto          | NÃO         |
| laboratorio     | Nome do laboratório onde foram feitas as análises           | Texto          | NÃO         |
| codigo\_os      | Código da ordem de serviço enviada ao laboratório           | Texto          | NAO         |
| codigo\_analise | Código de identificação da análise                          | Texto          | NAO         |
| teor\_gordura   | indicador do teor de gordura obtido no exame                | Decimal (10,2) | NÃO         |
| **ccs**         | Indicador de CCS obtido na análise                          | Decimal (10,2) | SIM         |
| **ufc**         | Indicador de UFC (CPP) obtido na análise                    | Decimal (10,2) | SIM         |
| proteinas       | Indicador de proteínas obtido na análise                    | Decimal (10,2) | NÃO         |
| esd             | Indicador de ESD obtido na análise                          | Decimal (10,2) | NÃO         |
| lactose         | Indicador de lactose obtido na análise                      | Decimal (10,2) | NÃO         |
| solido          | Indicador de sólidos totais obtido na análise               | Decimal (10,2) | NÃO         |
| acidez          | Indicador de acidez obtido na análise                       | Decimal (10,2) | NÃO         |
| densidade       | Indicador de densidade obtido na análise                    | Decimal (10,2) | NÃO         |
| criscopia       | Indicador de crioscopia obtido na análise                   | Decimal (10,2) | NÃO         |
| **dt\_coleta**  | Data da coleta da amostra                                   | DateTime       | SIM         |
| **dt\_analise** | Data de realização da análise                               | DateTime       | SIM         |

{% hint style="info" %}
**Importação direta dos laboratórios do RBQL**: Alguns laboratórios da rede possuem uma API de integração que permitem a importação direta dos resultados de ordens de serviço enviadas. A Plataforma Milk's tem, até o momento, a rotina já integrada para a **Clínica do Leite (ESALQ)** e **CPA (Goiás).** Pode-se utilizar a interface do painel de monitoramento da plataforma para obter e importar os resultados sem a necessidade de se escrever uma rotina de alimentação vinda do ERP.
{% endhint %}

## Exemplo de requisição

```javascript
{
    "conta_id": 9999,
    "token": "s0637r",
    "doc": "99.999.999/9999-90",
    "data": [
        {
            "produtor": "1152",
            "tanque": "",
            "fazenda": "",
            "dt_coleta": "2021-01-03 10:00:00",
            "dt_analise": "2021-01-10 14:00:00",
            "laboratorio": "EMBRAPA GADO DE LEITE",
            "codigo_os": "OS_9001/2021",
            "codigo_analise": "123456",
            "teor_gordura": "12.6",
            "ccs": "300",
            "ufc": "400",
            "proteinas": "3.9",
            "esd": "12.9",
            "lactose": "",
            "solido": "",
            "acidez": "",            
            "densidade": "",
            "crioscopia": "0.540"            
        }
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
    "success": true,
    "message": "OK",
    "data": null,
    "monitor.time": 1.1079120636
}
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "produtor": "1152", // Código do produtor não importado
            "error_message": "Valor de CCS inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Agente de coleta

Agentes de coleta (motoristas). São as pessoas que conduzem os veículos de coleta nas viagens diárias ás fazendas produtoras.

Para enviar registros de agentes de coleta do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-MErZaP7vCyCGQRnQ7Ff" %}
[Enviar agentes de coleta](/milks-rota/agente-de-coleta/enviar-agentes-de-coleta)
{% endcontent-ref %}

Para baixar registros de agentes de coleta da Plataforma Milk's para o ERP, utilize o endpoint abaixo:

{% content-ref url="/pages/-MEriiUs6RvwpffWIlSZ" %}
[Baixar agentes de coleta](/milks-rota/agente-de-coleta/baixar-agentes-de-coleta)
{% endcontent-ref %}


# Enviar agentes de coleta

Envia os registros de agentes de coleta (Motoristas)  cadastradas no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeColetor>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de agentes de coleta (motoristas)
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de agentes de coleta. Cada registro  pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do agente de coleta

| Campo           | Descrição                                                                                                                                                       | Tipo  | Obrigatório |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | ----------- |
| **codigo**      | Código do agente                                                                                                                                                | Texto | SIM         |
| **nome**        | Nome do agente de coleta                                                                                                                                        | Texto | SIM         |
| rg              | Documento de identidade                                                                                                                                         | Texto | NÃO         |
| cpf             | Registro de pessoa física                                                                                                                                       | Texto | NÃO         |
| cnh             | Número da carteira de habilitação                                                                                                                               | Texto | NÃO         |
| categoria\_cnh  | Categoria da carteira de habilitação                                                                                                                            | Texto | NÃO         |
| vencimento\_cnh | Data de vencimento da habilitação                                                                                                                               | Data  | NÃO         |
| telefone        | Telefone de contato                                                                                                                                             | Texto | NÃO         |
| email           | E-mail de contato do agente                                                                                                                                     | Texto | NÃO         |
| transportadora  | Código da transportadora                                                                                                                                        | Texto | NÃO         |
| **deleted**     | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Texto | SIM         |

{% hint style="info" %}
**codigo**: O campo código deverá ser preenchido com o mesmo código  já cadastrado no ERP, esta propriedade é utilizada para localizar os registros na base de dados da Plataforma Milk's e direcionar as operações CRUD.

A propriedade ***"deleted"*** é utilizada para comandar o processo de atualização, inclusão ou exclusão lógica do registro. Caso seu valor seja **"0" (zero)** e o registro não tenha sido encontrado, ele será criado. Se for encontrado, o valor será atualizado e se o valor for "**1" (um)**, o conteúdo será excluído logicamente da base de dados.&#x20;
{% endhint %}

## Exemplo de requisição

```javascript
{
    "conta_id": 9999,
    "token": "s0637r",
    "doc": "99.999.999/9999-90",
    "data": [
        {
            "codigo": "C-1010",
            "nome": "Coletor_C1010",
            "deleted": "0"
        },
        {
            "codigo": "C-1020",
            "nome": "Coletor_C1020",
            "deleted": "0"
        },
        {
            "codigo": "C-1030",
            "nome": "Coletor_C1030",
            "deleted": "0"
        },
        {
            "codigo": "C-1040",
            "nome": "",
            "deleted": "0"
        },
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "C-1040", // Código do agente não importado
            "error_message": "Nome inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar agentes de coleta

Baixa os registros de agentes de coleta cadastrados na Plataforma Milk's para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readColetor>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "1750",
            "conta_id": "9999",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": "2018-02-07 09:53:38",
            "nome": "EDER THIAGO DE MENDONCA",
            "rg": "",
            "cpf": "",
            "cnh": "",
            "dt_create": "2018-02-07 09:53:37",
            "dt_delete": null,
            "deleted": "0",
            "codigo": "001",
            "avatar": null,
            "categoria_cnh": "",
            "dt_vencimento_cnh": "0000-00-00",
            "telefone": null,
            "email": null,
            "dt_criacao": null,
            "dt_exclusao": null,
            "dt_atualizacao": null,
            "transportadora_id": null
        }
 ],
    "monitor.time": 0.915009975433
}        
```

{% hint style="success" %}
Os registros de fazendas cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Entrada Spot

Registro de entrada de leite por compra direta de empresas fornecedoras

Para listar os registros de entrada spot no período, acesse o endepoint abaixo:

{% content-ref url="/pages/LNVuvafyoWUrvLCAghzG" %}
[Entrada de Leite Spot](/milks-rota/entrada-spot/entrada-de-leite-spot)
{% endcontent-ref %}


# Entrada de Leite Spot

Listar os registros de entrada spot no período

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readEntradaSpot>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",    
    "dt_inicio": "2023-09-20 00:00:00",
    "dt_fim": "2023-09-20 23:59:59"    
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.

**dt\_inicio:** Data e Hora **inicial** do período para consulta, deve ser informado no formato americano (ano-mes-dia hora:minuto:segundo);

**dt\_fim:** Data e Hora **final** do período para consulta, deve ser informado no formato americano (ano-mes-dia hora:minuto:segundo);
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "6",
            "fornecedor_id": "3",
            "ticket": "000000242",
            "dt_entrada": "2023-09-20 16:50:00",
            "volume": "10779",
            "observacao": "MOTORISTA: NONATO\nCAMINHÃO: HIJ",
            "conta_id": "DDDDD",
            "dt_criacao": null,
            "dt_atualizacao": null,
            "dt_exclusao": null,
            "tipo_leite": "I",
            "nota_fiscal": null,
            "empresa_id": "3",
            "codigoEmpresa": "807100",
            "nomeEmpresa": "XX GOMES FORNECEDOR DE LEITE LTDA"

        },
        
 ],
    "monitor.time": 0.915009975433
}        
```

{% hint style="success" %}
Os registros de entrada spot cadastrados na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Fazenda

Fazendas são as propriedades rurais onde o leite é produzido e coletado pelo laticínio.

Para enviar registros de fazendas do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-MCrv2q13s4f6LchCloF" %}
[Enviar fazendas](/milks-rota/fazenda/enviar-fazendas)
{% endcontent-ref %}

Para baixar registros de fazendas da Plataforma Milk's para o ERP, utilize o endpoint abaixo:

{% content-ref url="/pages/-MCrvBfMat5Anm\_OTpVK" %}
[Baixar fazendas](/milks-rota/fazenda/baixar-fazendas)
{% endcontent-ref %}


# Enviar fazendas

Envia os registros de fazendas cadastradas no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeFazenda>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de produtores
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de fazendas. Cada registro de fazenda pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades da fazenda

| **Campo**       | **Descrição**                                                                                                                                                   | **Tipo** | **Obrigatório** |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- |
| **codigo**      | Código da fazenda                                                                                                                                               | Texto    | SIM             |
| **produtor \*** | Código do produtor proprietário da fazenda                                                                                                                      | Texto    | SIM             |
| **nome**        | Nome da fazenda                                                                                                                                                 | Texto    | SIM             |
| **deleted**     | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número   | SIM             |
| logradouro      | Logradouro do endereço da fazenda                                                                                                                               | Texto    | Não             |
| numero          | Número do endereço da fazenda                                                                                                                                   | Texto    | Não             |
| bairro          | Bairro do endereço da fazenda                                                                                                                                   | Texto    | Não             |
| municipio       | Cidade do endereço da fazenda                                                                                                                                   | Texto    | Não             |
| uf              | Unidade federativa do endereço da fazenda                                                                                                                       | Texto    | Não             |
| cep             | CEP do endereço da fazenda                                                                                                                                      | Texto    | Não             |
| latitude        | Latitude da coordenada geográfica da fazenda                                                                                                                    | Número   | Não             |
| longitude       | Longitude da coordenada geográfica da fazenda                                                                                                                   | Número   | Não             |
| filial          | Código da filial do laticínio vinculada à propriedade                                                                                                           | Texto    | Não             |

{% hint style="info" %}
**produtor**: O campo produtor deverá ser preenchido com o mesmo código do produtor proprietário da fazenda já cadastrado na Plataforma Milk's. Caso seja informado um código de produtor não cadastrado, o registro da fazenda não será importado.
{% endhint %}

### Exemplo de requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.99.999/9999-99",
    "data": [
        {
            "codigo": "10128/01",
            "nome": "SITIO FLOR DE MINAS",
            "logradouro": "SITIO FLOR DE MINAS",
            "numero": "SN",
            "bairro": "ZONA RURAL",
            "municipio": "MANTENA",
            "uf": "MG",
            "cep": "35296-000",
            "latitude": null,
            "longitude": null,
            "produtor": "10128",
            "filial": "2",
            "deleted": 1 // desativa o registro
        },
        {
            "codigo": "10129/01",
            "nome": "SITIO ESTRELA DA SILVA",
            "logradouro": "SITIO ESTRELA DA SILVA",
            "numero": "SN",
            "bairro": "ZONA RURAL",
            "municipio": "MANTENA",
            "uf": "MG",
            "cep": "35296-000",
            "latitude": -43.12312,
            "longitude": -19.1381231,
            "produtor": "10129",
            "filial": "2",
            "deleted": 0 // ativa o registro
        }
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "001", // Código da fazenda não importada
            "error_message": "Produtor não encontrado", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar fazendas

Baixa os registros de fazendas cadastradas na Plataforma Milk's para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readFazenda>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "119030",
            "conta_id": "591973",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": "2019-08-05 16:38:31",
            "nome": "IZALTINO CORREIA NETO",
            "codigo": "356",
            "numero": "0",
            "logradouro": "CORREGO DO BARREIRAO",
            "bairro": "ZONA RURAL",
            "cidade": "TARUMIRIM",
            "doc": "00162769652",
            "uf": null,
            "cep": null,
            "dt_create": "2019-06-19 10:29:26",
            "dt_delete": null,
            "deleted": "0",
            "email": null,
            "documento": null,
            "ie": null,
            "tipo": "F",
            "valor_litro": null,
            "controle": "0",
            "telefone": null,
            "pendente": "0"
        },
        {
            "id": "119031",
            "conta_id": "591973",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": "2020-03-18 09:46:24",
            "nome": "ROGERIO ROCHA DE OLIVEIRA",
            "codigo": "784",
            "numero": "0",
            "logradouro": "FAZENDA RECANTO BOM DESCANSO",
            "bairro": "ZONA RURAL",
            "cidade": "AGUAS FORMOSAS",
            "doc": "00338367608",
            "uf": null,
            "cep": null,
            "dt_create": "2019-06-19 10:29:26",
            "dt_delete": null,
            "deleted": "0",
            "email": null,
            "documento": null,
            "ie": null,
            "tipo": "F",
            "valor_litro": null,
            "controle": "0",
            "telefone": null,
            "pendente": "0"
        }
  ],
    "monitor.time": 0.21102690696716
}       
```

{% hint style="success" %}
Os registros de fazendas cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Grupo de rota

Grupos de rota são a forma de agrupar rotas que serão gerenciadas pela mesma equipe de captação. Dessa forma é possível definir regras de notificações de alertas nas rotas para o grupo de rotas.

Para enviar registros de grupos de rota do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-MDfD3e3t\_yIn6DIGDVt" %}
[Enviar grupos de rota](/milks-rota/grupo-de-rota/enviar-grupos-de-rota)
{% endcontent-ref %}

Para baixar registros de grupos de rota da Plataforma Milk's para o ERP, utilize o endpoint abaixo:

{% content-ref url="/pages/-MDfDBZgxT8KNi7URMTE" %}
[Baixar grupos de rota](/milks-rota/grupo-de-rota/baixar-grupos-de-rota)
{% endcontent-ref %}


# Enviar grupos de rota

Envia os registros de grupos de rota cadastrados no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeGrupoRota>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "data": [
        // lista de registros de produtores
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**data**: Lista que deve conter um ou mais registros de grupos de rota. Cada registro de grupo de rota pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do grupo de rota

| **Campo**   | **Descrição**                                                                                                                                                   | **Tipo** | **Obrigatório** |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- |
| **codigo**  | Código do grupo de rota                                                                                                                                         | Texto    | SIM             |
| **nome**    | Nome do grupo de rota                                                                                                                                           | Texto    | SIM             |
| **deleted** | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número   | SIM             |

### Exemplo de requisição

```javascript
{
    "conta_id": XXXX, 
    "token": "0000-0000-0000-0000", 
    "data": [
        {
            "codigo": "001",
            "nome": "Grupo 1",
            "deleted": 0 // ativa o registro
        },
        {
            "codigo": "002",
            "nome": "Grupo 2",
            "deleted": 1 // desativa o registro         
        }        
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "001", // Código do grupo de rota não importado
            "error_message": "Nome não informado", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar grupos de rota

Baixa os registros de grupos de rota cadastrados na Plataforma Milk's para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readGrupoRota>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDD",
    "token": "xxxx-xxxx-xxxx-xxxx"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "293620",
            "conta_id": "XXXXX",
            "nome": "Grupo 1",
            "codigo": "001",
            "dt_exclusao": null,
            "deleted": "0"
        },
        {
            "id": "293622",
            "conta_id": "XXXXX",
            "nome": "Grupo 2",
            "codigo": "002",
            "dt_exclusao": null,
            "deleted": "0"
        }
    ],
    "monitor.time": 0.10523581504822
}
```

{% hint style="success" %}
Os registros de grupos de rota cadastrados na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Rota

Rotas são a forma de agrupar as linhas de captação de leite por região, ou transportadores.

Para enviar registros de rotas do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-MDfJG9rROcrdb47It4k" %}
[Enviar rotas](/milks-rota/rota/enviar-rotas)
{% endcontent-ref %}

Para baixar registros de rotas da Plataforma Milk's para o ERP, utilize o endpoint abaixo:

{% content-ref url="/pages/-MDfJO2STEVQm0sGgAEA" %}
[Baixar rotas](/milks-rota/rota/baixar-rotas)
{% endcontent-ref %}


# Enviar rotas

Envia os registros de rotas cadastrados no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeRota>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "data": [
        // lista de registros de produtores
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**data**: Lista que deve conter um ou mais registros de  rotas. Cada registro de rota pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do grupo de rota

| **Campo**      | **Descrição**                                                                                                                                                   | **Tipo** | **Obrigatório** |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- |
| **codigo**     | Código da rota                                                                                                                                                  | Texto    | SIM             |
| **nome**       | Nome da rota                                                                                                                                                    | Texto    | SIM             |
| **deleted**    | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número   | SIM             |
| tipo\_descarga | Tipo de descarga padrão da rota. TP = Descarga pelo técnico pelo painel web.                                                                                    | Texto    | Não             |
| gruporota      | Código do grupo de rota                                                                                                                                         | Texto    | Não             |

{% hint style="info" %}
**grupo\_rota**: O campo grupo\_rota deverá ser preenchido com o mesmo código do grupo de rota  já cadastrado na Plataforma Milk's. Caso seja informado um código de grupo de rota não cadastrado, a rota será cadastrada sem um vínculo com grupo de rota.
{% endhint %}

### Exemplo de requisição

```javascript
{
    "conta_id": XXXX, 
    "token": "0000-0000-0000-0000", 
    "data": [
        {
            "nome": "Rota MURIAE",
            "codigo": "105",
            "tipo_descarga": "TP",
            "grupo_rota": null,
            "deleted": "0"
        },    
        {
            "nome": "Rota MURIAE II ",
            "codigo": "106",
            "tipo_descarga": "TP",
            "grupo_rota": "100",
            "deleted": "1"
        }
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "001", // Código do grupo de rota não importado
            "error_message": "Nome não informado", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}

###


# Baixar rotas

Baixa os registros de rotas cadastrados na Plataforma Milk's para o ERP.


# Laboratório e Análise

Parametrização e registros de resultados de análise laboratorial realizadas nos compartimentos do veículos

Para enviare recuperar  registros de análises do ERP para a Plataforma Milk's, utilize um dos endpoints abaixo:

{% content-ref url="/pages/-MfiAIHgo\_jTdAvggIKm" %}
[Enviar indicadores](/milks-rota/laboratorio-e-analise/enviar-indicadores)
{% endcontent-ref %}

{% content-ref url="/pages/-MfiNZ5qQ5XhxAqy3sz2" %}
[Baixar análise](/milks-rota/laboratorio-e-analise/baixar-analise)
{% endcontent-ref %}

{% content-ref url="/pages/-MfiRwdkyJKSDiFzCaUl" %}
[Baixar resultados](/milks-rota/laboratorio-e-analise/baixar-resultados)
{% endcontent-ref %}


# Enviar indicadores

Envia os registros de indicadores de qualidade para serem utilizados nos resultados de análises realizadas no laboratório interno do laticínio

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeParametroAnalise>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "doc": "99.999.999/0009-99,
    "token": "XXXX-XXXX-XXXX-XXXX",
    "data": [
        // lista de registros de indicadores
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**data**: Lista que deve conter um ou mais registros de  indicadores de qualidade. Cada registro de indicador de qualidade pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades dos indicadores de qualidade

| **Campo**                       | **Descrição**                                                                                                                                                   | **Tipo** | **Obrigatório**                       |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------- |
| **codigo**                      | Código do indicador                                                                                                                                             | Texto    | SIM                                   |
| **descricao**                   | Nome do indicador                                                                                                                                               | Texto    | SIM                                   |
| **deleted**                     | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número   | SIM                                   |
| **tipo**                        | <p>Tipo de indicador de qualidade.</p><p> <strong>N</strong> = numéro;</p><p> <strong>L</strong> = Lista de opções. </p>                                        | Texto    | SIM                                   |
| valor\_minimo                   | Informar o valor mínimo aceito para o indicador                                                                                                                 | Texto    | Somente se o **tipo** for **"N"**     |
| valor\_maximo                   | Informar o valor máximo aceito para o indicador                                                                                                                 | Texto    | Somente quando o **tipo** for **"N"** |
| opcao\_referencia               | Indica que opção da lista é utilizada como referência para o resultado da análise                                                                               | Texto    | Somente quando o **tipo** for **"L"** |
| <ul><li>opcoes\_lista</li></ul> | lista de opções possíveis para o resultado do exame. **Deve vir com os valores separados por (;) ponto e vírgula**                                              | Texto    | Somente quando o **tipo** for **"L"** |
| ordem                           | ordem para apresentação no resultado                                                                                                                            | Texto    | NÃO                                   |

### Exemplo de requisição

```javascript
{
    "conta_id": 40001,
    "token": "s0909r",
    "doc": "99.999.999/0001-99",
    "data": [
        {
            "codigo": "105",
            "descricao": "Acidez ºD",           
            "tipo": "N", // Numérico
            "valor_minimo": "14.000",
            "valor_maximo": "17.000",
            "opcao_referencia": null,
            "opcoes_lista": null,
            "ordem": "1",
            "deleted": "0"
        },
        {
            "codigo": "106",
            "descricao": "Alizarol 80 ºGL",           
            "tipo": "L", // Lista
            "valor_minimo": null,
            "valor_maximo": null,
            "opcao_referencia": "ESTÁVEL",
            "opcoes_lista": "ESTÁVEL; INSTÁVEL;NÃO SE APLICA",
            "ordem": "2",
            "deleted": "0"
        }
        
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "success": true,
    "message": "OK",
    "data": {
        "rejeitados": [
            [
                {
                    "codigo": "",
                    "descricao": "PARAMETRO VINDO DA API",
                    "Status": "Não importado, falta código do registro !"
                }
            ]
        ],
        "importados": {
            "total": 0
        },
        "apagados": {
            "total": 0
        },
        "reativados": {
            "total": 0
        },
        "atualizados": {
            "total": 1,
            "0": "110"
        }
    },
    "monitor.time": 1.33903503418
}
```

{% hint style="info" %}
Os registros foram enviados para a plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar análise

Recupera os registros de análise interna de qualidade de um viagem

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readAnaliseViagem>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDD",
    "doc": "99.999.999/0009-99",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "viagem": "1234567"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**viagem:** Deve ser informado o ID único da viagem, que pode ser obtido na tela ***"viagens"*** no menu principal no painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "analise_id": "35",
            "codigo": "9091",
            "dt_analise": "2021-07-27 10:06:26",
            "codigoTecnico": "001",
            "Tecnico": "Juscelino Santos.",
            "tanque": "HCU3141/03",
            "observacao_mapa": "asdfasfdasdfa",
            "observacao_analise": "asdfasdfasdfasdf",
            "viagem_id": "315733",
            "tanque_id": "216842"
        },
        {
            "analise_id": "36",
            "codigo": "890",
            "dt_analise": "2021-07-28 15:33:49",
            "codigoTecnico": "RP001",
            "Tecnico": "Renato Parreiras",
            "tanque": "HCU3141/02",
            "observacao_mapa": "jhjkhkjhkj",
            "observacao_analise": "ghjgjhgjhg",
            "viagem_id": "315733",
            "tanque_id": "36741"
        }
    ],
    "monitor.time": 2.10693502426
}
```

{% hint style="success" %}
Os registros de análises da viagem cadastrados na plataforma Milk's foram retornados com sucesso.
{% endhint %}

{% hint style="warning" %}
**Importante:** o atributo **"analise\_id",** recuperado nesta consulta será solicitado na requisição para obter os resultados desta análise
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar resultados

Recupera os resultados de uma análise específica realizada para um dos compartimentos do tanque do veículo de transporte da viagem.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readResultadoAnaliseViagem>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDD",
    "doc": "99.999.999/0009-99",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "analise": "34"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**analise:** Deve ser informado o ID único da analise, que pode ser obtido através de consulta com o método "[Baixar análise](/milks-rota/laboratorio-e-analise/baixar-analise)", descrito neste manual.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "tipo": "N",
            "codigo": "001",
            "descricao": "Gordura",
            "valor_minimo": "0.300",
            "valor_maximo": "0.700",
            "valor_obtido": "0.300",
            "referencia_opcao": null,
            "opcao_indicada": null,
            "aprovado": "1"
        },
        {
            "tipo": "N",
            "codigo": "002",
            "descricao": "Temperatura",
            "valor_minimo": "4.000",
            "valor_maximo": "7.000",
            "valor_obtido": "4.000",
            "referencia_opcao": null,
            "opcao_indicada": null,
            "aprovado": "1"
        },
        {
            "tipo": "L",
            "codigo": "003",
            "descricao": "Alizarol 80 ºGL",
            "valor_minimo": null,
            "valor_maximo": null,
            "valor_obtido": "0.000",
            "referencia_opcao": "ESTÁVEL",
            "opcao_indicada": " INSTÁVEL",
            "aprovado": "0"
        },
        {
            "tipo": "L",
            "codigo": "005",
            "descricao": "REDUTORES",
            "valor_minimo": null,
            "valor_maximo": null,
            "valor_obtido": "0.000",
            "referencia_opcao": "NEGATIVO",
            "opcao_indicada": "POSITIVO",
            "aprovado": "0"
        },
        {
            "tipo": "L",
            "codigo": "013",
            "descricao": "RECONSTITUINTES",
            "valor_minimo": null,
            "valor_maximo": null,
            "valor_obtido": "0.000",
            "referencia_opcao": "NEGATIVO",
            "opcao_indicada": "NEGATIVO",
            "aprovado": "1"
        },
        {
            "tipo": "L",
            "codigo": "015",
            "descricao": "NOVO REQUISITO",
            "valor_minimo": null,
            "valor_maximo": null,
            "valor_obtido": "0.000",
            "referencia_opcao": "CONFORME",
            "opcao_indicada": "CONFORME",
            "aprovado": "1"
        }
    ],
    "monitor.time": 1.37239789963
}
```

{% hint style="success" %}
Os registros de resultado da análise da viagem cadastrados na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Itinerário

Itinerários são os pontos de coleta de leite de uma linha. Os mesmos são recomendados quando não há muitas variações nas linhas de coleta ao longo do ano.

Para enviar registros de itinerários do ERP para a Plataforma Milk's, utilize o endpoint abaixo:&#x20;

{% content-ref url="/pages/-MeUyGstF\_HLMu3cHR4d" %}
[Enviar itinerário](/milks-rota/itinerario/enviar-itinerario)
{% endcontent-ref %}

Para baixar  registros de itinerários da Plataforma Milk's para o ERP, utilize o endpoint abaixo:&#x20;

{% content-ref url="/pages/-MeUyPJNPlAQ0y8qzwaQ" %}
[Baixar itinerário](/milks-rota/itinerario/baixar-itinerario)
{% endcontent-ref %}


# Enviar itinerário

Envia os registros de itinerários de uma linha de captação cadastrados no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeItinerario>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de itinerários
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de fazendas. Cada registro de fazenda pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do itinerário

| **Campo**   | **Descrição**                                                                                                                                                   | **Tipo** | **Obrigatório** |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- |
| **codigo**  | Código de identificação única do ponto de coleta                                                                                                                | Texto    | SIM             |
| linha       | Código da linha de captação                                                                                                                                     | Texto    | SIM             |
| fazenda     | Código da fazenda onde será realizada a coleta de leite                                                                                                         | Texto    | SIM             |
| tanque      | Código do tanque da fazenda onde será coletado o leite                                                                                                          | Texto    | SIM             |
| ordem       | Ordem de coleta do ponto na linha                                                                                                                               | Número   | NÃO             |
| horario     | Horário preferencial de realização da coleta                                                                                                                    | Texto    | NÃO             |
| **deleted** | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número   | SIM             |

{% hint style="info" %}
**codigo**: O campo código deverá ser preenchido com o mesmo código  já cadastrado no ERP, esta propriedade é utilizada para localizar os registros na base de dados da Plataforma Milk's e direcionar as operações CRUD.

A propriedade ***"deleted"*** é utilizada para comandar o processo de atualização, inclusão ou exclusão lógica do registro. Caso seu valor seja **"0" (zero)** e o registro não tenha sido encontrado, ele será criado. Se for encontrado, o valor será atualizado e se o valor for "**1" (um)**, o conteúdo será excluído logicamente da base de dados.&#x20;
{% endhint %}

### Exemplo de requisição

```javascript
{
"conta_id":99999,
"token":"s0637r",
"doc":"99.999.999/9999-99",
"data":[
   {
      "codigo": "i-001",
      "fazenda":"F001",
      "tanque": "T001",  
      "rota":"R001",
      "linha":"L001",
      "ordem":"1"   
      "horario":"07:00",
      "deleted":0    
   },
   {
      "codigo": "i-003",
      "fazenda":"F003",
      "tanque": "T003",
      "rota":"R001",
      "linha":"L001",
      "ordem":"2"   
      "horario":"07:45",
      "deleted": 1
   }
]
	
}
```

## Resposta

### 200: Registros importados

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "i-2030", // Código do itinerário não importado
            "error_message": "código da linha inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada&#x20;

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar itinerário

Baixa os registros de itinerários de uma linha de captação cadastrados no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readItinerario>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "linha": "001"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.\
**linha: (opcional)** Informe o código da linha para recuperar o itinerário de uma linha específica.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "3224907",
            "fazenda_id": "49131",
            "linha_id": "2806",
            "conta_id": "356637",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": "2019-11-11 09:15:11",
            "ordem": "4",
            "deleted": "0",
            "codigo": "00021-15058-01",
            "horario": "07:00",
            "coleta_seletiva": "0",
            "dt_inclusao": null,
            "tanque_id": "40730",
            "programacao": null,
            "dt_vigencia_inicio": "2019-06-12 05:02:11",
            "dt_vigencia_fim": "2029-06-12 05:02:11",
            "dt_exclusao": null,
            "codigo_programacao": "0",
            "fazenda": "34230556",
            "tanque": "15058-01/1",
            "linha": "00021"
        },
        {
            "id": "3224908",
            "fazenda_id": "290624",
            "linha_id": "2806",
            "conta_id": "356637",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": "2019-06-12 19:25:48",
            "ordem": "12",
            "deleted": "0",
            "codigo": "00021-15086-01",
            "horario": null,
            "coleta_seletiva": "0",
            "dt_inclusao": null,
            "tanque_id": "39107",
            "programacao": null,
            "dt_vigencia_inicio": "2019-06-12 05:02:11",
            "dt_vigencia_fim": "2029-06-12 05:02:11",
            "dt_exclusao": null,
            "codigo_programacao": "0",
            "fazenda": "18183255",
            "tanque": "15086-01/1",
            "linha": "00021"
        }
    ],
    "monitor.time": 0.953477144241
}
```

{% hint style="success" %}
Os registros dos itinerários cadastrados na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Linha

Linhas de coleta são os percursos diários dos agentes de coleta para coletar leite nas fazendas produtoras, de acordo com um itinerário ou programação específica.

Para enviar registros de linhas do ERP para a Plataforma Milk's, utilize o endpoint abaixo:&#x20;

{% content-ref url="/pages/-MEs3ciPzr6lbfQIJDOH" %}
[Enviar linhas](/milks-rota/linha/enviar-linhas)
{% endcontent-ref %}

Para baixar  registros de linhas da Plataforma Milk's para o ERP, utilize o endpoint abaixo:&#x20;

{% content-ref url="/pages/-MEs6roZFU5rZ9MOzgyO" %}
[Baixar linhas](/milks-rota/linha/baixar-linhas)
{% endcontent-ref %}


# Enviar linhas

Envia os registros de linhas de coleta cadastradas no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeLinha>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de linhas
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de fazendas. Cada registro de fazenda pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades da linha

| **Campo**     | **Descrição**                                                                                                                                                   | **Tipo** | **Obrigatório** |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- |
| **codigo**    | Código da linha                                                                                                                                                 | Texto    | SIM             |
| **nome**      | Nome da linha                                                                                                                                                   | Texto    | SIM             |
| **rota**      | Código da rota em que a linha está associada                                                                                                                    | Texto    | SIM             |
| distancia     | Distância em KM total da linha de coleta                                                                                                                        | Número   | NÃO             |
| km\_adicional | Quantidade de quilômetros(km) que o sistema deve adicionar a linha de coleta quando o rastreamento estiver habilitado                                           | Número   | NÃO             |
| **deleted**   | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número   | SIM             |
| bloqueado     | Indica se o registro deve ser bloqueado para atualizações pela API: **"1" (um)** - Sim; **"0" (zero)** - Não.                                                   | Texto    | NÃO             |

{% hint style="info" %}
**codigo**: O campo código deverá ser preenchido com o mesmo código  já cadastrado no ERP, esta propriedade é utilizada para localizar os registros na base de dados da Plataforma Milk's e direcionar as operações CRUD.

A propriedade ***"deleted"*** é utilizada para comandar o processo de atualização, inclusão ou exclusão lógica do registro. Caso seu valor seja **"0" (zero)** e o registro não tenha sido encontrado, ele será criado. Se for encontrado, o valor será atualizado e se o valor for "**1" (um)**, o conteúdo será excluído logicamente da base de dados.&#x20;
{% endhint %}

### Exemplo de requisição

```javascript
{
"conta_id":99999,
"token":"s0637r",
"doc":"99.999.999/9999-99",
"data":[{
	"codigo":"L-2010",
	"rota":"002",
	"nome":"Linha_L2010" ,
	"deleted":"0"
	},
	{
	"codigo":"L-2020",
	"rota":"002",
	"nome":"Linha_L2020",
	"deleted":"0"
	},
	{
	"codigo":"L-2030",
	"rota":"",
	"nome":"Linha_L2030",
	"deleted":"0"
	}
	]
	
}
```

## Resposta

### 200: Registros importados

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "L-2030", // Código da linha não importada
            "error_message": "código da rota inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada&#x20;

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar linhas

Baixa os registros de linhas cadastrados na Plataforma Milk's para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readLinha>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "2679",
            "rota_id": "211",
            "conta_id": "40001",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": "2018-02-07 09:53:32",
            "codigo": "0033",
            "nome": "ENTRE RIOS",
            "deleted": "0",
            "distancia": "234",
            "km_adicional": null,
            "bloqueado": "0",
            "inativo": "0",
            "dt_exclusao": null,
            "rota": "001"
        },
        {
            "id": "2680",
            "rota_id": "211",
            "conta_id": "40001",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": "2018-02-07 09:53:32",
            "codigo": "0035",
            "nome": "PEDRA NEGRA",
            "deleted": "0",
            "distancia": "120",
            "km_adicional": null,
            "bloqueado": "0",
            "inativo": "0",
            "dt_exclusao": null,
            "rota": "001"
        },
        {
            "id": "2869",
            "rota_id": "241",
            "conta_id": "40001",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": null,
            "codigo": "0003",
            "nome": "JUSCELINO",
            "deleted": "0",
            "distancia": "100",
            "km_adicional": null,
            "bloqueado": "0",
            "inativo": "0",
            "dt_exclusao": null,
            "rota": "P001"
        }
    ],
    "monitor.time": 0.953477144241
}
```

{% hint style="success" %}
Os registros das linhas cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Motivo de cancelamento

São  justificativas que os agentes de coleta podem selecionar para indicar os motivos pelos quais as coletas não foram realizadas em uma viagem.

Para enviar os motivos de cancelamento cadastrados no ERP para Plataforma Milks, utilize o endpoint abaixo:

{% content-ref url="/pages/-MEsG722f5KRkU969EAr" %}
[Enviar motivos](/milks-rota/motivo-de-cancelamento/enviar-motivo)
{% endcontent-ref %}

Para baixar os motivos de cancelamento da Plataforma Milks para o ERP, utilize o endpoint abaixo:

{% content-ref url="/pages/-MEsJUfgMPromZWW0pCw" %}
[Baixar motivos](/milks-rota/motivo-de-cancelamento/baixar-motivos)
{% endcontent-ref %}


# Enviar motivos

Envia os registros de motivos de cancelamento para a Plataforma Milks.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeMotivo>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de motivos de cancelamento
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de agentes de coleta. Cada registro  pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do motivo de cancelamento

| Campo              | Descrição                                                                                                                                                  | Tipo  | Obrigatório |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | ----------- |
| **codigo**         | Código do motivo                                                                                                                                           | Texto | SIM         |
| **motivo**         | Descrição da justificativa de cancelamento                                                                                                                 | Texto | SIM         |
| exige\_foto        | <p>Exige que o agente de coleta faça uma foto ao selecionar o motivo de cancelamento. </p><p><strong>0</strong> - Não; </p><p><strong>1</strong> - Sim</p> | Texto | NÃO         |
| envia\_notificacao | <p>Indica se o sistema enviará uma notificação quando o motivo for utilizado.</p><p><strong>0</strong> - Não; </p><p><strong>1</strong> - Sim</p>          | Texto | NÃO         |
| gravidade          | <p>Grau de gravidade da notificação: </p><p><strong>A</strong> = Alta;</p><p><strong>M</strong> = Média;</p><p><strong>B</strong> = Baixa</p>              | Texto | NÃO         |
| bloqueado          | <p>Indica se o registro deve ser bloqueado para atualizaçoes pela API: </p><p><strong>1 (um)</strong> - Sim; </p><p><strong>0 (zero)</strong> - Não.</p>   | Texto | NÃO         |

{% hint style="info" %}
**codigo**: O campo código deverá ser preenchido com o mesmo código  já cadastrado no ERP, esta propriedade é utilizada para localizar os registros na base de dados da Plataforma Milk's e direcionar as operações CRUD.

A propriedade ***"deleted"*** é utilizada para comandar o processo de atualização, inclusão ou exclusão lógica do registro. Caso seu valor seja **"0" (zero)** e o registro não tenha sido encontrado, ele será criado. Se for encontrado, o valor será atualizado e se o valor for "**1" (um)**, o conteúdo será excluído logicamente da base de dados.&#x20;
{% endhint %}

## Exemplo de requisição

```javascript
{
    "conta_id": 9999,
    "token": "s0637r",
    "doc": "99.999.999/9999-90",
    "data": [
        {
            "codigo": "001",
            "motivo": "LAMA NA ESTRADA",
            "gravidade": "B"
        },
        {
            "codigo": "002",
            "motivo": "ESTRADA INTERROMPIDA",
            "gravidade": "B"
        },
        {
            "codigo": "003",
            "motivo": "QUEBRA DO CAMINHAO",
            "gravidade": "B"
        },
        {
            "codigo": "004",
            "motivo": "",
            "gravidade": "B"
        },
        {
            "codigo": "005",
            "motivo": "CAPACIDADE DO VEICULO ATINGIDA",
            "gravidade": "B"
        },
        {
            "codigo": "006",
            "motivo": "ORDENHA EM PRODUCAO",
            "gravidade": "B"
        },
        {
            "codigo": "007",
            "motivo": "NAO DEU MEDIDA DE REGUA",
            "gravidade": "B"
        },
        {
            "codigo": "008",
            "motivo": "TANQUE COM LEITE CONGELADO",
            "gravidade": "B"
        },
        {
            "codigo": "009",
            "motivo": "TANQUE VAZIO",
            "gravidade": "B"
        }
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "004", // Código do agente não importado
            "error_message": "Motivo inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar motivos

Baixa os registros de motivos de cancelamento cadastrados na Plataforma Milk's para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readMotivo>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "222670",
            "motivo": "PORTEIRA TRANCADA",
            "codigo": "001",
            "conta_id": "40001",
            "exige_foto": "1",
            "envia_notificacao": "0",
            "gravidade": "B",
            "bloqueado": "0"
        },
        {
            "id": "222671",
            "motivo": "LAMA NA ESTRADA",
            "codigo": "002",
            "conta_id": "40001",
            "exige_foto": "1",
            "envia_notificacao": "0",
            "gravidade": "B",
            "bloqueado": "0"
        },
        {
            "id": "222672",
            "motivo": "TANQUE SEM ACESSO",
            "codigo": "003",
            "conta_id": "40001",
            "exige_foto": "0",
            "envia_notificacao": "0",
            "gravidade": "B",
            "bloqueado": "0"
        }
    ],
    "monitor.time": 0.924618959427
}
```

{% hint style="success" %}
Os registros dos motivos de cancelamento cadastrados na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Ponto de coleta

Relação de fazendas produtoras associadas a uma programação que devem ser visitadas em uma viagem de coleta.

Para enviar os pontos de coleta cadastrados no ERP para a Plataforma Milks, utilize o endpoint abaixo:<br>

{% content-ref url="/pages/-MEwvnqAXxi2QXh1q4G\_" %}
[Enviar pontos de coleta](/milks-rota/ponto-de-coleta/enviar-pontos-de-coleta)
{% endcontent-ref %}

Para baixar os pontos de coleta cadastrado na Plataforma MIlks, utilize o endpoint abaixo:

{% content-ref url="/pages/-MExEfaO4db0IgRVbS2f" %}
[Baixar pontos de coleta](/milks-rota/ponto-de-coleta/baixar-pontos-de-coleta)
{% endcontent-ref %}


# Baixar pontos de coleta

Baixa os registros de pontos de coleta da Plataforma Milks para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readPontoColeta>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "999999",
    "token": "s0637r",
    "doc": "99.999.999/9999-99",
    "programacao": "203982"
    
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.

**programacao**: Código de identificação único da programação&#x20;
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": {
        "id": "1",
        "programacao_id": "1",
        "conta_id": "616600",
        "produtor_id": "213735",
        "fazenda_id": "2266887",
        "tanque_id": "327555",
        "codigo": "02597/01",
        "horario": "16:40",
        "ordem": "1",
        "coleta_seletiva": null,
        "dt_criacao": null,
        "dt_exclusao": null,
        "dt_atualizacao": "2020-07-20 16:40:51",
        "produtor": "2597",
        "fazenda": "02597/01",
        "tanque": "347-02597/01"
    },
    "monitor.time": 0.8539249897
}
```

{% hint style="success" %}
Os registros dos pontos de coleta cadastrados na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Enviar pontos de coleta

Envia os pontos de coleta cadastrados no ERP para a Plataforma Milks.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writePontoColeta>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "programacao":"P-0006",
    "linha":"BR250",
    "data": [
        // lista de registros de pontos de coleta
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**programacao:** Informe o código da programação cadastrada para uma linha especifica.

\
**linha:** Informe o código da linha vinculada a programação a que se referem os pontos de coleta

**data**: Lista que deve conter um ou mais registros de fazendas. Cada registro de fazenda pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do ponto de coleta.

| **Campo**        | **Descrição**                                                                                                                                                                                | **Tipo** | **Obrigatório** |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- |
| **codigo**       | Código único do ponto de coleta                                                                                                                                                              | Texto    | SIM             |
| **produtor  \*** | Código do produtor                                                                                                                                                                           | Texto    | SIM             |
| **fazenda  \***  | Código da fazenda                                                                                                                                                                            | Texto    | SIM             |
| **tanque  \***   | Código do tanque (Ponto de coleta)                                                                                                                                                           | Texto    | SIM             |
| horario          | Horário previsto da coleta                                                                                                                                                                   | Texto    | NÃO             |
| ordem            | Ordem de coleta na programação                                                                                                                                                               | Número   | NÃO             |
| coleta\_seletiva | <p>Indica se o volume coletado neste ponto deverá ser armazenado em compartimento específico no veículo de transporte:  </p><p><strong>1</strong> - Sim,</p><p><strong>0</strong> - Não.</p> | Número   | NÃO             |

{% hint style="info" %}
**codigo**: O campo código deverá ser preenchido com o mesmo código  já cadastrado no ERP, esta propriedade é utilizada para localizar os registros na base de dados da Plataforma Milk's e direcionar as operações CRUD.

As propriedades marcadas com **(\*) asterisco,** são utilizadas para localizar os registros de relacionamento com as respectivas tabelas. O registro precisar existir na tabela relacionada para que o ponto de coleta seja importado.
{% endhint %}

### Exemplo de requisição

```javascript
{
    "conta_id": "9999",
    "token": "s0637r",
    "doc": "99.999.999/9999-99",
    "programacao":"P-0006",
    "linha":"BR250",
    "data": [
        {
            "codigo": "PC-0006/01",
            "produtor": "1178",
            "fazenda": "0013",
            "tanque": "0013",
            "ordem": "1",
            "horario": "06:00",
            "coleta_seletiva": "0"
        },
        {
            "codigo": "PC-0006/02",
            "produtor": "000386",
            "fazenda": "F386",
            "tanque": "000386",
            "ordem": "2",
            "horario": "06:45",
            "coleta_seletiva": "0"
        },
       
         {
            "codigo": "PC-0006/03",
            "produtor": "",
            "fazenda": "0037",
            "tanque": "0037",
            "ordem": "3",
            "horario": "07:25",
            "coleta_seletiva": "0"
        }
 
    ]
}

```

## Resposta

### 200: Registros importados

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "PC-0006/03", // Código do ponto de coleta não importada
            "error_message": "código do produtor inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada&#x20;

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Produtor

Produtores são os proprietários rurais que fornecem leite para os laticínios.

Para enviar registros de produtores do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-Ljsn9QT7xzDKCrGtI\_9" %}
[Enviar produtores](/milks-rota/produtor/write)
{% endcontent-ref %}

Para baixar registros de produtores da Plataforma Milk's para o ERP, utilize o endpoint abaixo:

{% content-ref url="/pages/-MClrcEoXihVSL0zCgx9" %}
[Baixar produtores](/milks-rota/produtor/read)
{% endcontent-ref %}


# Enviar produtores

Envia os registros de produtores cadastrados no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeProdutor>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99 
    "data": [
        // lista de registros de produtores
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de produtores. Cada registro de produtor pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do produtor

| **Campo**    | **Descrição**                                                                                                                                                   | **Tipo** | **Obrigatório** |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- |
| **codigo**   | Código do produtor                                                                                                                                              | Texto    | SIM             |
| **nome**     | Nome do produtor                                                                                                                                                | Texto    | SIM             |
| **tipo**     | Tipo de cadastro. **F** = Pessoa física, **J** = Pessoa jurídica                                                                                                | Texto    | SIM             |
| **deleted**  | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número   | SIM             |
| numero       | Número do endereço do produtor                                                                                                                                  | Texto    | Não             |
| logradouro   | Logradouro do endereço do produtor                                                                                                                              | Texto    | Não             |
| bairro       | Bairro do endereço do produtor                                                                                                                                  | Texto    | Não             |
| cidade       | Cidade do endereço do produtor                                                                                                                                  | Texto    | Não             |
| uf           | Unidade federativa do endereço do produtor                                                                                                                      | Texto    | Não             |
| cep          | CEP do endereço do produtor                                                                                                                                     | Texto    | Não             |
| doc          | Documento de identificação do produtor (CPF ou CNPJ)                                                                                                            | Texto    | Não             |
| email        | Endereço de e-mail do produtor                                                                                                                                  | Texto    | Não             |
| telefone     | Número do telefone celular do produtor                                                                                                                          | Texto    | Não             |
| ie           | Inscrição estadual do produtor                                                                                                                                  | Texto    | Não             |
| nrp          | Número de produtor Rural                                                                                                                                        | Texto    | Não             |
| valor\_litro | Valor do litro de leite pago ao produtor                                                                                                                        | Número   | Não             |

### Exemplo de requisição

```javascript
{
    "conta_id": XXXX, 
    "token": "0000-0000-0000-0000", 
    "data": [
        {
            "codigo": "001",
            "nome": "João das Couves",
            "tipo": "F",
            "deleted": 0, // ativa o registro
            "doc": "090.123.231-20",
            "numero": "123",
            "logradouro": "Rua das Canárias",
            "bairro": "Laranjeiras",
            "cidade": "Alagoana",
            "uf": "Minas Gerais",
            "cep": "31400-000",
            "email": "joao.couves@gmail.com",
            "ie": null,
            "nrp": "99999999999",
            "valor_litro": ""
        },
        {
            "codigo": "002",
            "nome": "Maria das Neves",
            "tipo": "J",
            "deleted": 1, // desativa o registro         
            "doc": "10.290.123.0001/10",
            "numero": "98",
            "logradouro": "Rua D",
            "bairro": "Martins Godoy",
            "cidade": "Santa Bárbara",
            "uf": "Minas Gerais",
            "cep": "31560-000",
            "email": null,
            "ie": "1231312312",
            "nrp": "99999999999",
            "valor_litro": null
        }        
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "001", // Código do produtor não importado
            "error_message": "Nome não informado", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}

###


# Baixar produtores

Baixa os registros de produtores cadastrados na Plataforma Milk's para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readProdutor>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.999.999/9999-99 
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "293620",
            "conta_id": "XXXXX",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": null,
            "nome": "Produtor 001",
            "codigo": "001",
            "numero": null,
            "logradouro": null,
            "bairro": null,
            "cidade": null,
            "doc": null,
            "uf": "MG",
            "cep": null,
            "dt_create": null,
            "dt_delete": null,
            "deleted": "0",
            "email": null,
            "documento": null,
            "ie": null,
            "tipo": "F",
            "valor_litro": null,
            "controle": "0",
            "telefone": null,
            "pendente": "0"
        },
        {
            "id": "293622",
            "conta_id": "XXXXX",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": null,
            "nome": "Produtor 002",
            "codigo": "002",
            "numero": null,
            "logradouro": null,
            "bairro": null,
            "cidade": null,
            "doc": null,
            "uf": "MG",
            "cep": null,
            "dt_create": null,
            "dt_delete": null,
            "deleted": "0",
            "email": null,
            "documento": null,
            "ie": null,
            "tipo": "F",
            "valor_litro": null,
            "controle": "0",
            "telefone": null,
            "pendente": "0"
        }
    ],
    "monitor.time": 0.10523581504822
}
```

{% hint style="success" %}
Os registros de produtores cadastrados na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Programação de coleta

São identificadores que marcam um período inicial e final como vigência para que uma linha de coleta seja percorrida, agrupando os pontos de coleta que serão visitados.

Para enviar os registros de pontos e coleta cadastrados no ERP para a Plataforma Milks, utilize o endpoint abaixo:

{% content-ref url="/pages/-MEtib6jVBhKSPiX7AAq" %}
[Enviar programação](/milks-rota/programacao-de-coleta/enviar-programacao)
{% endcontent-ref %}

Para baixar os registros de programação cadastrados na Plataforma Milks para o ERP utilize o endpoint abaixo:

{% content-ref url="/pages/-MEtnb0Y-C1KhwAO34NX" %}
[Baixar programação](/milks-rota/programacao-de-coleta/baixar-programacao)
{% endcontent-ref %}


# Enviar programação

Envia os registros de programação cadastrados no ERP para a Plataforma Milks.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeProgramacao>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de programação
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de fazendas. Cada registro de fazenda pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades da programação

| **Campo**                | **Descrição**                                                                                                                                                   | **Tipo**    | **Obrigatório** |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | --------------- |
| **codigo**               | Código da rota                                                                                                                                                  | Texto       | SIM             |
| **linha \***             | Código da linha de coleta                                                                                                                                       | Texto       | SIM             |
| **dt\_vigencia\_inicio** | Data de vigência inicial da programação                                                                                                                         | Data e Hora | SIM             |
| **dt\_vigencia\_fim**    | Data da vigência final da programação                                                                                                                           | Data e hora | SIM             |
| deleted                  | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número      | NÃO             |

{% hint style="info" %}
**codigo**: O campo código deverá ser preenchido com o mesmo código  já cadastrado no ERP, esta propriedade é utilizada para localizar os registros na base de dados da Plataforma Milk's e direcionar as operações CRUD.

* **linha*****:*** Esta  propriedade  é utilizada para associar a linha de coleta na tabela "*linha*" com com o registro da programação. Se  registro de linha não for localizado, o registro de programação não será importado. &#x20;
  {% endhint %}

### Exemplo de requisição

```javascript
{
    "conta_id": "9999",
    "token": "s0637r",
    "doc": "99.999.999/9999-99",
    "data": [
        {
            "codigo": "P-0006",
            "linha":"BR250",
            "dt_vigencia_inicio": "2020-08-01 00:00:01",
            "dt_vigencia_fim": "2030-08-01 23:59:59",
            "deleted": "0"
        },
         {
            "codigo": "P-0007",
            "linha":"",
            "dt_vigencia_inicio": "2020-08-01 00:00:01",
            "dt_vigencia_fim": "2030-08-01 23:59:59",
            "deleted": "0"
        }
    ]
}
```

## Resposta

### 200: Registros importados

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "P-0007", // Código da programação não importada
            "error_message": "código do linha inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada&#x20;

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar programação

Baixa os registros de programação da Plataforma Milks para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readProgramacao>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "vigencia_inicio": "2020-05-01",
    "vigencia_fim": "2030-08-01"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.

**vigencia\_inicio**: Data de vigência inicial a ser considerada na pesquisa.

**vigencia\_fim**: Data de vigência final a ser considerada na pesquisa.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": {
        "id": "1",
        "conta_id": "9999",
        "linha_id": "6996",
        "codigo": "203982",
        "dt_vigencia_inicio": "2020-07-20",
        "dt_vigencia_fim": "2020-07-20",
        "dt_criacao": "2020-07-20 15:34:20",
        "dt_exclusao": null,
        "dt_atualizacao": null,
        "linha": "19",
        "nomeLinha": "LINHA LIFE ESPERA FELIZ"
    },
    "monitor.time": 0.521234989166
}
```

{% hint style="success" %}
Os registros das programação cadastrados na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Rota

Rotas são agrupamentos de linhas de coletas. Utilizadas para organizar por região, unidade, cidade, transportador ou qualquer identificador que as linhas tenham em comum.

Para enviar registros de rotas do ERP para a Plataforma Milk's, utilize o endpoint abaixo:&#x20;

{% content-ref url="/pages/-MEry94jjtrxXHq3j\_H8" %}
[Enviar rota](/milks-rota/rota-1/enviar-rota)
{% endcontent-ref %}

Para baixar registros de rotas da Plataforma Milk's para o ERP, utilize o endpoint abaixo

{% content-ref url="/pages/-MEs0j0lCxQFh3yRt0nZ" %}
[Baixar rota](/milks-rota/rota-1/baixar-rota)
{% endcontent-ref %}


# Enviar rota

Envia os registros de rotas cadastradas no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeRota>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de rotas
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de fazendas. Cada registro de fazenda pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades da rota

| **Campo**          | **Descrição**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | **Tipo** | **Obrigatório** |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- |
| **codigo**         | Código da rota                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Texto    | SIM             |
| **nome**           | Nome da rota                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Texto    | SIM             |
| **tipo\_descarga** | <p>Indica como será feito o procedimento de liberação e descarga das viagens executas em linhas de coleta vinculadas a esta rota:  </p><p><strong>TT</strong> = Descarga por tanque pelo técnico;</p><p><strong>TC</strong> = Descarga por tanque pelo coletor;</p><p><strong>TP</strong> = Descarga por tanque pela plataforma;</p><p><strong>PT</strong> = Descarga por pesagem pelo técnico;</p><p><strong>PC</strong> = Descarga por pesagem pelo coletor;</p><p><strong>PP</strong> = Descarga por pesagem pela plataforma</p> | Texto    | SIM             |
| **deleted**        | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma.                                                                                                                                                                                                                                                                                                                                                                     | Número   | SIM             |
| grupo              | Código do grupo de rotas ao qual esta rota está vinculada                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Texto    | NÃO             |

{% hint style="info" %}
**codigo**: O campo código deverá ser preenchido com o mesmo código  já cadastrado no ERP, esta propriedade é utilizada para localizar os registros na base de dados da Plataforma Milk's e direcionar as operações CRUD.

A propriedade ***"deleted"*** é utilizada para comandar o processo de atualização, inclusão ou exclusão lógica do registro. Caso seu valor seja **"0" (zero)** e o registro não tenha sido encontrado, ele será criado. Se for encontrado, o valor será atualizado e se o valor for "**1" (um)**, o conteúdo será excluído logicamente da base de dados.&#x20;
{% endhint %}

### Exemplo de requisição

```javascript
{
    "conta_id": 99999,
    "token": "aa4e-15c1-2f69-a734",
    "data": [
        {
            "codigo": "01",
            "gruporota": "01",
            "nome": "GERAL",
            "tipo_descarga": "TP",
            "deleted": "0"
        },
        {
            "codigo": "02",
            "gruporota": "01",
            "nome": "POSTO 1",
            "tipo_descarga": "TP",
            "deleted": "0"
        },
        {
            "codigo": "03",
            "gruporota": "",
            "nome": "FAST COLETA TRANSPORTE",
            "tipo_descarga": "TP",
            "deleted": "0"
        }
    ]
}
```

## Resposta

### 200: Registros importados

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "03", // Código da rota não importada
            "error_message": "código do grupo de rotas inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada&#x20;

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar rota

Baixa os registros de rotas cadastrados na Plataforma Milk's para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readRota>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "363",
            "conta_id": "591973",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": "2019-08-05 16:38:57",
            "codigo": "1",
            "nome": "REGIAO RIO DOCE",
            "deleted": "0",
            "tipo_descarga": "TP",
            "grupo_rota_id": "223",
            "dt_exclusao": null,
            "gruporota": "11"
        },
        {
            "id": "364",
            "conta_id": "591973",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": "2020-03-18 09:46:20",
            "codigo": "2",
            "nome": "REGIAO MUCURI",
            "deleted": "0",
            "tipo_descarga": "TP",
            "grupo_rota_id": "224",
            "dt_exclusao": null,
            "gruporota": "12"
        },
        {
            "id": "365",
            "conta_id": "591973",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": "2020-03-18 09:47:15",
            "codigo": "3",
            "nome": "REGIAO MARAVILHA",
            "deleted": "0",
            "tipo_descarga": "TP",
            "grupo_rota_id": "225",
            "dt_exclusao": null,
            "gruporota": "18"
        }
    ],
    "monitor.time": 0.093131065368652
}
```

{% hint style="success" %}
Os registros das rotas cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Transportadoras&#x20;

Rotas são agrupamentos de linhas de coletas. Utilizadas para organizar por região, unidade, cidade, transportador ou qualquer identificador que as linhas tenham em comum.

Para enviar registros de rotas do ERP para a Plataforma Milk's, utilize o endpoint abaixo:&#x20;

{% content-ref url="/pages/-MEry94jjtrxXHq3j\_H8" %}
[Enviar rota](/milks-rota/rota-1/enviar-rota)
{% endcontent-ref %}

Para baixar registros de rotas da Plataforma Milk's para o ERP, utilize o endpoint abaixo

{% content-ref url="/pages/-MEs0j0lCxQFh3yRt0nZ" %}
[Baixar rota](/milks-rota/rota-1/baixar-rota)
{% endcontent-ref %}


# Enviar transportadoras

Envia os registros de transportadoras cadastradas no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeTransportadora>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de transportadoras
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de fazendas. Cada registro de fazenda pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades da rota

| **Campo**        | **Descrição**                    | **Tipo** | **Obrigatório** |   |   |
| ---------------- | -------------------------------- | -------- | --------------- | - | - |
| **nome**         | Nome da Transportadora           | Texto    | SIM             |   |   |
| **codigo**       | Código da Transportadora         | Texto    | SIM             |   |   |
| **valor\_frete** | Valor do frete da transportadora | Number   | NÃO             |   |   |

{% hint style="info" %}
**codigo**: O campo código deverá ser preenchido com o mesmo código  já cadastrado no ERP, esta propriedade é utilizada para localizar os registros na base de dados da Plataforma Milk's e direcionar as operações CRUD.

A propriedade ***"deleted"*** é utilizada para comandar o processo de atualização, inclusão ou exclusão lógica do registro. Caso seu valor seja **"0" (zero)** e o registro não tenha sido encontrado, ele será criado. Se for encontrado, o valor será atualizado e se o valor for "**1" (um)**, o conteúdo será excluído logicamente da base de dados.&#x20;
{% endhint %}

### Exemplo de requisição

```javascript
{
    "conta_id": 99999,
    "token": "aa4e-15c1-2f69-a734",
    "data": [
        {
            "nome": "Transportadora T1",
            "codigo": "01"
        },
        {
            "nome": "Transportadora T2",
            "codigo": "02"
        },
        {
            "nome": "Transportadora T3",
            "codigo": "03",
            "valor_frete": 2.45
        }
        {
            "nome": "Transportadora T4",
            "codigo": "04",
            "valor_frete": 2.90
        }
    ]
}
```

## Resposta

### 200: Registros importados

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "03", // Código da transportadora não importado
            "error_message": "código da trasnportadora inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada&#x20;

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar transportadora

Baixa os registros de transportadoras cadastrados na Plataforma Milk's para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readTransportadora>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

````javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "9",
            "nome": "trasporte novo",
            "codigo": "001",
            "conta_id": "40001",
            "dt_criacao": "2020-07-30 13:40:18",
            "dt_atualizacao": "2021-08-27 12:28:16",
            "dt_exclusao": null,
            "deleted": "0",
            "valor_frete": "0",
            "token": null
        },
        {
            "id": "50",
            "nome": "Via Lactea",
            "codigo": "0002",
            "conta_id": "40001",
            "dt_criacao": "2022-01-04 16:20:00",
            "dt_atualizacao": null,
            "dt_exclusao": null,
            "deleted": "0",
            "valor_frete": "0",
            "token": null
        }
    ],
    "monitor.time": 0.436231851578,
    "server.date": "2024-10-08 16:35:25"
}
```
           
````

{% hint style="success" %}
Os registros das transportadoras cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Tanque

Tanques ou  pontos de coleta , compartimentos de armazenamento, balões ou silos: Representam os locais onde o leite é depositado respectivamente nas fazendas, veículos e plataforma de recepção.

Para enviar registros de tanques  do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-MEeE7CixxyIv6ZX8P76" %}
[Enviar tanques](/milks-rota/tanque/enviar-tanques)
{% endcontent-ref %}

Para baixar registros de tanques da Plataforma Milk's para o ERP, utilize o endpoint abaixo:

{% content-ref url="/pages/-MEj9ickTd3zyP\_bnEB8" %}
[Baixar tanques](/milks-rota/tanque/baixar-tanques)
{% endcontent-ref %}


# Enviar tanques

Envia os registros de tanques cadastrados no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeTanque>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
    "data": [
        // lista de registros de tanques
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de tanque. Cada registro de tanque pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do tanque

| **Campo**                        | **Descrição**                                                                                                                                                                                                                                             | **Tipo** | **Obrigatório** |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- |
| **codigo**                       | código único para identificação do registro no ERP.                                                                                                                                                                                                       | Texto    | SIM             |
| **tipo**                         | Identifica o tipo de tanque: **F** -  Tanque de fazenda(ponto de coleta), **V** - Compartimento do tanque do veículo de transporte (boca),  **P** - Tanque de plataforma (Balão ou Silo).                                                                 | Texto    | SIM             |
| tipo\_leite                      | Tipo de leite que será armazenado:  **V**- Vaca ; **C** - Cabra; **B** - Búfala                                                                                                                                                                           | Texto    | NÃO             |
| fazenda                          | Código da fazenda quando o **tipo** for **"F"**                                                                                                                                                                                                           | Texto    | NÃO             |
| veiculo                          | Código do veículo quando o **tipo** for **"V**                                                                                                                                                                                                            | Texto    | NÃO             |
| **capacidade**                   | Capacidade total de armazenamento                                                                                                                                                                                                                         | Número   | SIM             |
| perimetro                        | Medida do perímetro                                                                                                                                                                                                                                       | Decimal  | NÃO             |
| **volume**                       | Volume total de armazenamento                                                                                                                                                                                                                             | Número   | SIM             |
| altura                           | Medida da altura                                                                                                                                                                                                                                          | Decimal  | NÃO             |
| **comunitario**                  | Indica se o tanque é utilizado por mais de um produtor para armazenar leite : **1** - Sim ; **0** - Não                                                                                                                                                   | Número   | SIM             |
| comunitario\_lancamento          | Quem fará a distribuição de volumes em tanques comunitários: **DC** - agente de coleta; **DP** - Painel de monitoramento; **DA** - Aplicativo específico "Milks Tanque"                                                                                   | Texto    | NÃO             |
| comunitario\_diferenca           | Como será trata a distribuição de diferença nos tanques comunitários: **P** - Proprietário assume ; **D** - Rateio proporcional entre os participantes do tanque; **L** - Laticínio assume a diferença; **N** - Não se permite (resolver antes da coleta) | Texto    | NÃO             |
| comunitario\_divisao             | Forma de distribuição do valores : **M** - Manual;  **A** - Automática                                                                                                                                                                                    | Texto    | NÃO             |
| comunitario\_impressao           | Tipo de impressão do ticket de coleta : **D** - Detalhado; **S** - Simplificado                                                                                                                                                                           | Texto    | NÃO             |
| **comunitario\_impressao\_mapa** | **Tipo de impressão no relatório final de coleta: D** - Detalhado; **S** - Simplificado                                                                                                                                                                   | Texto    | NÃO             |
| proprietario                     | Indica quem é o proprietário do tanque: **P** - Produtor; **E** - Empresa; **A** - Aluguel                                                                                                                                                                | Texto    | NÃO             |
| email                            | Usuário para login no aplicativo "Milk's Tanque                                                                                                                                                                                                           | Texto    | NÃO             |
| senha                            | Senha de acesso para logIn no aplicativo "Milk's Tanque:.                                                                                                                                                                                                 | Texto    | NÃO             |
| descricao                        | <p>Descrição</p><p>Identificação ou Nome Comum</p>                                                                                                                                                                                                        | Texto    |                 |
| label\_impressao                 | Identificação do grupo em caso do tanque ser comunitário                                                                                                                                                                                                  | Texto    | NÃO             |
| coleta\_seletiva                 | Indica se o volume coletado neste tanque deve ser armazenado separadamente no veículo de transporte e plataforma: **1** - Sim; **0** - Não.                                                                                                               | Número   | NÃO             |
| fabricante                       | Nome do fabricante                                                                                                                                                                                                                                        | Texto    | NÃO             |
| marca                            | Marca do tanque                                                                                                                                                                                                                                           | Texto    | NÃO             |
| modelo                           | Modelo de fabricação                                                                                                                                                                                                                                      | Texto    | NÃO             |
| numero\_serie                    | Número de série da fábrica.                                                                                                                                                                                                                               | Texto    | NÃO             |
| numero\_patrimonio               | Número de patrimônio na empresa.                                                                                                                                                                                                                          | Texto    | NÃO             |
| **deleted**                      | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma.                                                                                           | Texto    | SIM             |

### Exemplo de requisição

```javascript
{
    "conta_id": 999999,
    "token": "77d3-96a6-c1a3-c58e",
    "doc": "99.999.999/9999-99",
    "data": [
        {
            "codigo": "000058",  // Tanque de fazenda
            "tipo": "F",
            "Tipo_leite": "V",   // Armazenar leite de vaca
            "veiculo": "",
            "fazenda": "907010",
            "comunitario": "1",   // Indica tanque é comunitario
            "comunitario_lancamento": "DC",
            "comunitario_divisao": "M",
            "comunitario_diferenca": "P",
            "comunitario_impressao": "D",
            "capacidade": "1500",
            "volume": "1500",
            "email": "",
            "senha": "",
            "deleted": "0"
        },
        {
            "codigo": "V-001/01",  // Tanque de veículo
            "tipo": "V",
            "veiculo": "V-001", // Boca dianteira
            "fazenda": "",
            "comunitario": "0",
            "capacidade": "3200",
            "volume": "3200",
            "email": "",
            "senha": "",
            "deleted": "0"
        },
        {
            "codigo": "V-001/02",  // tanque de veículo
            "tipo": "V",
            "veiculo": "V-001", // Boca central
            "fazenda": "",
            "comunitario": "0",
            "capacidade": "3200",
            "volume": "3200",
            "email": "",
            "senha": "",
            "deleted": "0"
        },
        {
            "codigo": "SILO/01",  // tanque de plataforma
            "tipo": "P",
            "veiculo": "",
            "fazenda": "",
            "comunitario": "0",      
            "capacidade": "25000",
            "volume": "25000",
            "email": "",
            "senha": "",
            "deleted": "1"  // Indica que o registro já existe e 
        },                  // deverá ser apagado logicamente.
    ]
}
```

{% hint style="info" %}
A propriedade ***"codigo"***  faz associação do registro com a base de dados do ERP,  deve ser enviado um conteúdo único por registro, de forma a identificar o conjunto de dados entre a API e a base de dados do ERP.

A API  utiliza a propriedade ***"codigo"*** para localizar os registros, inclusive para fazer o relacionamento com chaves estrangeiras nas tabelas.\
Ex.: Antes de inserir o registro  abaixo, a rotina irá verificar se existe o veículo com código ***"V-001"*** na tabela veículo.

```
 {
   "codigo": "V-001/01",  // Tanque de veículo
   "tipo": "V",
   "veiculo": "V-001" // Boca dianteira
   ...
 }  
```

A propriedade ***"deleted"*** é utilizada para comandar o processo de atualização, inclusão ou exclusão lógica do registro. Caso seu valor seja **"0" (zero)** e o registro não tenha sido encontrado, ele será criado. Se for encontrado, o valor será atualizado e se o valor for "**1" (um)**, o conteúdo será excluído logicamente da base de dados.&#x20;
{% endhint %}

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "000101", // Código do tanque não importado
            "error_message": "tipo não informado", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar tanques

Baixa os registros de tanques cadastrados na Plataforma Milk's para o ERP.

## Método POST

> <http://app.milksrota.com.br/api/retaguardasync/readTanque>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.999.999/9999-99 
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "61299",
            "tipo": "V",
            "veiculo_id": "2478",
            "fazenda_id": null,
            "conta_id": "481743",
            "dt_push": null,
            "capacidade": "4177",
            "altura": "0.00",
            "perimetro": "0.00",
            "volume": "4177",
            "dt_create": "2019-05-07 00:00:00",
            "dt_delete": null,
            "deleted": "0",
            "codigo": "OLO8135/1",
            "comunitario": "0",
            "comunitario_lancamento": "DC",
            "comunitario_diferenca": "D",
            "porcentagem": null,
            "comunitario_divisao": "M",
            "comunitario_impressao": "D",
            "coleta_seletiva": "0",
            "email": null,
            "senha": null,
            "token": null,
            "numero_serie": null,
            "numero_patrimonio": null,
            "marca": null,
            "modelo": null,
            "fabricante": null,
            "proprietario": "P",
            "bloqueado": "0",
            "label_impressao": null,
            "descricao": "tanque",
            "comunitario_impressao_mapa": "S",
            "tipo_leite": "V",
            "veiculo": "OLO8135",
            "fazenda": null
        },
        {
            "id": "61330",
            "tipo": "F",
            "veiculo_id": null,
            "fazenda_id": "131406",
            "conta_id": "481743",
            "dt_push": null,
            "capacidade": "1000",
            "altura": "0.00",
            "perimetro": "0.00",
            "volume": "1000",
            "dt_create": "2019-02-06 20:07:03",
            "dt_delete": null,
            "deleted": "0",
            "codigo": "T-002918",
            "comunitario": "0",
            "comunitario_lancamento": "DC",
            "comunitario_diferenca": "D",
            "porcentagem": null,
            "comunitario_divisao": "M",
            "comunitario_impressao": "D",
            "coleta_seletiva": "0",
            "email": null,
            "senha": null,
            "token": null,
            "numero_serie": null,
            "numero_patrimonio": null,
            "marca": null,
            "modelo": null,
            "fabricante": null,
            "proprietario": "P",
            "bloqueado": "0",
            "label_impressao": null,
            "descricao": "tanque",
            "comunitario_impressao_mapa": "S",
            "tipo_leite": "V",
            "veiculo": null,
            "fazenda": "F-002918"
        },
   ],
    "monitor.time": 0.1433789730072
}        
```

{% hint style="success" %}
Os registros de tanques cadastrados na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Tanque coletivo

Tanques coletivos ou comunitários representam pontos de coleta onde mais de um produtor armazena o leite em um mesma propriedade.

Para enviar registros de tanques coletivos  do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-MRR1\_6ilmEiCmNto5NW" %}
[Enviar produtores vinculados](/milks-rota/tanque-coletivo/enviar-produtores-vinculados)
{% endcontent-ref %}


# Enviar produtores vinculados

Envia os registros de produtores participantes de tanques coletivos cadastrados no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeVinculado>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
    "data": [
        // lista de registros de produtores participantes
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter dois ou mais registros de produtores. Cada registro de produtor pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades dos vínculos de tanques coletivos

| **Campo**        | **Descrição**                                                                                                                                                   | **Tipo**       | **Obrigatório**   |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ----------------- |
| **produtor**     | código produtor participante.                                                                                                                                   | Texto          | SIM               |
| **fazenda**      | código do registros de fazenda do produtor participante                                                                                                         | Texto          | SIM               |
| **tanque**       | **código do tanque coletivo ao qual o registro será vinculado**                                                                                                 | Texto          | SIM               |
| **proprietário** | Indica se o produtor é o responsável pelo tanque coletivo (0) - **NÃO**, (1) - **SIM**                                                                          | Texto          | SIM               |
| **fornecedor**   | Indica se o produtor é fornecedor ou apenas participante no tanque coletivo (0) - **NÃO**, (1) - **SIM**                                                        | Texto          | SIM (Default = 1) |
| **porcentagem**  | Indica o percentual de participação no volume produzido para o participante. Aplicável em casos de tanques ajustados para divisão automática por percentual     | Decimal (10,4) | NÃO               |
| **deleted**      | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Texto          | SIM               |

### Exemplo de requisição

```javascript
{
    "conta_id": 999999,
    "token": "77d3-96a6-c1a3-c58e",
    "doc": "99.999.999/9999-99",
    "data": [
        {
            "tanque": "T-0001",  // Código do tanque coletivo cadastrado na plataforma    
            "produtor": "000058", // Código do produtor vinculado            
            "fazenda": "907010", // Código da fazenda do produtor
            "proprietário": "1",   // somente 1 proprietário deve ser indicado para o conjunto.
            "fornecedor": "0",    // Indica que este participante não poderá receber lançamentos de volume. 
            "porcentagem": null,           
            "deleted": "0"
        },
        {
            "tanque": "T-0001",
            "produtor": "000059",             
            "fazenda": "907011", 
            "proprietário": "0", 
            "fornecedor": "1", // Este participante poderá receber lançamento de volumes.  
            "porcentagem": null,           
            "deleted": "0"
        },
        {
            "tanque": "T-0001",
            "produtor": "000060",             
            "fazenda": "907012", 
            "proprietário": "1", 
            "fornecedor": "1",  
            "porcentagem": null,           
            "deleted": "0"
        }                   
    ]
}
```

{% hint style="info" %}
A propriedade ***"tanque"***  deve conter o código tanque previamente cadastrado na plataforma e ajustado para ser um tanque coletivo, (propriedade "**coletivo = 1**") no momento da geração do registro de tanques. Caso este ajuste não tenha sido feito, ao receber registros de participantes vinculados ao tanque, a API irá ajustar automaticamente o registro deste tanque indicando que o mesmo passa a ser coletivo.

A  propriedade ***"proprietário"*** indica que o produtor vinculado a este registro é o "responsável ou cabeça" do grupo, e só poderá conter para cada tanque, um único registro de vinculado com esta propriedade contendo o valor (1), pois somente um responsável é admitido para cada tanque coletivo

A propriedade "**fornecedor**" indica se o participante do tanque coletivo pode ou não receber lançamentos ou distribuição de volumes. Caso este atributo esteja marcado com **(0) - Zero**, o aplicativo de coleta irá **inibir o lançamento de volumes para este participante.**

A propriedade ***"deleted"*** é utilizada para comandar o processo de atualização, inclusão ou exclusão lógica do registro. Caso seu valor seja **"0" (zero)** e o registro não tenha sido encontrado, ele será criado. Se for encontrado, o valor será atualizado e se o valor for "**1" (um)**, o conteúdo será excluído logicamente da base de dados.&#x20;
{% endhint %}

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "tanque": "T-0001", // Código do tanque não importado
            "error_message": "proprietário não informado", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Técnico

Técnicos representam os colaboradores que atuam no setor administrativo, agentes de campo, laboratoristas ou operadores de plataforma de descarga

Para enviar registros de técnicos cadastrados no ERP para a Plataforma Milk's utilize o endpoint abaixo:

{% content-ref url="/pages/-MEsA9DjUnuMEUARpWTZ" %}
[Enviar técnicos](/milks-rota/tecnico/enviar-tecnicos)
{% endcontent-ref %}

Para baixar registros de técnicos da Plataforma Milk's para o ERP utilize o endpoint abaixo:

{% content-ref url="/pages/-MEsChYPJtcEP8Kd0Sa7" %}
[Baixar técnicos](/milks-rota/tecnico/baixar-tecnicos)
{% endcontent-ref %}

##


# Enviar técnicos

Envia os registros de técnicos do ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeTecnico>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de agentes de coleta (motoristas)
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de agentes de coleta. Cada registro  pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do agente de coleta

| Campo       | Descrição                                                                                                                                                       | Tipo  | Obrigatório |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | ----------- |
| **codigo**  | Código do técnico                                                                                                                                               | Texto | SIM         |
| **nome**    | Nome do técnico                                                                                                                                                 | Texto | SIM         |
| rg          | Documento de identidade                                                                                                                                         | Texto | NÃO         |
| cpf         | Registro de pessoa física                                                                                                                                       | Texto | NÃO         |
| tipo        | <p>Tipo do técnico. </p><p><strong>P</strong> = Plataforma, </p><p><strong>C</strong> = Campo, </p><p><strong>L</strong> = Laboratório.</p>                     | Texto | NÃO         |
| telefone    | Telefone de contato                                                                                                                                             | Texto | NÃO         |
| email       | E-mail de contato do agente                                                                                                                                     | Texto | NÃO         |
| senha       | senha de acesso ao APP para caso de técnico de campo                                                                                                            | Texto | NÃO         |
| **deleted** | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Texto | SIM         |

{% hint style="info" %}
**codigo**: O campo código deverá ser preenchido com o mesmo código  já cadastrado no ERP, esta propriedade é utilizada para localizar os registros na base de dados da Plataforma Milk's e direcionar as operações CRUD.

A propriedade ***"deleted"*** é utilizada para comandar o processo de atualização, inclusão ou exclusão lógica do registro. Caso seu valor seja **"0" (zero)** e o registro não tenha sido encontrado, ele será criado. Se for encontrado, o valor será atualizado e se o valor for "**1" (um)**, o conteúdo será excluído logicamente da base de dados.&#x20;
{% endhint %}

## Exemplo de requisição

```javascript
{
    "conta_id": 9999,
    "token": "s0637r",
    "doc": "99.999.999/9999-90",
    "data": [
        {
            "codigo": "T-1010",
            "nome": "Tecnico_T1010",
            "tipo": "C",  // Campo
            "deleted": "0"
        },
        {
            "codigo": "T-1020",
            "nome": "Tecnico_T1020",
            "tipo": "P" // Plataforma
            "deleted": "0"
        },
        {
            "codigo": "T-1030",
            "nome": "Tecnico_T1030",
            "tipo":"L" // Laboratório
            "deleted": "0"
        },
        {
            "codigo": "T-1040",
            "nome": "",
            "tipo": "C"
            "deleted": "0"
        },
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "T-1040", // Código do agente não importado
            "error_message": "Nome inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar técnicos

Baixa os registros de técnicos cadastrados na Plataforma Milk's para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readTecnico>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "37180",
            "conta_id": "40001",
            "origin_id": null,
            "dt_pull": null,
            "dt_push": null,
            "nome": "Abraão Matos Silva",
            "rg": null,
            "cpf": null,
            "codigo": "909010",
            "dt_create": null,
            "dt_delete": null,
            "deleted": "0",
            "avatar": ,
            "email": "abraao.milksrota.com.br",
            "telefone": "31993778586",
            "imei": null,
            "senha": "123456",
            "bloqueado": "0",
            "dt_exclusao": null,
            "tipo": "C",
            "usuario_id": "131",
            "perfil_id": "105"
        }
 ],
    "monitor.time": 0.915009975433
}        
```

{% hint style="success" %}
Os registros de fazendas cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Veículo

Veículos de transporte utilizados na coleta diária.

Para enviar registros de veículos do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-MErnmTEGSC7CDwZkCpV" %}
[Enviar veículos](/milks-rota/veiculos/enviar-veiculos)
{% endcontent-ref %}

Para baixar registros de veículos da Plataforma Milk's para o ERP, utilize o endpoint abaixo:

{% content-ref url="/pages/-MErulI\_Od6pkQy8-uCQ" %}
[Baixar veículos](/milks-rota/veiculos/baixar-veiculos)
{% endcontent-ref %}


# Enviar veículos

Envia os registros de veículos cadastradas no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/writeVeiculo>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de veículos
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de veículos. Cada registro de veículo pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do veículo

<table data-header-hidden><thead><tr><th width="294">Campo</th><th>Descrição</th><th>Tipo</th><th>Obrigatório</th></tr></thead><tbody><tr><td>Campo</td><td>Descrição</td><td>Tipo</td><td>Obrigatório</td></tr><tr><td><strong>codigo</strong></td><td>Código do veículo</td><td>Texto</td><td>SIM</td></tr><tr><td><strong>placa</strong></td><td>placa de identificação</td><td>Texto</td><td>SIM</td></tr><tr><td>tipo</td><td>Identifica o veículo quanto a seu tipo: <strong>V -</strong> Veículo simples<strong>; R -</strong> Reboque (julieta)</td><td>Texto</td><td>NÃO</td></tr><tr><td>fabricante</td><td>Nome do fabricante do veículo</td><td>Texto</td><td>NÃO</td></tr><tr><td>modelo</td><td>Modelo do veículo</td><td>Texto</td><td>NÃO</td></tr><tr><td>cor</td><td>Cor predominante</td><td>Texto</td><td>NÃO</td></tr><tr><td>ano</td><td>Ano de fabricação/Modelo</td><td>Texto</td><td>NÃO</td></tr><tr><td>categoria_cnh</td><td>Categoria mínima de habilitação requerida para condução do veículo</td><td>Texto</td><td>NÃO</td></tr><tr><td>peso_bruto</td><td>Peso total do veículo</td><td>Decimal</td><td>NÃO</td></tr><tr><td>peso_liquido</td><td>Peso líquido do veículo</td><td>Decimal</td><td>NÃO</td></tr><tr><td>bloqueado</td><td><p>Indica se o registro deve ser bloqueado para atualizaçoes pela API: </p><p><strong>1 (um)</strong> - Sim;</p><p><strong>0 (zero)</strong> - Não.</p></td><td>Número</td><td>NÃO</td></tr><tr><td><strong>deleted</strong></td><td>Se o registro deve ser excluído. Se enviar o valor <strong>1</strong> ele será excluído caso já exista na plataforma. Se for enviado <strong>0</strong> ele será reativado na plataforma.</td><td>Texto</td><td>SIM</td></tr></tbody></table>

{% hint style="info" %}
**codigo**: O campo código deverá ser preenchido com o mesmo código  já cadastrado no ERP, esta propriedade é utilizada para localizar os registros na base de dados da Plataforma Milk's e direcionar as operações CRUD.

A propriedade ***"deleted"*** é utilizada para comandar o processo de atualização, inclusão ou exclusão lógica do registro. Caso seu valor seja **"0" (zero)** e o registro não tenha sido encontrado, ele será criado. Se for encontrado, o valor será atualizado e se o valor for "**1" (um)**, o conteúdo será excluído logicamente da base de dados.&#x20;
{% endhint %}

### Exemplo de requisição

```javascript
{
    "conta_id": "99999",
    "token": "b66c-78f2-fd62-e931",
    "doc": "99.999.999/9999-99",
    "data": [
        {
            "codigo": "5",
            "placa": "OPA-4421",
            "tipo": "V",
            "pesoBruto": "3100",
            "pesoLiquido": "17100",
            "capacidade": "14000",
            "deleted": "1"
        },
        {
            "codigo": "6",
            "placa": "AYJ-4801",
            "tipo": "V",
            "pesoBruto": "",
            "pesoLiquido": "",
            "capacidade": "",
            "deleted": "1"
        },
        {
            "codigo": "",
            "placa": "BCM-6572",
            "tipo": "V",
            "pesoBruto": "",
            "pesoLiquido": "",
            "capacidade": "",
            "deleted": "0"
        }
    ]
}        
```

## Resposta

### 200: Registros importados

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "", // Código do veículo não importada
            "error_message": "código inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada&#x20;

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar veículos

Baixa os registros de veículos cadastrados na Plataforma Milk's para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readVeiculo>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "conta_id": "99999",
    "token": "b66c-78f2-fd62-e931",
    "data": [
        {
            "codigo": "5",
            "placa": "OPA-4421",
            "tipo": "V",
            "pesoBruto": "3100",
            "pesoLiquido": "17100",
            "capacidade": "14000",
            "deleted": "1"
        },
        {
            "codigo": "6",
            "placa": "AYJ-4801",
            "tipo": "V",
            "pesoBruto": "",
            "pesoLiquido": "",
            "capacidade": "",
            "deleted": "1"
        }
    ],
    "monitor.time": 1.23757100105
}        
```

{% hint style="success" %}
Os registros dos veículos cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Viagens

Representam o agrupamento dos registros de trabalho de um agente de coleta em uma linha (itinerário) específico, desde a sua saída até o momento da descarga do veículo na plataforma.

Os registros de viagens são gerados pelo aplicativo coletor ***"Milk's Rota"*** e não podem ser inseridos diretamente pela API, desta forma, apenas os métodos de leitura serão descritos nesta documentação.

&#x20;Para baixar os registros de viagem enviados a Plataforma Milks, utilize um dos endpoints abaixo:

{% content-ref url="/pages/-MF7knakDRj2evXFXRI9" %}
[Baixar viagem](/milks-rota/viagens/baixar-viagem)
{% endcontent-ref %}

{% content-ref url="/pages/-MF7nhn6jVs0l2RyC5xF" %}
[Resumo de viagem](/milks-rota/viagens/resumo-de-viagem)
{% endcontent-ref %}

{% content-ref url="/pages/SJE0JKnxDIH2IvhWXwTo" %}
[Atualizar coleta](/milks-rota/viagens/atualizar-coleta)
{% endcontent-ref %}

{% content-ref url="/pages/-MI4GVWlg7pzHJ1NNX-R" %}
[Baixar coletas](/milks-rota/viagens/baixar-coletas)
{% endcontent-ref %}

{% content-ref url="/pages/-MI4N9VQwGcai3t5Tww\_" %}
[Resumo de coleta](/milks-rota/viagens/resumo-de-coleta)
{% endcontent-ref %}

{% content-ref url="/pages/-MI4cPYqPVfh3\_9WbKTV" %}
[Coleta real](/milks-rota/viagens/coleta-real)
{% endcontent-ref %}

{% content-ref url="/pages/-MI5XIoLtmyvqPoTjBFW" %}
[Baixar descarga](/milks-rota/viagens/baixar-descarga)
{% endcontent-ref %}


# Baixar viagem

Baixa os registros de uma viagem específica da Plataforma Milks para o ERP.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readViagem>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.999.999/9999-99 ,
    "dt_inicio": "2020-08-19",
    "dt_fim": "2020-08-21"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.

**dt\_inicio:** Data inicial do período que se deseja consultar as viagens finalizadas.

**dt\_fim:** Data final do período que se deseja consultar as viagens finalizadas.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "213858", // Chave Primária e identificador da viagem
            "veiculo_id": "1334", 
            "coletor_id": "1933",
            "linha_id": "2679",
            "rota_id": "211",
            "conta_id": "40001", // Identificador da conta
            "dt_fechamento": "2020-07-20 09:18:21", // Fim viagem
            "dt_push": null,
            "dt_abertura": "2020-07-20 09:08:59", // Inicio viagem
            "km_inicial": "1",  // Km inicio da viagem
            "km_final": "2",    // Km final da viagem
            "km_distancia": "1", // Distância percorrida
            "km_justificativa": null,// Justificativa km na viagem
            "descarregada": null, // Viagem descarregada = 1
            "dt_descarga": null, // Data da descarga
            "liberada": "0", // Viagem liberada pelo operarod
            "dt_liberacao": null, // Data da liberação da viagem
            "tecnico_id": null,
            "coletado": null,  // Volume total coletado
            "descarregado": null, // Volume total descarregado
            "diferenca": null,  // Diferença (atesto)
            "removida": "0",  // viagem removida 
            "token": "40001.2788.200720-0908", 
            "app_version": "0.91.0", // Versão do app coletor
            "dispositivo_id": null, 
            "foto_km_inicial": null,
            "foto_km_final": null,
            "programacao": null, // Numero da programação (ERP) 
            "distancia_mt": "0", // distância rastreada
            "velocidade_media_mt": "0", 
            "velocidade_maxima_mt": "0", 
            "tracker_unique_id": null, // não utilizado
            "km_valor": null, // não utilizado
            "dt_criacao": null,
            "dt_atualizacao": "2020-07-20 14:46:11",
            "dt_exclusao": null,
            "rastreada": "1",  // Viagem rastreada 1 = sim 
            "dt_data": "2020-07-18 18:41:06", // Data base dados app coletor
            "codigo_programacao": "undefined",
            "dt_sincronizacao": null, // Data sincronização com ERP
            "android_boots": "0", // Vezes em que o celular foi reiniciado na viagem
            "rota": "001",  // Rota no ERP
            "veiculo": "00005", // Veiculo no ERP
            "linha": "0033", // Linha no ERP
            "coletor": "000386", // Motorista no ERP
            "comunitario_pendente": false, // Pendencia de distribuicao de tanque coletivo
            "bocas": 0, // Compartimento onde o leite foi armazenado
            "tanques": 0 // Numero de tanque coletados
        },
    ],
    "monitor.time": 0.10523581504822
}
```

{% hint style="success" %}
Os registros de viagens cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar viagem: TOTVS Datasul

Baixa os registros de viagens no formato adequado para integração com ERP TOTVS Datasul

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readViagemDatasul>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.999.999/9999-99 ,
    "dt_inicio": "2024-10-01",
    "dt_fim": "2024-10-01"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.

**dt\_inicio:** Data inicial do período que se deseja consultar as viagens finalizadas.

**dt\_fim:** Data final do período que se deseja consultar as viagens finalizadas.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "data": [
        {
            "registro": "1", 
            "carga": "1333178",
            "estabelecimento": "306",
            "linha": 15,
            "transportador": "FLAVIO HENRIQUE DA SILVA",
            "codigo_transportador": "25832",
            "codigo_veiculo": "03",
            "placa_veiculo": "RHH1A89",
            "uf_placa": "MG",
            "hodometro_inicial": "347533000",
            "hodometro_final": "347848000",
            "item": "01.001.0001",
            "referencia": "",
            "peso_bruto": "",
            "densidade": "",
            "dt_transacao": "01/10/2024",
            "comportimentos": "4",
            "coletas": [ // Lista de coletas
                {
                    "registro": "2",
                    "carga": "1333178",
                    "produtor": "1038",
                    "ponto_coleta": "103801",
                    "quantidade_coletada": 4570000,
                    "compartimento": "2",
                    "temperatura": 17000,
                    "observacoes": "",
                    "repositorio": 1,
                    "amostra": "1",
                    "contraprova": "246495",
                    "propriedade": "F-1038",
                    "motivo_nao_coleta": "",
                    "medida_da_regua": 463000,
                    "dt_coleta": "01/10/2024",
                    "hr_coleta": "065528"
                }
            ],
            "descarga": {
                "dt_descarga": "02/10/2024",
                "hr_descarga": "052004",
                "carga": "1333178",
                "qtd_coletado": "16501",
                "qtd_armazenado": "16502",
                "peso_entrada": null,
                "peso_saida": null,
                "ticket": null,
                "medidor_vazao": null,
                "densidade": null,
                "atesto": 1
            }
        }          
    ],
    "monitor.time": 11.982661008835,
    "server.date": "2024-10-02 15:40:16"
}
```

{% hint style="success" %}
Os registros de viagens cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Resumo de viagem

Baixar o registro resumido das viagens finalizadas em um período e cadastradas na Plataforma Milks.

{% hint style="info" %}
Este método retorna os registros de viagens com a associação entre os registros das tabelas envolvidas  e o resumo geral de totalização de volume, distância percorrida, distância rastreada,  dados da descarga entre outros.\
**Exemplo:**  No lugar do  identificador do agente de coleta que realizou a viagem, retorna o código e o nome deste agente, relacionado com o registro no ERP.
{% endhint %}

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readResumoViagem>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.999.999/9999-99 ,
    "dt_inicio": "2020-08-09 00:00:01",
    "dt_fim": "2020-08-09 23:59:59"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.

**dt\_inicio:** Data inicial do período que se deseja consultar as viagens finalizadas.

**dt\_fim:** Data final do período que se deseja consultar as viagens finalizadas.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "218663", // Identificador da vaigem
            "dt_abertura": "2020-08-09 07:31:08", // Inicio viagem
            "dt_fechamento": "2020-08-09 10:30:46", // Fim viagem
            "dt_liberacao": null, // Data liberação
            "km_inicial": "291800", 
            "km_final": "291884",
            "km_distancia": "84",
            "programacao": "0",
            "codigo_programacao": "0",
            "dt_sincronizacao": "2020-08-18 11:58:00",
            "descarregada": 0,
            "rastreada": "0",
            "km_rastreado": 0,
            "veiculo_placa": "KXM5I42",
            "veiculo_codigo": "V-001",
            "linha_codigo": "28",
            "linha_nome": "BARREIRO",
            "linha_id": "7008",
            "km_adicional": null,
            "rota_codigo": "5",
            "rota_nome": "USINA QUELUZ",
            "tipo_descarga": "TP",
            "coletor_codigo": "004",
            "coletor_nome": "CLEBER SOARES DOS SANTOS",
            "tecnico_codigo": null,
            "tecnico_nome": null,
            "coletas_realizadas": "2",
            "coletas_canceladas": "22",
            "coletas_pendentes": 20,
            "volume_coletado": "4926",
            "volume_descartado": 0,
            "volume_aferido": null,
            "atesto": -4926,
            "completa": "0"
        },
        {
            "id": "218666",
            "dt_abertura": "2020-08-09 04:43:58",
            "dt_fechamento": "2020-08-09 10:38:44",
            "dt_liberacao": null,
            "km_inicial": "410240",
            "km_final": "410345",
            "km_distancia": "105",
            "programacao": "0",
            "codigo_programacao": "0",
            "dt_sincronizacao": "2020-08-18 11:58:00",
            "descarregada": 0,
            "rastreada": "0",
            "km_rastreado": 0,
            "veiculo_placa": "LQS5J40",
            "veiculo_codigo": "V-011",
            "linha_codigo": "27",
            "linha_nome": "SERTAO VELHO/LORENA",
            "linha_id": "5762",
            "km_adicional": null,
            "rota_codigo": "5",
            "rota_nome": "USINA QUELUZ",
            "tipo_descarga": "TP",
            "coletor_codigo": "012",
            "coletor_nome": "JOSE LUIZ DE ANDRADE CARDOSO",
            "tecnico_codigo": null,
            "tecnico_nome": null,
            "coletas_realizadas": "0",
            "coletas_canceladas": "58",
            "coletas_pendentes": 52,
            "volume_coletado": null,
            "volume_descartado": 0,
            "volume_aferido": null,
            "atesto": 0,
            "completa": "0"
        }
    ],
    "monitor.time": 0.10523581504822
}
```

{% hint style="success" %}
Os registros de viagens cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Atualizar coleta

Método permite manipular registro(s) de coleta(s) de uma determinada viagem. Suporta operações de alteração, inclusão e exclusão.

{% hint style="info" %}

## Método POST

<http://app.milksrota.com.br/api/retaguardasync/writeColeta>
{% endhint %}

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": 999999,
    "token": "sxert0637r",
    "doc": "99.999.999/0009-90",
    "data": []
}

```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de coletas. Cada registro de coleta pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades da coleta

| Campo          | Descrição                                                                                    | Tipo           | Obrigatório                     |
| -------------- | -------------------------------------------------------------------------------------------- | -------------- | ------------------------------- |
| **viagem\_id** | identificador único da viagem registrado na plataforma Milk's.                               | Número Inteiro | Sim                             |
| **coleta\_id** | Identificador único do registro de coleta                                                    | Número Inteiro | Sim, para operação de alteração |
| **volume**     | Volume total que substituirá ou comporá o registro da coleta                                 | Número inteiro | Sim                             |
| **produtor**   | código do produtor comum ao sistema ERP e a Plataforma Milk's                                | Texto          | Sim                             |
| **fazenda**    | código do fazenda comum ao sistema ERP e a Plataforma Milk's                                 | Texto          | Sim                             |
| **tanque**     | código do tanque comum ao sistema ERP e a Plataforma Milk's                                  | Texto          | Não                             |
| **deleted**    | Indicador de operação: (0) - Indica inclusão ou alteração, (1) - indica exclusão do registro | Número         | Sim                             |

### Exemplo de requisição

```javascript
{
    "conta_id": 999999,
    "token": "sxert0637r",
    "doc": "99.999.999/0009-90",
    "data": [
        {
            "viagem_id": "1234567",            
            "coleta_id": "", 
            "volume": "999",
            "produtor": "000999",
            "fazenda": "F999",
            "tanque": "T999",
            "deleted": "0"
        }
    ]
}
```

## Resposta

### 200: Registros importados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        "26454591": {
            "success": true,
            "coleta_id": "26454591", // Id da coleta alterada ou insrida 
            "visita_id": "18774601", // Id da visita alterada ou inserida
            "armazenamento_id": "20538290", // Id do armazenamento
            "monitoramentoVisita_id": "21027684" // Id do monitoramento
        }
    ],
    "monitor.time": 7.025467872619629, // Tempo de execução
    "server.date": "2024-07-19 17:09:41"
}
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados ou alterados sem erro.
{% endhint %}

### 200: Processados com falhas

```javascript
{
    "succes": false,
    "message": "OK",
    "data": [1234567 // Falhas de importação
        {
            "Produtor 000999": "Não encontrado", // Código do produtor não localizado
            "Viagem 1234567": "Viagem não localizada", // Identificado da viagem não localizado
            
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e processados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada&#x20;

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar coletas

Recuperar os registros de coleta realizadas em um determinado período.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readColeta>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": 99999,
    "token": "afbd-b926-8b33-b771",
    "doc": 99.999.999/9999-99
    "dt_inicio": "2020-09-03",
    "dt_fim": "2020-09-03",
    "comunitario": "0",
    "forca_sincronizadas": "1" 
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.

**dt\_inicio:** Data inicial do período que se deseja consultar as viagens finalizadas.

**dt\_fim:** Data final do período que se deseja consultar as viagens finalizadas.

**comunitario**: Tipo de coleta retornada. \[-1: retorna apenas coletas em tanques individuais; 0 = Retorna todas as coletas individuais e as principais dos tanques comunitários; 1 = retorna apenas as distribuições]

**forca\_sincronizadas**: Se devem ser retornados os registros das coletas em viagens já integradas pelo ERP;
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "2474217",
            "parada_id": "1695623",
            "coletor_id": "1813",
            "tanque_id": "61229",
            "produtor_id": null,
            "conta_id": null,
            "dt_push": null,
            "quantidade": "3070",
            "dt_coleta": "2019-11-03 06:26:25",
            "coletada": "1",
            "alizarol": "1",
            "tipo_alizarol": null,
            "temperatura": "4.00",
            "dt_edicao": null,
            "regua": "100.50",
            "amostra": "",
            "contraprova": "",
            "comunitaria": "0",
            "vinculada": "0",
            "diferenca": "0",
            "distribuida": "1",
            "informado": "0",
            "latitude": null,
            "longitude": null,
            "exame_visual": null,
            "fora_da_linha": "0",
            "fora_da_media": "0",
            "dt_exclusao": null,
            "usuario_id": null,
            "dt_atualizacao": null,
            "tanque": "4117-01/1",
            "tipo_leite": "V",
            "fazenda": "35251999",
            "viagem_id": "149061",
            "coletor": "322", // Referência ao código no ERP do cliente
            "produtor": "4117",                  
            "rota": "105",  
            "linha": "00120",
            "veiculo": "PUJ4267",
            "dt_sincronizacao": null,
            "descarregada": null,
            "motivo_cancelamento": null,
            "codigo_cancelamento": null,
            "boca": "2",
            "armazenamentos": "3070"
        },
    ],
    "monitor.time": 0.10523581504822
}
```

{% hint style="success" %}
Os registros de coleta cadastrados no período foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar visitas

Retorna a relação de visitas registradas nas coletas de uma conta em um determinado período.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readVisita>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": 99999,
    "token": "afbd-b926-8b33-b771",
    "doc": 99.999.999/9999-99
    "dt_inicio": "2020-09-03",
    "dt_fim": "2020-09-03"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.

**dt\_inicio:** Data inicial do período que se deseja consultar as visitas.

**dt\_fim:** Data final do período que se deseja consultar as visitas.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "20820925",
            "viagem_id": "1406900",
            "itinerario_id": null,
            "conta_id": null,
            "dt_push": null,
            "dt_inicio": "2025-02-01 11:36:46",
            "dt_fim": "2025-02-01 11:39:26",
            "motivo": null,
            "cancelado": "0",
            "total_coleta": "5125",
            "rota_id": "92234",
            "linha_id": "507461",
            "fazenda_id": "38691227",
            "dt_exclusao": null,
            "token": "884729d3cc7e1da646f0bfd6f6a9d5fc",
            "tipo_coleta": "I",
            "tipo_lancamento": "U",
            "diferenca_atesto": "0",
            "viagem_origem_id": null,
            "rota": "1",
            "linha": "11",
            "fazenda": "3648"
        },

     ],
    "monitor.time": 0.10523581504822
}
```

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar visitas de uma viagem

Retorna a relação de visitas registradas nas coletas de uma conta em um determinado período.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readVisitaViagem>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": 99999,
    "token": "afbd-b926-8b33-b771",
    "doc": 99.999.999/9999-99
    "viagem_id": 123123123,
    "cancelado": "0"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.

**viagem\_id:** Identificador único da viagem objetivo pelos endpoints de recuperação de viagens

**cancelado:** Se a API deve retornar as visitas que foram canceladas, enviar o valor **"1"**. Se apenas visitas que não foram canceladas, enviar o valor **"0"**
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "20972971",
            "viagem_id": "1419810",
            "itinerario_id": null,
            "conta_id": null,
            "dt_push": null,
            "dt_inicio": "2025-02-21 23:57:50",
            "dt_fim": "2025-02-21 23:57:50",
            "motivo": "MUDANÇA DE LINHA",
            "cancelado": "1",
            "total_coleta": "0",
            "rota_id": "94651",
            "linha_id": "459331",
            "fazenda_id": "36752118",
            "dt_exclusao": null,
            "token": "6506b5e0942c5634a9cd559626bf44d7",
            "tipo_coleta": null,
            "tipo_lancamento": null,
            "diferenca_atesto": "0",
            "viagem_origem_id": null,
            "rota": "19061",
            "nomerota": "TRANSPORTADORA XYZ",
            "linha": "8",
            "nomelinha": "MARIANA",
            "fazenda": "148",
            "nomefazenda": "FAZENDA GOTAS",
            "inicio": "2025-02-21 23:57:50",
            "fim": "2025-02-21 23:57:50"
        }
    ],
    "monitor.time": 0.714468955994,
    "server.date": "2025-02-24 13:40:29"
}
```

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Resumo de coleta

Recupera o resumo integrado de registros de coletas e seus respectivos vínculos com produtor, ponto de coleta, agente e veículo, para uma determinada viagem.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readResumoColeta>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": 999999,
    "token": "afbd-b926-8b33-b771",
    "doc": "99.999.999/9999-99",
    "viagem_id": "151697",
    "comunitario": "0",
    "liberada": 0
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.

**comunitario:** Filtro para retorno de coletas em tanques coletivos : (0) - somente a coleta principal, (1) - somente as distribuições de cada produtor, (-1) - não devolve os registros de coletas em tanques coletivos ou comunitários.

**viagem\_id:** Identificador único da viagem para a qual se deseja consultar os registros de coleta.

**liberada:** Filtro para retorno de coletas com pendências de distribuição em tanque coletivos:  (0) - Não retorna coletas sem distribuição, (1) retorna coletas mesmo com pendências de distribuição
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "2519334",
            "dt_push": null,
            "parada_id": "1728551",
            "coletor_id": "1924",
            "tanque_id": "45604",
            "produtor_id": null,
            "viagem": "151697",
            "dt_coleta": "2019-11-12 08:01:04",
            "CodigoFazenda": "21017336",
            "NomeFazenda": "SITIO ARCANJO RAPHAEL",
            "CodigoFazendaVinculada": null,
            "NomeFazendaVinculada": null,
            "CodigoProdutor": "2795",
            "Produtor": "TELMO ALVES JUSTO",
            "Tanque": "2795-01/1",
            "quantidade": "124",
            "informado": "0",
            "regua": "7.20",
            "alizarol": "1", // (1) aprovado - (0) Reprovado
            "amostra": "",
            "contraprova": "",
            "temperatura": "3.60",
            "coletada": "1", // (1) Coleta realizada - (0) Não coletado
            "CodigoLinha": "00111",
            "NomeLinha": "MR - SÃO MARTINS",
            "CodigoRota": "105",
            "Rota": "LPA MURIAE",
            "Veiculo": "LBR4483",
            "CodigoMotorista": "268/03",
            "NomeMotorista": "JOSE OTAVIANO DA COSTA SIMOES - ME(HJC-2751)",
            "dt_edicao": null,
            "OrigemProducao": "21017336",
            "filial": null,
            "tipo_leite": "V",
            "motivo_cancelamento": null,
            "codigo_cancelamento": null,
            "OrigemLinha": "00111",
            "bocas": "2", // Código do compartimento no tanque do veículo - (1) frente, (2) meio, (3) fundo
            "armazenamentos": "124"
        },    
    ],
    "monitor.time": 0.10523581504822
}
```

{% hint style="success" %}
Os registros de coleta da viagem foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Coleta real

Recupera os registros de coletas realizadas em um período, sem que sejam feitas referências a pendências de distribuição em tanques coletivos ou vinculo direto com   viagens específicas.

{% hint style="danger" %}
O tratamento de pendências de distribuição e demais validações ficam a cargo do processo de integração implementado pelo ERP do cliente.&#x20;
{% endhint %}

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readColetaReal>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": 99999,
    "token": "afbd-b926-8b33-b771",
    "doc": 99.999.999/9999-99
    "dt_inicio": "2020-09-03",
    "dt_fim": "2020-09-03"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.

**dt\_inicio:** Data inicial do período que se deseja consultar as coletas.

**dt\_fim:** Data final do período que se deseja consultar as coletas.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "2474217",
            "parada_id": "1695623",
            "coletor_id": "1813",
            "tanque_id": "61229",
            "produtor_id": null,
            "conta_id": null,
            "dt_push": null,
            "quantidade": "3070",  // volume registrado pelo agente de coleta
            "dt_coleta": "2019-11-03 06:26:25",
            "coletada": "1",
            "alizarol": "1",
            "tipo_alizarol": null,
            "temperatura": "4.00",
            "dt_edicao": null,
            "regua": "100.50",
            "amostra": "",
            "contraprova": "",
            "comunitaria": "0",
            "vinculada": "0",
            "diferenca": "0",
            "distribuida": "1",
            "informado": "0",
            "latitude": null,
            "longitude": null,
            "exame_visual": null,
            "fora_da_linha": "0",
            "fora_da_media": "0",
            "dt_exclusao": null,
            "usuario_id": null,
            "dt_atualizacao": null,
            "tanque": "4117-01/1",
            "tipo_leite": "V",
            "fazenda": "35251999",
            "viagem_id": "149061",
            "coletor": "322",
            "produtor": "4117",
            "rota": "105",
            "linha": "00120",
            "veiculo": "PUJ4267",
            "coletivo": "0",
            "boca": "2",
            "armazenamentos": "3070"
        },
    ],
    "monitor.time": 0.10523581504822
}
```

{% hint style="success" %}
Os registros de coleta cadastrados no período foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Enviar descarga

Registra o procedimento de descarga na plataforma de recepção.

## Método POST

{% embed url="<http://app.milksrota.com.br/api/retaguardasync/writeDescarga>" %}

### Requisição:

```
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": {
        "descargas": [           
             {
                "tipo": "P",  // Pesagem
                "inicio_descarga": "13-02-2022 00:00:35",
                "fim_descarga": "13-02-2022 00:55:35",
                "viagem": "99999",
                "tecnico": "001",
                "densidade": "1,032",
                "peso_entrada": "12.895,500",
                "peso_saida": "8.589,700",
                "volume_pesagem": "4.443,58",
                "medidor": "Nota a respeito do medidor utilizado",
                "parecer": "Observações a respeito da descarga",
                "armazenamento": [
                    {
                        "deposito": "GRP2121/3",
                        "volume": 400
                    },
                    {
                        "deposito": "VIG-002",
                        "volume": 4000
                    }
                  ]
              }
        ]
    }
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de descargas. Cada registro de descarga pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades da tabela descarga

| Campo               | Descrição                                                                                                                                                      |   Tipo   |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: |
| **\*tipo**          | Identifica o descarga quanto a seu tipo: **V -** Volumetri&#x61;**; P -** Pesagem                                                                              |   Texto  |
| inicio\_descarga    | Data e hora de início do procedimento de descarga no formato (AAAA-MM-DD hh:mm:ss)                                                                             |   Texto  |
| fim\_descarga       | Data e hora de início do procedimento de descarga no formato (AAAA-MM-DD hh:mm:ss)                                                                             |   Texto  |
| **\*viagem**        | Identificador único da viagem, gerado pela plataforma Milk's.                                                                                                  | Numérico |
| **\*técnico**       | Código do técnico responsável pela descarga                                                                                                                    |   Texto  |
| medidor             | Informações e identificação do medidor utilizado no processo de descarga                                                                                       |   Texto  |
| parecer             | Observações sobre o processo de descarga                                                                                                                       |   Texto  |
| densidade           | Densidade registrada para considerar a conversão peso/volume - **Utilizado somente em caso de descargas por pesagem**                                          |  Decimal |
| peso\_entrada       | Peso de entrada do veículo, quando carregado: **Utilizado somente em caso de descargas por pesagem**                                                           |  Decimal |
| peso\_saida         | Peso líquido de saída do veículo: **Utilizado somente em caso de descargas por pesagem**                                                                       |  Decimal |
| volume\_pesagem     | Volume final calculado : **Utilizado somente em caso de descargas por pesagem**                                                                                |  Decimal |
| **qtd\_armazenado** | Volume total armazenado : **Utilizado somente em caso de descargas por volumetria**                                                                            |   Float  |
| **\*armazenamento** | <mark style="color:red;background-color:yellow;">Objeto que representa os balões ou silos de destino do produto descarregado e seus respectivos volumes</mark> |   Array  |

#### Propriedades do array de armazenamento

| Campo        | Descrição                                                                                                         | Tipo           |
| ------------ | ----------------------------------------------------------------------------------------------------------------- | -------------- |
| **deposito** | <p>Código do depósito, cadastrado na plataforma Milk's<br><a href="/pages/-MEeAYc4Ui2iS-iFg8EJ">Veja aqui</a></p> | Texto          |
| **volume**   | Volume total armazenado no balão ou silo de destino.                                                              | Número inteiro |

### Exemplo de requisição

```
{
    "conta_id": 9999,
    "token": "sccv-tyu0-poy7-5678",
    "doc": "99.999.999/9999-99",
    "data": {
        "descargas": [           
            {
                "tipo": "V",
                "inicio_descarga": "13-02-2022 00:00:35",
                "fim_descarga": "13-02-2022 00:55:35",
                "viagem": "759260",
                "tecnico": "001",
                "medidor": "Nota a respeito do medidor utilizado",
                "parecer": "Observações a respeito da descarga",
                "armazenamento": [
                    {
                        "deposito": "GRP2121/3",
                        "volume": 15100
                    }
                ]
            }            
        ]
    }
}
```

## Resposta

### 200: Registros importados

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "viagem":89776"
            "tecnico": "", // Código do técnico não localizado
            "error_message": "Técnico inválido", // mensagem de erro
            "error_code": 40003 // código do erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada&#x20;

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar descarga

Recupera os registros de armazenamento dos volumes coletados em uma viagem, nos balões ou silos da plataforma de descarga.

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readDescarga>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.999.999/9999-99 ,
    "dt_inicio": "2020-09-25",
    "dt_fim": "2020-09-25"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.

**dt\_inicio:** Data inicial do período que se deseja consultar as descargas.&#x20;

**dt\_fim:** Data final do período que se deseja consultar as descarga.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "477200",
            "viagem_id": "1493869",
            "tanque_id": null,
            "coletor_id": null,
            "produtor_id": null,
            "supervisor_id": null,
            "balao_id": null,
            "pesagem_inicial_id": null,
            "pesagem_final_id": null,
            "conta_id": "DDDDD",
            "dt_push": null,
            "qtd_coletado": "10215",
            "qtd_armazenado": "10184",
            "peso_coletado": null,
            "peso_armazenado": null,
            "dt_descarga": "2025-06-20 12:58:58",
            "origem_cancelamento": null,
            "motivo_cancelamento": null,
            "cancelada": null,
            "foto_ticket": null,
            "tecnico_id": null,
            "status": null,
            "medidor_vazao": null,
            "densidade": "99.9999",
            "peso_entrada": null,
            "peso_saida": null,
            "volume_pesagem": null,
            "temperatura_boca_1": "0.000",
            "temperatura_boca_2": "0.000",
            "temperatura_boca_3": "0.000",
            "temperatura_boca_4": null,
            "lacre_boca_1": "0",
            "lacre_boca_2": "0",
            "lacre_boca_3": "0",
            "lacre_boca_4": null,
            "observacao": null,
            "higiene_agente": "0",
            "higiene_veiculo": "0",
            "codigo": null,
            "dt_inicio": "2025-06-19 09:50:00",
            "dt_fim": "2025-06-19 13:15:00",
            "inicio_cip": null,
            "fim_cip": null,
            "tipo": "V",
            "vazamento_veiculo": "0",
            "cip_acidez_temperatura": null,
            "cip_alcalina_temperatura": null,
            "cip_acidez_inicio": null,
            "cip_acidez_fim": null,
            "cip_alcalina_inicio": null,
            "cip_alcalina_fim": null,
            "usuario_id": "1849",
            "dt_atualizacao": "2025-06-20 12:58:58",
            "motivo_edicao": "CORRECAO DE VOLUME",
            "dt_validacao": null,
            "nota_supervisor": null,
            "ticket": "28787",
            "diferenca_atesto_laticinio": null,
            "diferenca_atesto_transportador": null,
            "diferenca_atesto_produtor": null,
            "diferenca_atesto_plataforma": null,
            "transportadora_diferenca_id": null,
            "tem_pendencia_atesto": "0",
            "pendencia_atesto": null,
            "resolucao_pendencia_atesto": null,
            "dt_resolucao_pendencia_atesto": null,
            "tanque_veiculo": null,
            "balao": null,
            "produtor": null,
            "coletor": null,
            "tecnico": null,
            "nomeTecnico": null,
            "inicio_viagem": "2025-06-18 07:02:06",
            "final_viagem": "2025-06-19 08:56:23",
            "temperatura_compartimento_dianteiro": "0.000",
            "numero_lacre_dianteiro": "0",
            "temperatura_compartimento_central": "0.000",
            "numero_lacre_central": "0",
            "temperatura_compartimento_traseiro": "0.000",
            "numero_lacre_traseiro": "0",
            "armazenamentos": [
                {
                    "id": "23805246",
                    "conta_id": null,
                    "descarga_id": "477200",
                    "viagem_id": "1493869",
                    "tanque_id": "833348",
                    "tanque": "001",
                    "tipo": "P",
                    "quantidade": "10184",
                    "dt_armazenamento": "2025-06-20 11:52:22",
                    "inicio_descarga": "2025-06-19 09:50:00",
                    "fim_descarga": "2025-06-19 13:15:00"
                }
            ]
        }
    ]
}
```

{% hint style="success" %}
Os registros de descarga cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar eventos coleta

Recupera os eventos com intervalos de coleta e deslocamentos nas viagens

## Método POST

<http://app.milksrota.com.br/api/retaguardasync/readEventosColeta>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.999.999/9999-99 ,
    "viagem_id": "1234567"
    
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela *"sua conta"* no menu principal do painel Milk's Rota.

**viagem\_id:** Identificador único da viagem para a qual se deseja consultar os registros de eventos.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "viagem": "999999",
            "abertura": "2025-03-11 10:13:34",
            "deslocamentoInicial": "000:00:24:53",
            "tipo": "Abertura"
        },
        {
            "fazenda": "149",
            "nome": "FAZENDA JOÃO COMUNITARIO)",
            "inicioColeta": "2025-03-11 10:38:27",
            "fimColeta": "2025-03-11 10:42:42",
            "duracao": "000:00:04:15:",
            "volume": "1306",
            "latitude": "-6.9926491",
            "longitude": "-38.0610632",
            "tipo": "Parada"
        },
        {
            "inicioDeslocamento": "2025-03-11 10:42:42",
            "fimDeslocamento": "2025-03-11 11:32:29",
            "duracao": "000:00:49:00:",
            "tipo": "Deslocamento"
        },
        {
            "fazenda": "90",
            "nome": "ADSFG - NOME FAZENDA",
            "inicioColeta": "2025-03-11 11:32:29",
            "fimColeta": "2025-03-11 11:35:44",
            "duracao": "000:00:03:15:",
            "volume": "296",
            "latitude": "-7.0477665",
            "longitude": "-37.969505",
            "tipo": "Parada"
        },
        {
            "inicioDeslocamento": "2025-03-11 11:35:44",
            "fimDeslocamento": "2025-03-11 11:57:14",
            "duracao": "000:00:21:00:",
            "tipo": "Deslocamento"
        },
        {
            "fazenda": "46",
            "nome": "POSTO 04",
            "inicioColeta": "2025-03-11 11:57:14",
            "fimColeta": "2025-03-11 12:01:28",
            "duracao": "000:00:04:14:",
            "volume": "2127",
            "latitude": "-7.1544467",
            "longitude": "-37.9804983",
            "tipo": "Parada"
        },
        {
            "viagem": "1430807",
            "fechamento": "2025-03-11 17:29:54",
            "deslocamentoFinal": "000:00:00:27:",
            "tipo": "Fechamento"
        }
    ],
    "monitor.time": 0.095468997955322,
    "server.date": "2025-03-11 18:17:50"
}

```

{% hint style="warning" %}
**A Duração do evento está formatada como "dias:horas:minutos:segundos" - "DDD:HH:MM:SS"**
{% endhint %}

{% hint style="success" %}
Os registros de eventos e deslocamentos cadastradas na plataforma Milk's foram retornados com sucesso.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Métodos auxiliares

Métodos  da API para suporte a operações complementares e controle de operacional.

{% content-ref url="/pages/-MQDoaU\_sHaPQyBcGQDx" %}
[Status do integrador](/milks-rota/metodos-auxiliares/status-do-integrador)
{% endcontent-ref %}

{% content-ref url="/pages/-MUnMtAIBwIvylRSZ4tZ" %}
[Status viagem](/milks-rota/metodos-auxiliares/status-viagem)
{% endcontent-ref %}


# Status do integrador

Provê meio de informação de status de atividade do serviço de integração entre a plataforma Milk's e o sistema ERP do cliente

{% hint style="info" %}
Recomenda-se que o sistema ERP envie um "heartbit" a cada minuto, fazendo uma consulta a este método e desta forma a plataforma exibirá o status de atividade do serviço integrador, mostrando que o mesmo está **ativo (em operação)**.&#x20;

Caso a API não receba a solicitação por um tempo superior a 5 (cinco) minutos, apresentará o status de **inatividade** do serviço de integração e poderá notificar um observador por e-mail.
{% endhint %}

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/checkSincronizacao>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "989898", 
    "token": "s063-7r55-uio2-hgtx", 
    "doc": "10.297.990/0001-90" 
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.
{% endhint %}

## Resposta

### 200: Consulta realizada

```javascript
{
    "success": true,
    "data": "T",
    "monitor.time": 0.978130102158
}
```

{% hint style="success" %}
A consulta de status obteve êxito e retornou o comando solicitado pelo usuário do ERP, requerendo uma determinada ação de integração.
{% endhint %}

#### Tabela de domínio do atributo "data" retornado no método

| Solicitação            | valor | domínio                                                                                                                               |
| ---------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Sincronizar todos      | "T    | Ao receber este parâmetro, o sistema ERP deve enviar os registros de **cadastros e consultar as viagens** pendentes de sincronização. |
| Sincronizar cadastro   | "C    | Ao receber este parâmetro, o sistema ERP deve enviar **apenas** os registros de **cadastros**                                         |
| Sincronizar  movimento | "M    | Ao receber este parâmetro, o sistema ERP deve **consultar as viagens** pendentes de sincronização.                                    |

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Parâmetros do integrador

Recupera os parâmetros gerais de configuração do integrador entre a plataforma Milk's e o sistema ERP do cliente

{% hint style="info" %}
Recomenda-se que o sistema ERP envie um "heartbit" a cada (x) minutos, fazendo uma consulta a este método e desta forma a plataforma devolverá a lista de parâmetros de configuração do integrador, que contém atributos que podem delimitar o tempo de chamada das rotinas, entre outros.
{% endhint %}

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/readParametroIntegrador>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": {{conta_id}},
    "token": "{{token}}",
    "doc": "{{doc}}"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.
{% endhint %}

## Resposta

### 200: Consulta realizada

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "63",
            "conta_id": "98777",
            "usuario_id": "1372",
            "ip_servidor_bd": "",
            "porta_bd": "",
            "path_bd": "",
            "usuario_bd": "",
            "senha_bd": "",
            "url_api_milks": "http://app.milksrota.com.br/api/retaguardasync/",
            "codigo_contabil_leite_vaca": "200",
            "codigo_contabil_leite_bufala": null,
            "codigo_contabil_leite_cabra": null,
            "intervalo_sincronizacao_cadastro": "2",
            "intervalo_sincronizacao_movimento": "2",
            "sincronizar_cadastro_hora_fixa": "0",
            "sincronizar_movimento_hora_fixa": "0",
            "sincronizar_movimento_codigo_filial": "0",
            "codigo_filial_sincronizacao": null,
            "hora_sncronizacao_cadastro": null,
            "hora_sincronizacao_movimento": null,
            "usa_linha_cadastro": "1",
            "usa_data_fechamento": "0",
            "dt_atualizacao": "2025-07-28 21:01:56",
            "forcar_sincronizacao": null,
            "status_sincronizacao": "A",
            "dt_ultima_comunicacao": "2025-09-05 17:59:06",
            "dt_ultima_sincronizacao": "2025-09-05 17:59:06",
            "total_cadastros": null,
            "total_movimento": null,
            "versao_integrador": null,
            "email_notificacao": null,
            "notificado": "0",
            "usuario": "Laticínio Meu Leite de Qualidade"
        }
    ],
    "monitor.time": 7.3291590213775635,
    "server.date": "2025-09-08 11:34:59"
}
```

{% hint style="success" %}
A consulta de status obteve êxito e retornou o comando solicitado pelo usuário do ERP, requerendo uma determinada ação de integração.
{% endhint %}

#### Tabela de domínio do atributo "data" retornado no método

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Status viagem

Altera status de sincronização de uma viagem após recebimento dos registros pelo ERP.

{% hint style="info" %}
Recomenda-se que o sistema ERP altere o status de sincronização da viagem após receber, validar e importar as informações da viagem.&#x20;

**Importante:** Mediante parametrização, disponível no painel de monitoramento, pode-se ajustar para que as viagens já marcadas como ***"sincronizadas"**  não retornem  no conjunto de dados de resposta das consultas. Neste caso, apenas as viagens não processadas pelo ERP podem ser tratadas a cada consulta.*
{% endhint %}

> ## Método POST
>
> <http://app.milksrota.com.br/api/retaguardasync/setViagemSincronizada>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "999999", 
    "token": "X999-X999-X999-X999", 
    "doc": "99.999.999/9999-99" ,
    "viagem_id":9999",
    "coletas": {
        "162453":500,  // id da coleta : volume salvo
        "162454":1200
    },
    "status": 0,
    "report": 'Importação realizada com sucesso'
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**viagem\_id:** Deve ser informado o identificador único da viagem **(id)**, que pode ser obtido por meio dos métodos : [Baixar Viagem](/milks-rota/viagens/baixar-viagem) ou [Resumo de Viagem](/milks-rota/viagens/resumo-de-viagem)

**coletas:** Objeto contendo os registros compostos pelos  pares:  **identificador único da coleta (id)** e o **volume total (quantidade)** salvo na base do ERP, para cada registro de coleta obtido por meio dos métodos : [Baixar Coleta](/milks-rota/viagens/baixar-coletas) ou [Resumo de coleta](/milks-rota/viagens/resumo-de-coleta)

**status:** código do resultado do processamento da viagem pelo ERP  (0) zero = Normal  (1) um = falha.

**report:**  Informações sobre o processo de importação, registros de falhas ou mensagem de sucesso
{% endhint %}

## Resposta

### 200: Operação realizada

```javascript
{
    "success": true,
    "monitor.time": 0.978130102158
}
```

{% hint style="success" %}
A Operação obteve êxito e marcou a viagem  como "**sincronizada**".
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Milk's Camp

## Documentação em edição.&#x20;

#### Revisão será publicada em breve.

![](/files/-MM2RwPdmsdJkG14NtQS)


# Milk's Farmer

Módulo de gestão do relacionamento com o produtor, composto por painel Web e Aplicativo mobile que facilita o acesso a informações sobre coletas, análises de qualidade e atendimentos técnicos.

A API do módulo do Milk's Farmer permite manter integrados os registros auxiliares do processo operacional de controle de convênio, produtos, suas respectivas categorias e demais informações acessíveis pelos produtores, técnicos e fornecedores.

{% hint style="info" %}
**IMPORTANTE**: A API controla as operações de **CRUD** baseando-se na propriedade "***codigo***" dos registros enviados no arquivo "**JSON**" da requisição, inclusive para fazer o relacionamento entre as tabelas.&#x20;

Se existir uma dependência entre os registros, a tabela que ***contém*** o registro do relacionamento deverá ser "***ENVIADA ANTES***" , da tabela que **precisa** do registro relacionado, caso contrário, a linha de dados **NÃO** será importada.  \
**Exemplo:**  `Na importação dos registros de produtos de um convênio será preciso enviar o código do convenio, a que pertence o produto. Sendo assim, o cadastro de convênios deve ser enviado antes`
{% endhint %}


# Categoria de produtos

São agrupamentos utilizados para associar produtos de mesma funcionalidade ou com características semelhastes.

Para enviar registros de categorias do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-Mje7pSnHK\_MXtz14QLr" %}
[Categorias de produtos](/milks-farmer/categoria-de-produtos/enviar-categorias)
{% endcontent-ref %}

Para baixar registros de categorias da Plataforma Milk's para o ERP, utilize o endpoint abaixo:

{% content-ref url="/pages/-MjeAcjJisT-REtZb3fA" %}
[Broken mention](broken://pages/-MjeAcjJisT-REtZb3fA)
{% endcontent-ref %}


# Categorias de produtos

Envia os registros de categorias cadastradas no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://api.milksrota.com.br/farmer/retaguarda/writeCategoria>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de categorias
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de categorias de produtos. Cada registro de categoria pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades da categoria

| **Campo**        | **Descrição**                                                                                                                                                   | **Tipo** | **Obrigatório** |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- |
| **codigo**       | Código da categoria                                                                                                                                             | Texto    | SIM             |
| **categoria \*** | Nome de identificação da categoria                                                                                                                              | Texto    | SIM             |
| **deleted**      | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número   | SIM             |
| equipamento      | Indica se é uma categoria de maquinário ou equipamento: (1) - Sim, (0) - Não                                                                                    | Texto    | Não             |

### Exemplo de requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.99.999/9999-99",
    "data": [
        {
            "codigo": "10128/01",
            "categoria": "Insumos e Nutrição",
            "equipamento": "0"
            "deleted": 0 // Indica que o registro está ativo
        },
        {
            "codigo": "10129/01",
            "categoria": "Máquias e Equipamentos",
            "equipamento": "1",  // Indica que é uma categoria de equipamentos          
            "deleted": 1 // Indica que o registro deve ser desativado.
        }
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "10128/01", // Código da categoria não importada
            "mensagem": "Código já cadastrado em outro registro ", // mensagem de erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Produtos

Relação de produtos disponíveis para aquisição via convênios ou lojas do laticínio.

Para enviar registros de produtos do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-Mjf07\_luY329y8tWyV1" %}
[Enviar produtos](/milks-farmer/produtos/enviar-produtos)
{% endcontent-ref %}

Para recuperar os registros de produtos cadastrados na  Plataforma Milk's, para o ERP utilize o endpoint abaixo:

{% content-ref url="/pages/-Mjf4H3X7j-kHvRQQOXK" %}
[Baixar produtos](/milks-farmer/produtos/baixar-produtos)
{% endcontent-ref %}


# Enviar produtos

Envia os registros de produtos cadastradas no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://api.milksrota.com.br/farmer/retaguarda/writeProduto>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de produtos
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de categorias de produtos. Cada registro de categoria pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do produto

| **Campo**        | **Descrição**                                                                                                                                                   | **Tipo**     | **Obrigatório** |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | --------------- |
| **codigo \***    | Código do produto                                                                                                                                               | Texto        | SIM             |
| **produto \***   | Nome de identificação do produto                                                                                                                                | Texto        | SIM             |
| **categoria \*** | Código da categoria que agrupa o produto                                                                                                                        | Texto        | SIM             |
| **unidade \***   | Representação da unidade de peso e medida do produto                                                                                                            | Texto        | SIM             |
| preco            | Valor unitário do produto                                                                                                                                       | Número(10,2) | NÃO             |
| marca            | Especificação da marca do produto                                                                                                                               | Texto        | NÃO             |
| modelo           | modelo do produto                                                                                                                                               | Texto        | NÃO             |
| **deleted**      | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número       | SIM             |

### Exemplo de requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.99.999/9999-99",
    "data": [
        {
            "codigo" : "001/01",
            "produto" : "Silagem de milho composto",
            "unidade" :"saco 60 Kg",            
            "categoria": "001",
            "preco": "145.90",
            "marca": "NUTRIPAR",
            "modelo": null,
            "deleted": 0 // Indica que o registro está ativo
        },
        {
            "codigo" : "002/01",
            "produto" : "Ração 105020",
            "unidade" :"saco 60 Kg",            
            "categoria": "001",
            "preco": "210.00",
            "marca": "CARTOLA II",
            "modelo": null,
            "deleted": 0 // Indica que o registro está ativo
        }        
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "002/01", // Código do produto não importado
            "mensagem": "Código já cadastrado em outro registro ", // mensagem de erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar produtos

Recupera a lista de produtos de uma determinada conta,  cadastrados na Plataforma.

> ## Método POST
>
> <http://api.milksrota.com.br/farmer/retaguarda/readProduto>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "1120",
            "conta_id": "591973",         
            "codigo" : "001/01",
            "produto" : "Silagem de milho composto",
            "unidade" :"saco 60 Kg",            
            "categoria": "001",
            "preco": "145.90",
            "marca": "NUTRIPAR",
            "modelo": null,
            "deleted": 0
            "ativo": "1",            
            "dt_criacao": "2019-06-19 10:29:26",
            "dt_atualizacao": "2019-06-19 10:29:26",
            "dt_excusao": null,
        },
        {
            "id": "1121",
            "conta_id": "591973",         
            "codigo" : "002/01",
            "produto" : "Ração 105020",
            "unidade" :"saco 60 Kg",            
            "categoria": "001",
            "preco": "210.00",
            "marca": "CARTOLA II",
            "modelo": null,
            "deleted": 0
            "ativo": "1",            
            "dt_criacao": "2019-06-19 10:29:26",
            "dt_atualizacao": "2019-06-19 10:29:26",
            "dt_excusao": null,
        },
  ],
    "monitor.time": 0.21102690696716
}       
```

{% hint style="success" %}
Os registros de produtos foram recuperados na plataforma Milk's e retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Convênios

Relação das empresas e pessoas conveniadas, fornecedores de produtos e/ou serviços.

Para enviar registros de convênios do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-Mjf6ZV7PwQJFnF5y\_q-" %}
[Enviar convênios](/milks-farmer/convios/enviar-convenios)
{% endcontent-ref %}

Para recuperar a relação de conveniados da Plataforma Milk's para o ERP,  utilize o endpoint abaixo:

{% content-ref url="/pages/-Mjf9QHDARaaHwhchCAC" %}
[Baixar convênios](/milks-farmer/convios/baixar-convenios)
{% endcontent-ref %}


# Enviar convênios

Envia os registros de convênio cadastradas no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://api.milksrota.com.br/farmer/retaguarda/writeConvenio>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de registros de convenios
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de categorias de produtos. Cada registro de categoria pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades do convênio

| **Campo**       | **Descrição**                                                                                                                                                   | **Tipo** | **Obrigatório** |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- |
| **codigo \***   | Código do convênio                                                                                                                                              | Texto    | SIM             |
| **convenio \*** | Nome de identificação do convênio                                                                                                                               | Texto    | SIM             |
| **tipo \***     | Tipo de pessoa (F) - Física; (J) - Jurídica.                                                                                                                    | Texto    | SIM             |
| **doc \***      | Documento de identificação do produtor (CPF ou CNPJ)                                                                                                            | Texto    | SIM             |
| numero          | Número do endereço do conveniado                                                                                                                                | Texto    | Não             |
| logradouro      | Logradouro do endereço do conveniado                                                                                                                            | Texto    | Não             |
| bairro          | Bairro do endereço do conveniado                                                                                                                                | Texto    | Não             |
| cidade          | Cidade do endereço do conveniado                                                                                                                                | Texto    | Não             |
| uf              | Unidade federativa do endereço do conveniado                                                                                                                    | Texto    | Não             |
| cep             | CEP do endereço do conveniado                                                                                                                                   | Texto    | Não             |
| email           | Endereço de e-mail do produtor                                                                                                                                  | Texto    | Não             |
| telefone        | Número do telefone celular do produtor                                                                                                                          | Texto    | Não             |
| **deleted**     | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número   | SIM             |

### Exemplo de requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.99.999/9999-99",
    "data": [
         {
            "codigo": "001",
            "nome": "João das Couves",
            "tipo": "F",
            "deleted": 0, // ativa o registro
            "doc": "090.123.231-20",
            "numero": "123",
            "logradouro": "Rua das Canárias",
            "bairro": "Laranjeiras",
            "cidade": "Alagoana",
            "uf": "Minas Gerais",
            "cep": "31400-000",
            "email": "joao.couves@gmail.com",
            "telefone": "(37) 99912-4949"
            
        },
        {
            "codigo": "002",
            "nome": "Posto de combustível Juá",
            "tipo": "J",
            "deleted": 1, // desativa o registro         
            "doc": "10.290.123.0001/10",
            "numero": "98",
            "logradouro": "Rua D",
            "bairro": "Martins Godoy",
            "cidade": "Santa Bárbara",
            "uf": "Minas Gerais",
            "cep": "31560-000",
            "email": null,
            "telefone": "(37) 99912-4949"
        }        
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "001", // Código do convenio não importado
            "mensagem": "Código já cadastrado em outro registro ", // mensagem de erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar convênios

Recupera a lista de convênios de uma determinada conta,  cadastrados na Plataforma.

> ## Método POST
>
> <http://api.milksrota.com.br/farmer/retaguarda/readConvenio>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "1120",
            "conta_id": "591973",         
            "codigo": "001",
            "convenio": "João das Couves",
            "tipo": "F",
            "deleted": 0, // ativa o registro
            "doc": "090.123.231-20",
            "numero": "123",
            "logradouro": "Rua das Canárias",
            "bairro": "Laranjeiras",
            "cidade": "Alagoana",
            "uf": "Minas Gerais",
            "cep": "31400-000",
            "email": "joao.couves@gmail.com",
            "telefone": "(37) 99912-4949"
            "ativo": "1",            
            "dt_criacao": "2019-06-19 10:29:26",
            "dt_atualizacao": "2019-06-19 10:29:26",
            "dt_excusao": null,
        },
        {
            "id": "1121",
            "conta_id": "591973",         
            "codigo": "002",
            "nome": "Posto de combustível Juá",
            "tipo": "J",
            "deleted": 1, // desativa o registro         
            "doc": "10.290.123.0001/10",
            "numero": "98",
            "logradouro": "Rua D",
            "bairro": "Martins Godoy",
            "cidade": "Santa Bárbara",
            "uf": "Minas Gerais",
            "cep": "31560-000",
            "email": null,
            "telefone": "(37) 99912-4949"         
            "dt_criacao": "2019-06-19 10:29:26",
            "dt_atualizacao": "2019-06-19 10:29:26",
            "dt_excusao": null,
        },
  ],
    "monitor.time": 0.21102690696716
}       
```

{% hint style="success" %}
Os registros de convênio foram recuperados na plataforma Milk's e retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Produtos de um convênio

Relação de produtos disponíveis para comercialização em um convênio específico.

Para enviar registros de produtos de um convênio, do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/-MjfASVLyE\_BuNvSjIhc" %}
[Enviar produtos do convênio](/milks-farmer/produtos-de-um-convenio/enviar-produtos-do-convenio)
{% endcontent-ref %}

Para recuperar os registros de produtos de um convênio da Plataforma Milk's para o  ERP , utilize o endpoint abaixo:

{% content-ref url="/pages/-MjfAXkYznGIdgaIH\_rO" %}
[Baixar produtos do convênio](/milks-farmer/produtos-de-um-convenio/baixar-produtos-do-convenio)
{% endcontent-ref %}


# Enviar produtos do convênio

Envia os registros de produtos, vinculados a um determinado convênio, cadastrados no ERP para a Plataforma Milk's.

> ## Método POST
>
> <http://api.milksrota.com.br/farmer/retaguarda/writeProdutoConvenio>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "data": [
        // lista de prodtuos vinculados a um convenio
    ]
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data**: Lista que deve conter um ou mais registros de categorias de produtos. Cada registro de categoria pode ser informando com a relação de propriedades detalhadas abaixo. Apenas os campos obrigatórios não podem ser ignorados.
{% endhint %}

### Propriedades dos produtos do convênio

| **Campo**       | **Descrição**                                                                                                                                                   | **Tipo**  | **Obrigatório** |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | --------------- |
| **codigo \***   | Código do registro no ERP                                                                                                                                       | Texto     | SIM             |
| **convenio \*** | código de identificação do convênio                                                                                                                             | Texto     | SIM             |
| **produto \***  | código de identificação do produto no convênio                                                                                                                  | Texto     | SIM             |
| preco           | preço médio para uma unidade do produto ofertado                                                                                                                | Texto     | NÃO             |
| estoque         | estoque disponível na data de atualização                                                                                                                       | Número    | NÃO             |
| atualizacao     | Data e hora da última atualização do produto                                                                                                                    | Data/Hora | Não             |
| **deleted**     | Se o registro deve ser excluído. Se enviar o valor **1** ele será excluído caso já exista na plataforma. Se for enviado **0** ele será reativado na plataforma. | Número    | SIM             |

{% hint style="danger" %}
**Importante:** Os códigos do **produto** e do **convênio** enviados nesta requisição precisam ser cadastrados anteriormente na plataforma Milk's, caso contrário, os registros serão rejeitados na validação da importação.
{% endhint %}

### Exemplo de requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "xxxx-xxxx-xxxx-xxxx",
    "doc": "99.99.999/9999-99",
    "data": [
         {
            "codigo": "001/01",
            "convenio": "002",
            "produto": "0001/01",
            "deleted": 0, // ativa o registro
            "preco": "120.40",
            "estoque": "320",
            "atualizacao": "2021-09-03 16:00:00", 
        },
        {
            "codigo": "001/02",
            "convenio": "002",
            "produto": "0002/01",
            "deleted": 0, // ativa o registro
            "preco": "25.00",
            "estoque": "130",
            "atualizacao": "2021-09-03 16:00:00", 
        }        
    ]
}
```

## Resposta

### 200: Importação realizada

```javascript
{
  "succes": true,
    "message": "OK",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}  
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    "succes": true,
    "message": "OK",
    "data": [ // Falhas de importação
        {
            "codigo": "001/01", // Código do produto não importado
            "mensagem": "Código já cadastrado em outro registro ", // mensagem de erro
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar produtos do convênio

Recupera a lista de produtos vinculados a um convênio específico , cadastrados na Plataforma.

> ## Método POST
>
> <http://api.milksrota.com.br/farmer/retaguarda/readProdutoConvenio>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "convenio": "002"
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc :** Deve ser informado o CNPJ cadastrado para a conta. Pode ser obtido na tela ***"Sua conta"*** no menu principal do painel do Milk's Rota.

**convenio:** Deve ser informado o código do convênio registrado no ERP e vinculado á Plataforma Milk's.
{% endhint %}

## Resposta

### 200: Registros localizados

```javascript
{
    "success": true,
    "message": "OK",
    "data": [
        {
            "id": "1120",
            "convenio_id": "591973",   
            "produto_id": "10201",         
            "codigo": "001/01",            
            "convenio": "002",
            "produto": "0001/01",
            "preco": "120.40",
            "estoque": "320",
            "deleted": 0,        
            "dt_criacao": "2019-06-19 10:29:26",
            "dt_atualizacao": "2019-06-19 10:29:26",
            "dt_excusao": null,
        },
        {
            "id": "1120",
            "convenio_id": "591973",   
            "produto_id": "10201",         
            "codigo": "001/02",
            "convenio": "002",
            "produto": "0002/01",
            "deleted": 0, 
            "preco": "25.00",
            "estoque": "130",                    
            "dt_criacao": "2019-06-19 10:29:26",
            "dt_atualizacao": "2019-06-19 10:29:26",
            "dt_excusao": null,
        },
  ],
    "monitor.time": 0.21102690696716
}       
```

{% hint style="success" %}
Os registros de produtos vinculados aos convênios foram recuperados na plataforma Milk's e retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Documentos

Documentos que podem ser compartilhados com os usuários do aplicativo.

Para enviar registros de documentos do ERP para a Plataforma Milk's, utilize o endpoint abaixo:

{% content-ref url="/pages/K5gmkxFUeoO5Ou2OlSI3" %}
[Enviar documentos](/milks-farmer/documentos/enviar-documentos)
{% endcontent-ref %}


# Enviar documentos

> ## Método POST
>
> <http://api.milksrota.com.br/farmer/documento/upload>

## Requisição

### Dados da requisição

```json
{
    "conta_id": "DDDDD",
    "token": "XXXX-XXXX-XXXX-XXXX",
    "doc": "99.999.999/9999-99",
    "file": "arquivo que precisa ser enviado",(**)
    "descricao": "breve descrição ou identificação do arquivo",
    "pasta": 62 ,// identificador da pasta onde o arquivo será armazenado
    "produtor": 9090, // Codigo do produtor destinatário do arquivo
    "tipo":"pdf/xml" (**)
}
```

{% hint style="info" %}
**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**file**: Anexar o arquivo que deseja enviar. Tamanho Máximo **10** **Mb**

**descricao:** Breve descrição ou identificação do conteúdo do arquivo.

**pasta:** Código de identificação da pasta de destino do arquivo. pode ser obtida na tela do painel de monitoramento do painel da plataforma Milk's.

**produtor:** Código do produtor destinatário do arquivo. Deve ser o código de identificação sob o qual o produtor está cadastrado na plataforma Milk's Rota.

**tipo:** formato do arquivo Base64 (pdf ou xml)
{% endhint %}

{% hint style="info" %}
**(\*\*) Enviar Arquivo BASE64:**\
**O endpoint processará o arquivo enviado no formato Base64, desde que seja informado o tipo de arquivo para conversão, sendo aceitos os tipos (Pdf ou Xml).**\
**- Enviar a requisição Post (Raw Data)**

```
data :{
 "conta_id": "40001",
    "token": "s0637rrtrtr",
    "doc": "99.999.999/0000-99",
    "file": "conteúdo base64"
    "descricao": "breve descrição ou identificação do arquivo",
    "chave_api": 1234 ,
    "produtor": 9988,
    "tipo":"pdf"
}

```

{% endhint %}

### Observações de requisição

```javascript
Content-Type: multipart/form-data; 

Exemplo utilizando cUrl:
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
  curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
  curl_easy_setopt(curl, CURLOPT_URL, "http://api.milksrota.com.br/farmer/documento/upload");
  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
  curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
  struct curl_slist *headers = NULL;
  headers = curl_slist_append(headers, "Cookie: PHPSESSID=bfsd75b9275cpmroll882oq9f3");
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
  curl_mime *mime;
  curl_mimepart *part;
  mime = curl_mime_init(curl);
  part = curl_mime_addpart(mime);
  curl_mime_name(part, "file");
  curl_mime_filedata(part, "/Users/dev04/Downloads/quimsoc.pdf");
  part = curl_mime_addpart(mime);
  curl_mime_name(part, "descricao");
  curl_mime_data(part, "Artigo técnico de química", CURL_ZERO_TERMINATED);
  part = curl_mime_addpart(mime);
  curl_mime_name(part, "conta_id");
  curl_mime_data(part, "90009", CURL_ZERO_TERMINATED);
  part = curl_mime_addpart(mime);
  curl_mime_name(part, "token");
  curl_mime_data(part, "s0637rtt", CURL_ZERO_TERMINATED);
  part = curl_mime_addpart(mime);
  curl_mime_name(part, "doc");
  curl_mime_data(part, "99.999.999/0001-99", CURL_ZERO_TERMINATED);
  part = curl_mime_addpart(mime);
  curl_mime_name(part, "chave_api");
  curl_mime_data(part, "58", CURL_ZERO_TERMINATED);
  part = curl_mime_addpart(mime);
  curl_mime_name(part, "produtor");
  curl_mime_data(part, "9981", CURL_ZERO_TERMINATED);
  part = curl_mime_addpart(mime);
  curl_mime_name(part, "deleted");
  curl_mime_data(part, "0", CURL_ZERO_TERMINATED);
  curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);
  res = curl_easy_perform(curl);
  curl_mime_free(mime);
}
curl_easy_cleanup(curl);


```

## Resposta

### 200: Importação realizada

```javascript
{
    "success": true,
    "link": "https://milks-space.sfo2.digitaloceanspaces.com/milks-farmer/documentos/63618fd4d1cff.pdf",
    "response.time": 0.66831707954407,
    "server.date": "2022-11-01 18:29:57"
}
```

{% hint style="success" %}
Os registros foram enviados para a Plataforma Milk's e importados sem erro.
{% endhint %}

### 200: Importação com falhas

```javascript
{
    {
    "success": true,
    "link": "https://milks-space.sfo2.digitaloceanspaces.com/milks-farmer/documentos/63618fd4d1cff.pdf",
    "response.time": 0.66831707954407,
    "server.date": "2022-11-01 18:29:57"
    "data": [ // Falhas de importação
        {
            "descrição": "Artigo técnico ...", // Descrição do arquivo não importado
            "mensagem": "Mensagem de erro ",  // Indicação e características do erro que gerou a falha de importação
        }
    ],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="info" %}
Os registros foram enviados para a Plataforma Milk's e importados, entretanto, alguns registros não puderam ser importados.
{% endhint %}

### 404: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Milk's Pay

Módulo de apoio ao cálculo de folha de  pagamentos de produtores, considerando sistema de valorização de leite por qualidade.

A API do módulo do Milk's Pay permite manter integrados os registros auxiliares de cálculo de pagamento de produtores realizados na plataforma, com o sistema ERP do laticínio. A plataforma oferece rotinas que permitem a configuração, parametrização e cálculo do pagamento de fornecedores de leite, considerando um S.V.L. (Sistema de Valorização do Leite), logo após disponibiliza os registros já preparados para emissão do documento fiscal pelo ERP.

{% hint style="info" %}
**IMPORTANTE**: A API controla as operações de **CRUD** baseando-se na propriedade "***codigo***" dos registros enviados no arquivo "**JSON**" da requisição, inclusive para fazer o relacionamento entre as tabelas.&#x20;

Se existir uma dependência entre os registros, a tabela que ***contém*** o registro do relacionamento deverá ser "***ENVIADA ANTES***" , da tabela que **precisa** do registro relacionado, caso contrário, a linha de dados **NÃO** será gerada.  \
**Exemplo:**  `Na importação dos registros de pagamento de um produtor será preciso enviar o código do produtor, vinculado ao ERP, para ser cadastrado na plataforma,  pois este mesmo registro será utilizado para vincular os cálculos de uma folha a este produtor.`
{% endhint %}


# Folha

Acesso a registros de cálculo de folha de pagamento de produtores.

Para recuperar os registros de uma folha de pagamento, utilize o endpoint abaixo:

{% content-ref url="/pages/XhUbPqXJoSK8SyZfSHiB" %}
[Listar folhas](/milks-pay/folha/enviar-categorias)
{% endcontent-ref %}

{% content-ref url="/pages/fkGYMopkAO1RWwJpDVXy" %}
[Baixar folha](/milks-pay/folha/enviar-categorias-1)
{% endcontent-ref %}


# Listar folhas

Retorna uma relação de folhas de pagamento em um determinado período.

> ## Método POST
>
> <http://api.milksrota.com.br/pay/folha/listFolha>

## Requisição

### Dados da requisição

```javascript
{
    "token" : "XXXX-XXXX-XXXX-XXXX", 
    "conta_id" : "DDDDDD",
    "dt_inicio" : "2024-09-01",
    "dt_fim" : "2024-10-31",    
    "doc" : "99.999.999/9999-99"
}
```

{% hint style="info" %}
**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**dt\_inicio**: Data inicial utilizada para localizar folhas num determinado período.

**dt\_fim**: Data final utilizada para localizar folhas num determinado período.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

### Exemplo de resposta

```json
{
    "success": true,
    "data": [
        {
            "id": "137", //ID de identificação da folha
            "conta_id": "40001",
            "consolidacao_id": "242",
            "referencia": "Jun/24-3", // Referência do pagamento
            "codigo": null,
            "status": "F", // Status da folha (A = Aberta, F = Fechada)
            "dt_inicio_fornecimento": "2024-06-01", // Início do período de fornecimento de leite
            "dt_fim_fornecimento": "2024-06-30", // Fim do período de fornecimento de leite
            "volume": "29600", // Volume total de leite na folha
            "total_pagamento": "66922.11", // Valor líquido total
            "total_credito": "0.00", // Total de créditos adicionais
            "total_deducao": "0.00", // Total de deduções adicionais
            "total_fornecimento": "67920.54", // Valor bruto da folha
            "dt_criacao": "2024-07-04 15:42:00", // Data e hora de criação do registro
            "dt_exclusao": null,
            "dt_atualizacao": "2024-09-18 12:11:35",
            "total_imposto": "998.43", // Valor total de impostos na folha
            "preco_medio": "2.295", // Valor do preço médio do leite na folha
            "forcar_recalculo": "0",
            "simulacao": "0",
            "tipo_data_corte": "C"
        },
        {
            "id": "136",
            "conta_id": "40001",
            "consolidacao_id": "242",
            "referencia": "Jun/24 - 2",
            "codigo": "Jun/2024-2",
            "status": "F",
            "dt_inicio_fornecimento": "2024-06-01",
            "dt_fim_fornecimento": "2024-06-30",
            "volume": "29600",
            "total_pagamento": "67907.11",
            "total_credito": "1000.00",
            "total_deducao": "0.00",
            "total_fornecimento": "68920.54",
            "dt_criacao": "2024-07-04 12:05:02",
            "dt_exclusao": null,
            "dt_atualizacao": "2024-07-04 15:39:10",
            "total_imposto": "1013.43",
            "preco_medio": "2.328",
            "forcar_recalculo": "0",
            "simulacao": "0",
            "tipo_data_corte": "C"
        },
        {
            "id": "134",
            "conta_id": "40001",
            "consolidacao_id": "242",
            "referencia": "Jun/24",
            "codigo": null,
            "status": "F",
            "dt_inicio_fornecimento": "2024-06-01",
            "dt_fim_fornecimento": "2024-06-30",
            "volume": "29600",
            "total_pagamento": "67673.74",
            "total_credito": "0.00",
            "total_deducao": "450.00",
            "total_fornecimento": "69140.10",
            "dt_criacao": "2024-07-04 11:40:46",
            "dt_exclusao": null,
            "dt_atualizacao": "2024-07-04 12:00:50",
            "total_imposto": "1016.36",
            "preco_medio": "2.336",
            "forcar_recalculo": "0",
            "simulacao": "0",
            "tipo_data_corte": "C"
        },
        {
            "id": "126",
            "conta_id": "40001",
            "consolidacao_id": "232",
            "referencia": "05/2024",
            "codigo": "05/2024",
            "status": "F",
            "dt_inicio_fornecimento": "2024-05-01",
            "dt_fim_fornecimento": "2024-05-31",
            "volume": "8081",
            "total_pagamento": "19427.79",
            "total_credito": "0.00",
            "total_deducao": "0.00",
            "total_fornecimento": "19717.64",
            "dt_criacao": "2024-06-04 16:50:40",
            "dt_exclusao": null,
            "dt_atualizacao": "2024-06-04 16:52:42",
            "total_imposto": "289.85",
            "preco_medio": "2.440",
            "forcar_recalculo": "0",
            "simulacao": "0",
            "tipo_data_corte": "C"
        }
    ],
    "response.time": 0.13026404380798,
    "server.date": "2024-10-25 14:40:10"
}
```

{% hint style="success" %}
Os registros da folha foram recuperados na plataforma Milk's e retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Baixar folha

Recupera a lista de pagamentos a produtores, calculados em uma folha específica.

> ## Método POST
>
> <http://api.milksrota.com.br/pay/folha/readFolha>

## Requisição

### Dados da requisição

```javascript
{
    "token" : "XXXX-XXXX-XXXX-XXXX", 
    "conta_id" : "DDDDDD",
    "folha_id" : "111",
    "doc" : "99.999.999/9999-99"
}
```

{% hint style="info" %}
**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**folha\_id**: Deve ser informado o ID de Identificação da folha de pagamento, que pode ser visto em destaque ao **editar um registro da folha de pagamento**.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.
{% endhint %}

## Resposta

### 200: Registros localizados

### Exemplo de requisição

```javascript
"success": true,
    "data": {
        "folha": "111", // ID da folha de pagamento
        "volume_total": "3308050", // Volume de leite total na folha
        "total_bruto": "9710408.26", // Total bruto da folha
        "total_liquido": "9203256.03", // Total líquido da folha
        "pagamentos": [
            {
                "codigo_produtor": "22222", // Código do produtor no ERP
                "nome_produtor": "JOSÉ SILVA SANTOS", // Nome do produtor
                "rota": "VIA LAT SEGURO NOVO", // Nome da rota de captação
                "linha": "ROTA 05 - MARIA FONSECA SOARES DE BAIXO", // Nome da linha de captação
                "modelo_pagamento": "95% Assunção", // Modelo de pagamento
                "volume_total_leite": "8067", // Volume total de leite fornecido
                "volume_medio_diario": "260.23", // Volume médio diário de leite fornecido no período da folha
                "total_bruto": "22773.14", // Valor total bruto
                "total_debitos": "108.00", // Total de débitos da folha (adicionais)
                "total_acrescimos": "0.00", // Total de créditos da folha (adicionais)
                "total_impostos": "341.60", // Total de impostos da folha
                "total_liquido": "22323.54", // Valor total líquido
                "preco_medio_leite": "2.823", // Preço médio do litro de leite
                "creditos": [], // Lista de créditos adicionais da folha
                "debitos": [ // Lista de débitos adicionais da folha
                    {
                        "descricao": "Ref.NF 1 WELKYER",
                        "valor": "100.000"
                    },
                    {
                        "descricao": "Ref.NF 7 CLINICA DO LEITE",
                        "valor": "8.000"
                    }
                ],
                "impostos": [ // Lista de impostos incidindo sobre a folha
                    {
                        "codigo": "01",
                        "descricao": "FUNRURAL",
                        "valor": "273.278",
                        "percentual": "1.2000"
                    },
                    {
                        "codigo": "02",
                        "descricao": "SENAR",
                        "valor": "45.546",
                        "percentual": "0.2000"
                    },
                    {
                        "codigo": "03",
                        "descricao": "SAT",
                        "valor": "22.773",
                        "percentual": "0.1000"
                    }
                ],
                "composicao": [ // Composição do pagamento da folha para NFe
                    {
                        "codigo": null,
                        "descricao": "Preço Base",
                        "quantidade": "8067.0000",
                        "valor_unitario": "2.6480",
                        "credito": "21361.416",
                        "debito": 0
                    },
                    {
                        "codigo": null,
                        "descricao": "Adicional Volume",
                        "quantidade": "8067.0000",
                        "valor_unitario": "0.0300",
                        "credito": "242.010",
                        "debito": 0
                    },
                    {
                        "codigo": null,
                        "descricao": "Qualidade CBT",
                        "quantidade": "14.1230",
                        "valor_unitario": "0.0500",
                        "credito": "403.350",
                        "debito": 0
                    },
                    {
                        "codigo": null,
                        "descricao": "Qualidade CCS",
                        "quantidade": "1240.3970",
                        "valor_unitario": "-0.0700",
                        "credito": "-564.690",
                        "debito": 0
                    },
                    {
                        "codigo": null,
                        "descricao": "Qualidade Gordura",
                        "quantidade": "3.9230",
                        "valor_unitario": "0.0850",
                        "credito": "685.695",
                        "debito": 0
                    },
                    {
                        "codigo": null,
                        "descricao": "Qualidade Proteína",
                        "quantidade": "3.1580",
                        "valor_unitario": "0.0100",
                        "credito": "80.670",
                        "debito": 0
                    },
                    {
                        "codigo": null,
                        "descricao": "Certificações: Produção",
                        "quantidade": "0.0000",
                        "valor_unitario": "0.0200",
                        "credito": "161.340",
                        "debito": 0
                    },
                    {
                        "codigo": null,
                        "descricao": "Certificações: Bem Estar Animal",
                        "quantidade": "0.0000",
                        "valor_unitario": "0.0200",
                        "credito": "161.340",
                        "debito": 0
                    },
                    {
                        "codigo": null,
                        "descricao": "Adicional comercial",
                        "quantidade": "0.0000",
                        "valor_unitario": "0.0300",
                        "credito": "242.010",
                        "debito": 0
                    }
                ]
            },
```

{% hint style="success" %}
Os registros da folha foram recuperados na plataforma Milk's e retornados com sucesso.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Nota fiscal

Operações que envolvem a emissão e registro de notas fiscais de produtores

{% content-ref url="/pages/OYGzWw8kcyRyWtE1UOG3" %}
[Registrar Nota Fiscal](/milks-pay/nota-fiscal/registrar-nota-fiscal)
{% endcontent-ref %}


# Registrar Nota Fiscal

Registra a emissão de uma nota fiscal para um pagamento específico.

> ## Método POST
>
> [http://api.milksrota.com.br/pay/nfe/writeNfe](http://api.milksrota.com.br/pay/folha/readFolha)

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "{{conta_id}}",
    "token": "{{token}}",   
    "doc": "{{doc}}",
    "data": [
         {
           // Conjunto de registros de notas emitidas
           // de acordo com o formato da nota, documentado abaixo. 
        }
    ]    
}
```

{% hint style="info" %}
**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data:** Conjunto de registros de acordo com formato abaixo.
{% endhint %}

### Formato do registro da Nota  Fiscal

| **pagamento\_id**   | Id do registro de pagamento                                                  | Numérico                    | SIM |
| ------------------- | ---------------------------------------------------------------------------- | --------------------------- | --- |
| **destinatario**    | Documento de identificação do destinatário                                   | Texto                       | SIM |
| **emitente**        | Documento de identificação do emitente                                       | Texto                       | SIM |
| **tipo**            | Tipo de nota emitida (E) - Entrada ; (S) - Saída                             | Texto                       | SIM |
| **valor**           | Valor do documento                                                           | Double                      | SIM |
| **número**          | Número da NFE                                                                | Numérico                    | SIM |
| **série**           | Número de série da NFE                                                       | Numérico                    | SIM |
| **chave**           | Chave de identificação da NFE na base da SEFAZ                               | Texto                       | SIM |
| xml                 | Url para obtenção do XML da NFE ou Arquivo BASE64 com o conteúdo do XML      | Texto                       | NÃO |
| danfe               | Url para obtenção do DANFE da NFE ou Arquivo BASE64 com o conteúdo do DANFE. | Texto                       | NÃO |
| mensagem            | Mensagem de autorização de uso da NFE                                        | Texto                       | NÃO |
| **dt\_emissao**     | Data e Hora da Emissão da NFE                                                | Texto (YYYY-MM-DD HH:mm:ss) | SIM |
| **dt\_autorizacao** | Data da Autorização de Uso da NFE                                            | Texto (YYYY-MM-DD)          | SIM |

> **pagamento\_id**: Deve ser informado o ID de Identificação do pagamento, vinculado à folha de pagamento, que pode ser obtido por meio do método **"**[**Baixar Folha**](/milks-pay/folha/enviar-categorias-1)**"** ,documentado nesta API.
>
> **XML e Danfe: Devem ser enviados os links (url) para acesso aos arquivos armazenados em servidor próprio, caso a empresa não tenha este recurso, entrar em contato com nossa equipe técnica.**

### Exemplo de requisição

```javascript
{
    "conta_id": "{{conta_id}}",
    "token": "{{token}}",   
    "doc": "{{doc}}",
    "data": [
         {
            "pagamento_id": "167", // Identificador do registro de pagamento vinculado a folha
            "destinatario": "99980339605", // Documento de identificação do destinatário na NFE 
            "emitente": "99988235000166", // Documento de identificaçào do emissor na NFE
            "tipo": "E", // (E) - Entrada ; (S) - Saída
            "valor": "6685.03", // Valor do Documento
            "numero": "1", // Número da NFE
            "serie": "2", // Série da NFE
            "chave": "31250155488235000166550020000000011740498179", // Chave de identificação 
            "xml": "https://milks-space-ny.nyc3.digitaloceanspaces.com/milks-pay/nfe/2554600/2025/01/xml/677e900e0263c2cc3893a4dc.xml",
            "danfe": "https://milks-space-ny.nyc3.digitaloceanspaces.com/milks-pay/nfe/2554600/2025/01/pdf/677e900e0263c2cc3893a4dc.pdf",
            "mensagem":"Autorizado o uso da NF-e",
            "dt_emissao":"2025-01-08 09:00:00",
            "dt_autorizacao": "2025-01-08"
        }
    ]    
}
```

## Resposta

### 200: Registros processados

{% hint style="success" %}
Os registros das notas foram processados pela plataforma Milk's Rota com sucesso.
{% endhint %}

```javascript
{
    "success": true,
    "results": {
        "aceitas": 1,
        "recusadas": 0,
        "erros": []
    },
    "response.time": 0.615164041519165,
    "server.date": "2025-01-21 09:41:51"
}
```

### 400: Conta não localizada

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Contrato

Endpoints relacionados à gestão de contrato de produtores no Milk's Pay

{% content-ref url="/pages/OYGzWw8kcyRyWtE1UOG3" %}
[Registrar Nota Fiscal](/milks-pay/nota-fiscal/registrar-nota-fiscal)
{% endcontent-ref %}


# Atualizar contrato

Atualiza os dados de um contrato de produtor no Milk's Pay

> ## Método POST
>
> <http://api.milksrota.com.br/pay/contrato/update>

## Requisição

### Dados da requisição

```javascript
{
    "conta_id": "{{conta_id}}",
    "token": "{{token}}",   
    "doc": "{{doc}}",
    "data": [
         {
           // Conjunto de registros de contratos documentado abaixo. 
        }
    ]    
}
```

{% hint style="info" %}
**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**data:** Conjunto de registros de acordo com formato abaixo.
{% endhint %}

### Formato do registro da Nota  Fiscal

<table data-header-hidden><thead><tr><th width="227.33203125">Campo</th><th>Descrição</th><th>Tipo</th><th>Obrigatório</th></tr></thead><tbody><tr><td><strong>produtor</strong></td><td>Código do produtor vinculado ao contrato</td><td>Texto</td><td>SIM</td></tr><tr><td>fazenda</td><td>Código da fazenda</td><td>Texto</td><td>NÃO</td></tr><tr><td>adicional_acordo</td><td>Valor do adicional de acordo comercial</td><td>Numérico</td><td>NÃO</td></tr><tr><td>distancia_pagto_logistica</td><td>Distância a ser comnsiderada no pagamento por logística</td><td>Numérico</td><td>NÃO</td></tr><tr><td>banco</td><td>Nome do banco de pagamento exibido no demonstrativo</td><td>Texto</td><td>NÃO</td></tr><tr><td>agencia</td><td>Número da agência de pagamento exibida no demonstrativo</td><td>Texto</td><td>NÃO</td></tr><tr><td>conta</td><td>Número da conta de pagamento exibida no demonstrativo</td><td>Texto</td><td>NÃO</td></tr><tr><td>beneficiario</td><td>Tipo de beneficiário [P = Próprio, T = Terceiro] do pagamento</td><td>Texto</td><td>NÃO</td></tr><tr><td>nome_beneficiario</td><td>Nome do beneficiário do pagamento</td><td>Texto</td><td>NÃO</td></tr><tr><td>cpf_beneficiario</td><td>Número de CPF do beneficiário do pagamento</td><td>Texto</td><td>NÃO</td></tr></tbody></table>

### Exemplo de requisição

```javascript
{
    "token": "{{token}}",
    "conta_id": "{{conta_id}}",
    "doc": "{{doc}}",
    "data": [
        {
            "produtor": "0120", 
            "fazenda": "FZ_121", 
            "adicional_acordo": 0.225 
            
        }
    ]
}
```

## Resposta

### 200: Registros processados

{% hint style="success" %}
Resultado do processamento da atualização dos contratos
{% endhint %}

```javascript
{
    "success": true,
    "fails": [],
    "response.time": 0.615164041519165,
    "server.date": "2025-01-21 09:41:51"
}
```

### 400: Conta não localizada

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Deduções

Endpoints utilizados para gestão das deduções vinculadas aos registros de folhas de pagamento do produtor rural.

{% content-ref url="/pages/pLb5INFIsnOzPLP7RgbW" %}
[Importar deduções](/milks-pay/deducoes/enviar-categorias)
{% endcontent-ref %}


# Importar deduções

Importação de lançamentos de dedução para folhas abertas. Os registros são vinculados automaticamente ao contrato ativo do produtor.

> ## Método POST
>
> <http://api.milksrota.com.br/pay/deducao/import>

## Requisição

### Dados da requisição

```javascript
{
    "token" : "XXXX-XXXX-XXXX-XXXX", 
    "conta_id" : "DDDDDD",
    "doc" : "99.999.999/9999-99",
    "clear": false, // true: Limpa todas as deduções de um produtor na folha, false: Não limpa deduções
    "data": [
        {
              "codigo_produtor": "P001", // código do produtor
              "folha": 1234 // ID da folha de pagamento a ser vinculada na despesa [OPCIONAL]
              "data": "2024-01-15", // data da dedução
              "valor": 150.00, // valor da dedução
              "descricao": "Desconto frete", // descrição da dedução
              "codigo_fazenda": "F002" // código da fazenda obrigatório se o pagamento for por fazenda
        },
        ...    
    ] // lista de deduções
}
```

{% hint style="info" %}
**token**: Deve ser informado o Token da conta, que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**conta\_id**: Deve ser informado o ID da conta que você encontra na tela ***"Sua conta"*** no menu principal no painel do Milk's Rota.

**doc:** Deve ser informado o CNPJ da conta cadastra. Pode ser encontrado na tela ***"Sua conta"*** no menu principal do painel Milk's Rota.

**clear:** Deve enviar true ou false. Caso true seja enviado, todas as deduções do produtor no período da dedução a ser importada serão apagadas antes da nova inserção.
{% endhint %}

## Resposta

### 200: Registros localizados

### Exemplo de requisição

```javascript
{
  "processados": 1,
  "erros": [
    { "error": "Produtor não localizado: P001" }
  ]
}
```

{% hint style="success" %}
Retorna a quantidade de deduções processadas e sinaliza os registros de deduções que apresentaram erro.
{% endhint %}

### 400: Conta não localizada

```javascript
{    
    "success": false,
    "message": "Conta não localizada",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o ID da conta não foi localizado na Plataforma Milk's.
{% endhint %}

### 403: Token inválido

```javascript
{
    "success": false,
    "message": "Token inválido",
    "data": [],
    "monitor.time": 2.14737200737 // Tempo de execução
}
```

{% hint style="danger" %}
**O que isso significa?** Significa que o token informado na requisição não corresponde ao token cadastrado para a conta.
{% endhint %}


# Plataforma Milk's

Esta documentación describe en detalle la API de integración de datos de Milk's Platform. Con esta documentación,su empresa puede implementar la integración de los datos de su ERP con nuestra solución

La Plataforma de Leche es una solución completa para informatizar y monitorear el proceso operativo de gestión de captura y calidad de leche para productos lácteos y cooperativas.

Para acceder a la API de integración de datos con el módulo de recolección de leche, Milk's Rota, acceda al siguiente enlace:




---

[Next Page](/llms-full.txt/1)

