# Registrar motivos

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