Elimina un número de la blacklist, o todo un grupo de números mediante `source_id`.

## URL de la API

URL a la que se envían las solicitudes HTTP:

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

> [!NOTE]
> Si la solicitud no llega a su destino, repítala en el [servidor de respaldo](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/servidor-de-respaldo/) `backup1.bulkgate.com`.

## Métodos HTTP admitidos

- `POST` - `application/json`

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

## Tabla de parámetros

| NOMBRE DEL PARÁMETRO | VALOR | OBLIGATORIO | VALOR PREDETERMINADO |
|:------------------|:---------------------------------------------------------|:-----------------------|:---------------|
| application_id    | [ID de aplicación](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/administracion-api/)           | **Sí**                | -              |
| application_token | [Token de autenticación de la aplicación](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/tokens-de-api/) | **Sí**                | -              |
| wallet            | Monedero del que se eliminan los números de la blacklist     | No                     | Monedero predeterminado |
| number            | Número que se va a eliminar de la blacklist                 | **Sí** o `source_id` | -              |
| source_id         | Identificador del grupo de números que se van a eliminar       | **Sí** o `number`    | -              |
| type              | Lista de la que se eliminan los números: `black-list` u `opt-out` | No           | `black-list`   |

> [!NOTE]
> Los parámetros `number` y `source_id` no pueden combinarse: utilice exactamente uno de ellos.

## Ejemplo de solicitud

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

## Respuesta

**En caso de éxito:**

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

**En caso de error:**

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

Donde:

- **type** y **error** (descripción del error) se encuentran en la [tabla de tipos de error](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/tipos-de-error/)
- **code** es el código de error HTTP
- **detail** es información adicional sobre el error

### Tipos de error de la Blacklist API

Además de los [tipos generales](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/tipos-de-error/), la Blacklist API devuelve sus propios tipos:

| TIPO                               | CUÁNDO SE PRODUCE                                        |
|:-----------------------------------|:---------------------------------------------------------|
| `invalid_wallet`                   | El monedero indicado no existe o no tiene acceso a él.   |
| `no_valid_numbers`                 | Ninguno de los números indicados es válido.              |
| `missing_parameters`               | Faltan tanto `number` como `source_id`.                  |
| `use_number_or_source_id_not_both` | Se han enviado `number` y `source_id` a la vez.          |
| `number_doesnt_exist`              | El número no está en la blacklist.                       |
| `invalid_number`                   | `number` no es un número de teléfono válido.             |
