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


---

# 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-farmer/documentos/enviar-documentos.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.
