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