# Enviar itinerário

> ## 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.milksrota.com.br/milks-rota/itinerario/enviar-itinerario.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
