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


---

# 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.workflow.d1.cx/configuracoes/attachment.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.
