---
title: Tarefas
slug: tarefas
docTags: 
createdAt: 2025-11-22T19:54:31.988Z
---

# Autenticação

Todas as requisições devem incluir o token do WhatsApp no header:

```text
Authorization: Bearer SEU_TOKEN_WHATSAPP
```

***

## Endpoints Disponíveis

### 1. Listar Tarefas

**GET** `/api/tasks/list`

Lista todas as tarefas da empresa.

**Query Parameters (opcionais):**

- `userId` - Filtrar tarefas de um usuário específico
- `priority` - Filtrar por prioridade: `high`, `medium`, `low`
- `status` - Filtrar por status: `pending`, `completed`

**Exemplo:**

```bash
curl -X GET "https://seu-dominio.com/api/tasks/list?status=pending&priority=high" \
  -H "Authorization: Bearer SEU_TOKEN"
```

**Resposta:**

```json
[
  {
    "id": 1,
    "title": "Tarefa exemplo",
    "description": "Descrição da tarefa",
    "priority": "high",
    "status": "pending",
    "dueDate": "2024-12-31T00:00:00.000Z",
    "companyId": 1,
    "createdBy": 5,
    "assignedTo": 10,
    "creator": {
      "id": 5,
      "name": "João Silva",
      "email": "joao@email.com"
    },
    "assignee": {
      "id": 10,
      "name": "Maria Santos",
      "email": "maria@email.com"
    },
    "createdAt": "2024-11-20T10:00:00.000Z",
    "updatedAt": "2024-11-21T15:30:00.000Z"
  }
]
```

***

### 2. Obter Status de Tarefa

**GET** `/api/tasks/:id/status`

Retorna informações e status de uma tarefa específica.

**Parâmetros:**

- `id` - ID da tarefa (na URL)

**Exemplo:**

```bash
curl -X GET "https://seu-dominio.com/api/tasks/15/status" \
  -H "Authorization: Bearer SEU_TOKEN"
```

**Resposta:**

```json
{
  "id": 15,
  "title": "Tarefa exemplo",
  "status": "pending",
  "priority": "high",
  "dueDate": "2024-12-31T00:00:00.000Z",
  "createdBy": 5,
  "assignedTo": 10,
  "creator": {
    "id": 5,
    "name": "João Silva",
    "email": "joao@email.com"
  },
  "assignee": {
    "id": 10,
    "name": "Maria Santos",
    "email": "maria@email.com"
  },
  "createdAt": "2024-11-20T10:00:00.000Z",
  "updatedAt": "2024-11-21T15:30:00.000Z"
}
```

***

### 3. Criar Tarefa

**POST** `/api/tasks/create`

Cria uma nova tarefa.

**Body (JSON):**

- `title` *(obrigatório)* - Título da tarefa
- `createdBy` *(obrigatório)* - ID do usuário criador
- `description` *(opcional)* - Descrição da tarefa
- `priority` *(opcional)* - Prioridade: `high`, `medium`, `low` (padrão: `medium`)
- `dueDate` *(opcional)* - Data de vencimento (ISO 8601)
- `assignedTo` *(opcional)* - ID do usuário responsável

**Exemplo:**

```bash
curl -X POST "https://seu-dominio.com/api/tasks/create" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Nova tarefa via API",
    "description": "Descrição da tarefa",
    "priority": "high",
    "createdBy": 5,
    "assignedTo": 10,
    "dueDate": "2024-12-31T23:59:59.000Z"
  }'
```

**Resposta (201):**

```json
{
  "id": 20,
  "title": "Nova tarefa via API",
  "description": "Descrição da tarefa",
  "priority": "high",
  "status": "pending",
  "dueDate": "2024-12-31T23:59:59.000Z",
  "companyId": 1,
  "createdBy": 5,
  "assignedTo": 10,
  "sharedWith": [],
  "creator": {
    "id": 5,
    "name": "João Silva",
    "email": "joao@email.com"
  },
  "assignee": {
    "id": 10,
    "name": "Maria Santos",
    "email": "maria@email.com"
  },
  "createdAt": "2024-11-22T10:00:00.000Z",
  "updatedAt": "2024-11-22T10:00:00.000Z"
}
```

***

### 4. Finalizar Tarefa

**POST** `/api/tasks/:id/complete`

Marca uma tarefa como concluída (status = `completed`).

**Parâmetros:**

- `id` - ID da tarefa (na URL)

**Exemplo:**

```bash
curl -X POST "https://seu-dominio.com/api/tasks/15/complete" \
  -H "Authorization: Bearer SEU_TOKEN"
```

**Resposta:**

```json
{
  "id": 15,
  "title": "Tarefa exemplo",
  "status": "completed",
  "priority": "high",
  "companyId": 1,
  "createdBy": 5,
  "assignedTo": 10,
  "creator": {
    "id": 5,
    "name": "João Silva",
    "email": "joao@email.com"
  },
  "assignee": {
    "id": 10,
    "name": "Maria Santos",
    "email": "maria@email.com"
  },
  "updatedAt": "2024-11-22T14:30:00.000Z"
}
```

***

## Códigos de Resposta

| Código | Significado                               |
| ------ | ----------------------------------------- |
| 200    | Sucesso                                   |
| 201    | Criado com sucesso                        |
| 400    | Requisição inválida (parâmetros faltando) |
| 401    | Token inválido ou não autorizado          |
| 404    | Recurso não encontrado                    |
| 500    | Erro no servidor                          |

***

***

## Notas Importantes

1. **Token**: Use o token da tabela `Whatsapps` (mesmo token usado nas APIs de mensagens)
2. **Escopo**: As operações são limitadas à empresa do token
3. **IDs de Usuários**: Devem pertencer à mesma empresa
4. **Formato de Data**: Use ISO 8601 (`YYYY-MM-DDTHH:mm:ss.sssZ`)
