> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chataigne.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Sélectionner le catalogue actif

> Choisissez le catalogue de l’établissement utilisé par l’IA pour prendre les commandes.

Un établissement peut avoir plusieurs catalogues rattachés, mais l’IA prend les commandes depuis un seul catalogue actif. Sélectionnez-le une fois le catalogue créé et, pour un snapshot complet, après la réussite de sa synchronisation.

```http theme={null}
PUT /v1/locations/{location_id}/active_catalog
```

Cette opération modifie uniquement la sélection pour l’établissement. Elle ne copie, ne modifie et ne supprime aucun catalogue.

## Sélectionner un catalogue

Envoyez l’`id` public du catalogue limité à l’établissement, tel qu’il est retourné par l’API Catalogues. N’envoyez pas un ID interne de la base de données Chataigne.

```bash theme={null}
curl https://server.chataigne.ai/v1/locations/loc_r8v4n2c6tz/active_catalog \
  -X PUT \
  -H "x-api-key: $CHATAIGNE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "catalog_id": "delivery-menu"
  }'
```

La requête nécessite `catalog.write`. La clé API doit autoriser l’établissement ciblé.

Une requête réussie retourne `200 OK` et renvoie l’ID public sélectionné :

```json theme={null}
{
  "object": "active_catalog",
  "location_id": "loc_r8v4n2c6tz",
  "catalog_id": "delivery-menu"
}
```

Vous pouvez répéter la sélection avec le même `catalog_id`. Pour revenir au catalogue précédent, envoyez son ID public.

## Limitation à l’établissement

Les IDs de catalogue ne sont uniques qu’au sein d’un établissement. Chataigne résout le `catalog_id` dans l’établissement indiqué dans l’URL et conserve la relation privée correspondante en interne.

Un catalogue inexistant ou non rattaché à cet établissement retourne `404 catalog_not_found`. Ce comportement sécurisé par défaut empêche une clé limitée à un établissement de sélectionner le catalogue d’un autre.

## Validation et erreurs

| Statut | Code                       | Cause                                                                         |
| ------ | -------------------------- | ----------------------------------------------------------------------------- |
| `400`  | `catalog_validation_error` | Le corps n’est pas un objet, ou le `catalog_id` est absent ou invalide.       |
| `400`  | `parameter_not_allowed`    | Le corps contient un champ autre que `catalog_id`.                            |
| `404`  | `location_not_found`       | L’établissement ciblé n’existe pas.                                           |
| `404`  | `catalog_not_found`        | L’ID public est inconnu ou le catalogue n’est pas rattaché à l’établissement. |

La référence générée **API Catalogues** dans la barre latérale contient les schémas complets de requête et de réponse.
