> For the complete documentation index, see [llms.txt](https://docs.workflow.d1.cx/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.workflow.d1.cx/configuracoes/attachment.md).

# Attachment

**Attachment** é a entidade responsável por **armazenar pendências** e **anexos**.&#x20;

{% hint style="info" %}
Todos os métodos precisam de **autenticação**.
{% endhint %}

## upload/link 

<mark style="color:green;">`POST`</mark> `/attachment/upload/link`

API utilizada para realizar upload e associação de arquivos com documentos.

#### Headers

| Name          | Type   | Description     |
| ------------- | ------ | --------------- |
| Authorization | string | Bearer \<token> |

#### Request Body

| Name             | Type    | Description                                                                                   |
| ---------------- | ------- | --------------------------------------------------------------------------------------------- |
| send\_attachment | boolean | booleano para gerenciar se o arquivo deve ou não ser enviado na próxima comunicação via email |
| document\_id     | number  | número de ID do documento que será associado ao arquivo                                       |
| name             | string  | nome que será exibido na plataforma                                                           |
| description      | string  | descrição que será exibida na plataforma                                                      |
| filename         | string  | valor que será salvo como nome do arquivo na S3                                               |
| path             | string  | caminho do arquivo na nuvem                                                                   |
| driver           | string  | "default"                                                                                     |

{% tabs %}
{% tab title="201 Este retorno traz informações sobre a criação do anexo. Os atributos são os mesmos da requisição, com a adição das seguintes informações.

Atributos:
key:  nome do arquivo salvo na S3
user\_id: ID do usuário que realizou o upload
created\_at: data de criação do anexo
updated\_at: data da última atualização geral do anexo
id: ID do anexo criado" %}

```
{
	"document_id":  <document_id> : number,
	"name":  <name> : string,
	"description":  <description> : string,
	"filename":  <filename> : string,
	"path":  <path> : string,
	"driver":  <driver> : string,
	"status":  <status> : string,
	"key":  <key> : string,
	"user_id":  <user_id> : number,
	"created_at":  Date,
	"updated_at":  Date,
	"id":  <id> : number
}
```

{% endtab %}

{% tab title="400 Opção 1- Link enviado é inválido e não pode ser acessado.
Opção 2- Campo enviado é inválido." %}

```
Opção 1
{
	"message":  "Link is invalid"
}

Opção 2
{
	"error":  "BadRequest: Invalid parameters provided: (campo com problema)"
}
```

{% endtab %}
{% endtabs %}

### Body Exemplo

```
{
	"document_id": <document_id>,
	"name": <name>,
	"description": <description>,
	"filename": <filename>,
	"path": <path>,
	"driver": <driver>,
	"status": <status>,
	"send_attachment": <send_attachment>
}
```

## loadPendency

<mark style="color:green;">`POST`</mark> `/attachment/loadPendency`

API utilizada para carregar as pendências do documento.

#### Headers

| Name          | Type   | Description     |
| ------------- | ------ | --------------- |
| Authorization | string | Bearer \<token> |

#### Request Body

| Name         | Type   | Description                                    |
| ------------ | ------ | ---------------------------------------------- |
| document\_id | number | número de ID do documento associado aos anexos |

{% tabs %}
{% tab title="200 Atributos:
key:  nome do arquivo salvo na S3
user\_id: ID do usuário que realizou o upload
created\_at: data de criação do anexo
updated\_at: data da última atualização geral do anexo
id: ID do anexo criado" %}

```
[
  {
    "document_id":  <document_id> : number,
  	"name":  <name> : string,
  	"description":  <description> : string,
  	"filename":  <filename> : string,
  	"path":  <path> : string,
  	"driver":  <driver> : string,
  	"status":  <status> : string,
  	"key":  <key> : string,
  	"user_id":  <user_id> : number,
  	"created_at":  Date,
  	"updated_at":  Date,
  	"id":  <id> : number
  }
]
```

{% endtab %}

{% tab title="400 Campo enviado é inválido." %}

```
{
    "error":  "BadRequest: Invalid parameters provided: (campo com problema)"
}
```

{% endtab %}

{% tab title="404 " %}

```
{
    "error": "NotFound: Provided document_id parameter not exists on database"
}
```

{% endtab %}
{% endtabs %}

### Body Exemplo

```
{
     "document_id": <document_id>
}
```

## createPendency (POST)

<mark style="color:green;">`POST`</mark> `/attachment/createPendency`

API utilizada para criar anexos do tipo pendência.

#### Headers

| Name          | Type   | Description     |
| ------------- | ------ | --------------- |
| Authorization | string | Bearer \<token> |

#### Request Body

| Name             | Type    | Description                                                                                   |
| ---------------- | ------- | --------------------------------------------------------------------------------------------- |
| pendencies       | array   | pendencies: lista de pendencias para criar                                                    |
| send\_attachment | boolean | booleano para gerenciar se o arquivo deve ou não ser enviado na próxima comunicação via email |
| document\_id:    | number  | número de ID do documento que será associado ao arquivo                                       |
| name             | string  | name: nome que será exibido na plataforma                                                     |
| description      | string  | descrição que será exibida na plataforma                                                      |

{% tabs %}
{% tab title="200 Este retorno traz informações sobre a criação do anexo. Os atributos são os mesmos da requisição, com a adição das seguintes informações.

Atributos:
user\_id: ID do usuário que realizou o upload
created\_at: data de criação do anexo
updated\_at: data da última atualização geral do anexo
id: ID do anexo criado" %}

```
[
	{
		"document_id":  <document_id> : number,
		"name":  <name> : string,
		"description":  <description> : string,
		"user_id":  <user_id> : number,
		"created_at":  Date,
		"updated_at":  Date,
		"id":  <id> : number
	}
]
```

{% endtab %}

{% tab title="400 Campo enviado é inválido " %}

```
{
"error":  "BadRequest: Invalid parameters provided: (campo com problema)"
}
```

{% endtab %}
{% endtabs %}

### Body Exemplo

```
{
   "pendencies":[
      {
         "document_id":  <document_id>,
		 "name":  <name>,
		 "description":  <description>,
		 "status": <status>
      },
      ...
   ]
}
```

## updateById

<mark style="color:green;">`POST`</mark> `/attachment/updateByld`

API utilizada para atualizar os anexos/pendências do documento.

#### Headers

| Name          | Type   | Description     |
| ------------- | ------ | --------------- |
| Authorization | string | Bearer \<token> |

#### Request Body

| Name             | Type    | Description                                                                                   |
| ---------------- | ------- | --------------------------------------------------------------------------------------------- |
| send\_attachment | boolean | booleano para gerenciar se o arquivo deve ou não ser enviado na próxima comunicação via email |
| document\_id     | number  | número de ID do documento que será associado ao arquivo                                       |
| name             | string  | nome que será exibido na plataforma                                                           |
| description      | string  | descrição que será exibida na plataforma                                                      |
| filename         | string  | valor que será salvo como nome do arquivo na S3                                               |
| path             | string  | caminho do arquivo na nuvem                                                                   |
| driver           | string  | default                                                                                       |
| id               | number  | ID do anexo criado                                                                            |

{% tabs %}
{% tab title="200 " %}

```
{
  "document_id":  <document_id> : number,
	"name":  <name> : string,
	"description":  <description> : string,
	"filename":  <filename> : string,
	"path":  <path> : string,
	"driver":  <driver> : string,
	"status":  <status> : string,
	"key":  <key> : string,
	"user_id":  <user_id> : number,
	"created_at":  Date,
	"updated_at":  Date,
	"id":  <id> : number
}
```

{% endtab %}
{% endtabs %}

### Body Exemplo

```
{
	"document_id": <document_id>,
	"name": <name>,
	"description": <description>,
	"filename": <filename>,
	"path": <path>,
	"driver": <driver>,
	"status": <status>,
	"id": <id>,
  "send_attachment": <send_attachment>
}
```
