# LGPD

## Objetivo

Receber solicitações para a exclusão de dados de um determinado CPF em uma instância do Zenvia NLU através de dois métodos:<br>

1. Solicitar a exclusão
2. Consultar o status da solicitação

A exclusão será realizada de forma assíncrona, dentro de um a dois dias, a partir da solicitação.

### Request

Método para solicitar a exclusão de dados de um determinado CPF

**Endpoint:** POST `https://api.altubots.com/lgpd/<instancia>/request`

**Header:** `x-api-key: <token>` (Para configurar o token acesse o menu APIs no Zenvia NLU e selecione "LGPD")

**Body template:**

```javascript
{
    "cpf": "12345678909"
}
```

### Response

### Status 200 (OK - Request received)

**Body:**

```javascript
{
    "status": "pending",
    "message": "Request received. Please use the status method to check progress"
}
```

###

### Status 400 (Bad request)

**Body:**

```javascript
{
    "status": "error",
    "message": "Invalid CPF"
}
```

###

### Status 401 (Unauthorized)

**Body:**

```javascript
{
    "status": "error",
    "message": "Unauthorized"
}
```

###

### Status code 500

**Body:**

```javascript
{
    "status": "error",
    "message": "Unexpected error"
}
```

## Status

Método para consultar o status de uma solicitação de exclusão de dados

**Endpoint: GET** `https://api.altubots.com/lgpd/<instancia>/status/<cpf>`

**Header:** `x-api-key: <token>`

### Response

### Status 200

**Body:**

```javascript
{
    "message": "Request found",
    "status": "pending / not_found / done / error",
    "details": {
        ...
    }
}
```

**Relação de status:**

* **pending:** solicitação não processada
* **not\_found:** solicitação processada, porém o CPF não foi encontrado na instância.
* **done:** solicitação processada e dados excluídos. No atributo details você vê um sumário do que foi excluído.
* **error:** erro de processamento da solicitação.

###

### Status 404

**Body:**

```javascript
{
    "status": "error",
    "message": "Request not found"
}
```

###

### Status 400 (Bad request)

**Body:**

```javascript
{
    "status": "error",
    "message": "Invalid CPF"
}
```

####

### Status 401 (Unauthorized)

**Body:**

```javascript
{
    "status": "error",
    "message": "Unauthorized"
}
```
