Remove um número da blacklist ou um grupo inteiro de números através de `source_id`.

## URL da API

URL utilizado para enviar os pedidos HTTP:

```url
https://portal.bulkgate.com/api/1.0/black-list/remove
```

> [!NOTE]
> Se o pedido não chegar ao destino, repita-o no [servidor de reserva](https://www.bulkgate.com/pt/documentacao/administracao-da-api/servidor-de-reserva/) `backup1.bulkgate.com`.

## Métodos HTTP suportados

- `POST` - `application/json`

```http
POST /api/1.0/black-list/remove HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
```

## Tabela de parâmetros

| NOME DO PARÂMETRO    | VALOR                                                   | OBRIGATÓRIO              | VALOR PREDEFINIDO  |
|:------------------|:---------------------------------------------------------|:-----------------------|:---------------|
| application_id    | [ID da aplicação](https://www.bulkgate.com/pt/documentacao/administracao-da-api/administracao-de-apis/)           | **Sim**                | -              | 
| application_token | [Token de autenticação da aplicação](https://www.bulkgate.com/pt/documentacao/administracao-da-api/tokens-de-api/)	 | **Sim**                | -              |
| wallet            | Carteira da qual devem ser removidos os números da blacklist | Não                     | Carteira predefinida |
| number            | Número a remover da blacklist	                           | **Sim** ou `source_id` | -              |
| source_id         | Identificador do grupo de números a remover	           | **Sim** ou `number`    | -              |
| type              | A lista da qual os números são removidos — `black-list` ou `opt-out` | Não           | `black-list`   |

> [!NOTE]
> Os parâmetros `number` e `source_id` não podem ser combinados — utilize exatamente um deles.

## Exemplo de pedido

```http-json
POST /api/1.0/black-list/remove HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
  "application_id": 451,
  "application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
  "wallet": "bg1905014138000023",
  "source_id": "api-my-import"
}
```

## Resposta

**Em caso de sucesso:**

```json
{
    "data": {
        "message": "Black list contacts have been removed"
    }
}
```

**Em caso de erro:**

```json
{
    "type": "invalid_wallet",
    "code": 400,
    "error": "Invalid wallet",
    "detail": null
}
```

```json
{
    "type": "no_valid_numbers",
    "code": 400,
    "error": "No valid numbers",
    "detail": null
}
```

```json
{
    "type": "missing_parameters",
    "code": 400,
    "error": "Missing parameters",
    "detail": null
}
```

```json
{
    "type": "use_number_or_source_id_not_both",
    "code": 400,
    "error": "Use number or source id not both",
    "detail": null
}
```

```json
{
    "type": "number_doesnt_exist",
    "code": 400,
    "error": "Number doesnt exist",
    "detail": null
}
```

```json
{
    "type": "invalid_number",
    "code": 400,
    "error": "Invalid number",
    "detail": null
}
```

Em que:

- **type** e **error** (descrição do erro) encontram-se na [tabela de tipos de erros](https://www.bulkgate.com/pt/documentacao/administracao-da-api/tipos-de-erro-api/)
- **code** é o código de erro HTTP
- **detail** contém informações adicionais sobre o erro

### Tipos de erros da Blacklist API

Além dos [tipos gerais](https://www.bulkgate.com/pt/documentacao/administracao-da-api/tipos-de-erro-api/), a Blacklist API devolve os seus próprios:

| TIPO                               | QUANDO OCORRE                                            |
|:-----------------------------------|:---------------------------------------------------------|
| `invalid_wallet`                   | A carteira indicada não existe ou não tem acesso a ela. |
| `no_valid_numbers`                 | Nenhum dos números indicados é válido.                   |
| `missing_parameters`               | Faltam tanto `number` como `source_id`.                  |
| `use_number_or_source_id_not_both` | `number` e `source_id` foram enviados em conjunto.       |
| `number_doesnt_exist`              | O número não está na blacklist.                          |
| `invalid_number`                   | `number` não é um número de telefone válido.             |
