# Hubs de stockage (points de retrait)

Les hubs de stockage sont des emplacements gérés par le tenant : points de retrait, entrepôts, magasins ou tout lieu de collecte nécessaire à votre processus de traitement.

Contrairement aux adresses personnelles, qui appartiennent à un utilisateur, les hubs de stockage appartiennent au **tenant** et sont visibles sans authentification. Ils peuvent servir de :

- **Points de retrait** — lieux où les clients récupèrent leurs commandes
- **Entrepôts** — lieux d’expédition ou de préparation logistique
- **Magasins** — points de vente physiques pouvant aussi servir de lieux de collecte
- **Hubs de dépôt** — lieux tiers pour les échanges entre particuliers ou la revente

Les hubs de stockage sont créés et gérés avec l’API Addresses standard et `type: "storage_hub"`.

---

## Lister les hubs de stockage

**GET** `/v1/addresses?type=storage_hub`

Renvoie toutes les adresses de type hub de stockage du tenant. Aucun `user_id` n’est requis : les hubs sont publics au niveau du tenant.

### Champs de la réponse

| Champ | Type | Description |
|---|---|---|
| `id` | integer | Identifiant unique de l’adresse |
| `name` | string | Nom du hub (par exemple « Entrepôt principal » ou « Magasin du centre-ville ») |
| `address_line_1` | string | Adresse de rue |
| `address_line_2` | string | Ligne d’adresse complémentaire |
| `city` | string | Ville |
| `state` | string | État ou région |
| `post_code` | string | Code postal |
| `country` | string | Nom du pays |
| `country_code` | string | Code pays ISO |
| `formatted_address` | string | Adresse complète sous forme de texte |
| `phone_number` | string | Téléphone de contact du hub |
| `landmark` | string | Point de repère ou indication à proximité |
| `latitude` | number | Latitude GPS |
| `longitude` | number | Longitude GPS |
| `type` | string | Toujours `"storage_hub"` |

---

## Ajouter un hub de stockage

**POST** `/v1/addresses`

Crée un nouveau hub de stockage pour le tenant. Réservé aux administrateurs.

### Champs de la requête

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `address.type` | string | Oui | Doit valoir `"storage_hub"` |
| `address.name` | string | Oui | Nom du hub |
| `address.address_line_1` | string | Oui | Adresse de rue |
| `address.address_line_2` | string | Non | Appartement, étage ou bâtiment |
| `address.city` | string | Non | Ville |
| `address.state` | string | Non | État ou région |
| `address.post_code` | string | Non | Code postal |
| `address.country` | string | Non | Nom du pays |
| `address.country_code` | string | Non | Code pays ISO (par exemple `"US"`, `"GB"`) |
| `address.phone_number` | string | Non | Numéro de contact du lieu |
| `address.landmark` | string | Non | Point de repère ou indication |
| `address.formatted_address` | string | Non | Remplace le texte d’adresse affiché |
| `address.coordinates.latitude` | number | Non | Latitude GPS |
| `address.coordinates.longitude` | number | Non | Longitude GPS |

---

## Modifier un hub de stockage

**PUT** `/v1/addresses/:id`

Met à jour un hub existant. Transmettez `address.type: "storage_hub"` et les champs à modifier. Les champs sont les mêmes que pour l’ajout.

---

## Supprimer un hub de stockage

**DELETE** `/v1/addresses/:id`

Archive un hub de stockage. Il n’apparaît plus dans les résultats de liste.
