Descarga los registros del blacklist: números que se dieron de baja de la recepción de mensajes o que se añadieron al blacklist mediante importación o a través de la API.

## URL de la API

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

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

> [!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/load HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
```

> [!NOTE]
> La API tiene una cuota de `20` solicitudes al día.

## Tabla de parámetros

| NOMBRE DEL PARÁMETRO    | VALOR                                                                                                                                                             | OBLIGATORIO               | VALOR PREDETERMINADO  |
|:------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------|:---------------|
| application_id    | [ID de la 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í**                 | -              |
| from              | Selecciona los registros **desde** una fecha concreta. Admite el formato [unix timestamp](https://en.wikipedia.org/wiki/Unix_time) o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). | **Sí**                 | -              |
| to                | Selecciona los registros **hasta** una fecha concreta. Admite el formato [unix timestamp](https://en.wikipedia.org/wiki/Unix_time) o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).	  | No                      | `now`          |
| campaign_id       | Selecciona solo los registros de una campaña concreta                                                                                                                      | No                      | -              |
| wallet            | Selecciona solo los registros de un monedero concreto                                                                                                                        | No                      | Monedero predeterminado |

> [!NOTE]
> El intervalo máximo entre `from` y `to` es de 30 días.

## Ejemplo de solicitud

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

{
  "application_id": 451,
  "application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
  "campaign_id": "id-bulkgate-000001",
  "wallet": "bg1905014138000023",
  "from": "2018-05-14T18:30:00-01:00",
  "to": "2018-05-15T18:30:00-01:00"
}
```

## Respuesta

**En caso de éxito:**

```json
{
    "data": [
        {
            "key": "198668",
            "id": "198668",
            "wallet": "bg1905014138000023",
            "phone_number": "420777777777",
            "country": "cz",
            "type": "black-list",
            "created": "2018-11-21T15:30:31+01:00",
            "modified": null,
            "source": "web",
            "source_key": null,
            "reason": "No quiero recibir mensajes comerciales.",
            "campaign_id": "id-bulkgate-000001",
            "application_id": 451,
            "channel": null,
            "tag": null,
            "contact": null
        },
        {
            "key": "198667",
            "id": "198667",
            "wallet": "bg1905014138000023",
            "phone_number": "420777777778",
            "country": "cz",
            "type": "black-list",
            "created": "2018-11-21T15:30:35+01:00",
            "modified": null,
            "source": "import",
            "source_key": "import.csv",
            "reason": null,
            "campaign_id": null,
            "application_id": 451,
            "channel": null,
            "tag": null,
            "contact": null
        }
    ]
}
```

Donde:

- **key** e **id** son el identificador del registro (el mismo valor)
- **phone_number** es el número en formato internacional
- **type** es `black-list` u `opt-out`
- **created** y **modified** son la fecha y hora en que se creó el registro y en que se modificó por última vez, en [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
- **source** indica cómo llegó el número al blacklist: `web`, `import`, `api`, `manual` o `auto`
- **source_key** es el identificador del grupo con el que se añadió el número. En los registros con `source` = `import` contiene el nombre del archivo importado.
- **reason** es el motivo indicado al añadir el número al blacklist

**En caso de error:**

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

```json
{
    "type": "invalid_input_parameters",
    "code": 400,
    "error": "Invalid input parameters",
    "detail": null
}
```

```json
{
    "type": "maximal_date_range_is_30_days",
    "code": 400,
    "error": "Maximal date range is 30 days",
    "detail": null
}
```

```json
{
    "type": "the_daily_quota_has_been_exceeded",
    "code": 400,
    "error": "The daily quota has been exceeded",
    "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 API Blacklist

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

| TIPO                              | CUÁNDO SE PRODUCE                                              |
|:----------------------------------|:-----------------------------------------------------------------|
| `invalid_wallet`                  | El monedero indicado no existe o no tiene acceso a él.   |
| `invalid_input_parameters`        | Falta `from`, tiene un formato no válido o no es anterior a `to`. |
| `maximal_date_range_is_30_days`   | El intervalo entre `from` y `to` es superior a 30 días.      |
| `the_daily_quota_has_been_exceeded`| Se ha agotado la cuota de solicitudes.                                 |
