Charge les enregistrements de la blacklist — les numéros qui se sont désinscrits de la réception des messages ou qui ont été ajoutés à la blacklist par import ou via l'API.

## URL de l'API

URL utilisée pour l'envoi des requêtes HTTP :

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

> [!NOTE]
> Si la requête n'atteint pas sa destination, renvoyez-la sur le [serveur de secours](https://www.bulkgate.com/fr/documentation/administration-api-et-tokens/serveur-de-secours/) `backup1.bulkgate.com`.

## Méthodes HTTP prises en charge

- `POST` - `application/json`

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

> [!NOTE]
> L'API est limitée à `20` requêtes par jour.

## Tableau des paramètres

| NOM DU PARAMÈTRE    | VALEUR                                                                                                                                                             | OBLIGATOIRE               | VALEUR PAR DÉFAUT  |
|:------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------|:---------------|
| application_id    | [ID d'application](https://www.bulkgate.com/fr/documentation/administration-api-et-tokens/administration-api/)                                                                                                                     | **Oui**                 | -              | 
| application_token | [Jeton d'authentification de l'application](https://www.bulkgate.com/fr/documentation/administration-api-et-tokens/tokens-d-api/)	                                                                                                          | **Oui**                 | -              |
| from              | Sélectionne les enregistrements **à partir** d'une date donnée. Accepte le format [timestamp Unix](https://en.wikipedia.org/wiki/Unix_time) ou [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). | **Oui**                 | -              |
| to                | Sélectionne les enregistrements **jusqu'à** une date donnée. Accepte le format [timestamp Unix](https://en.wikipedia.org/wiki/Unix_time) ou [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).	  | Non                      | `now`          |
| campaign_id       | Sélectionne uniquement les enregistrements d'une campagne donnée                                                                                                                      | Non                      | -              |
| wallet            | Sélectionne uniquement les enregistrements d'un portefeuille donné                                                                                                                        | Non                      | Portefeuille par défaut |

> [!NOTE]
> L'intervalle maximal entre `from` et `to` est de 30 jours.

## Exemple de requête

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

## Réponse

**En cas de succès :**

```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": "Je ne souhaite pas recevoir de messages commerciaux.",
            "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
        }
    ]
}
```

Où :

- **key** et **id** sont l'identifiant de l'enregistrement (même valeur)
- **phone_number** est le numéro au format international
- **type** vaut `black-list` ou `opt-out`
- **created** et **modified** indiquent la date de création et de dernière modification de l'enregistrement, au format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
- **source** indique comment le numéro a été ajouté à la blacklist — `web`, `import`, `api`, `manual` ou `auto`
- **source_key** est l'identifiant du groupe avec lequel le numéro a été ajouté. Pour les enregistrements avec `source` = `import`, il contient le nom du fichier importé.
- **reason** est le motif indiqué lors de l'ajout du numéro à la blacklist

**En cas d'erreur :**

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

Où :

- **type** et **error** (description de l'erreur) sont décrits dans le [tableau des types d'erreurs](https://www.bulkgate.com/fr/documentation/administration-api-et-tokens/types-d-erreurs-api/)
- **code** est le code d'erreur HTTP
- **detail** contient des informations complémentaires sur l'erreur

### Types d'erreurs de l'API Blacklist

Outre les [types généraux](https://www.bulkgate.com/fr/documentation/administration-api-et-tokens/types-d-erreurs-api/), l'API Blacklist renvoie ses propres types :

| TYPE                              | QUAND SE PRODUIT-ELLE                                                |
|:----------------------------------|:-----------------------------------------------------------------|
| `invalid_wallet`                  | Le portefeuille indiqué n'existe pas ou vous n'y avez pas accès.   |
| `invalid_input_parameters`        | `from` est absent, a un format non valide ou n'est pas antérieur à `to`. |
| `maximal_date_range_is_30_days`   | L'intervalle entre `from` et `to` dépasse 30 jours.      |
| `the_daily_quota_has_been_exceeded`| Le quota de requêtes est épuisé.                                 |
