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

# Authentification et scopes

> Authentifier les requêtes et comprendre les champs masqués.

Créez la clé dans [Paramètres → Intégrations → Clés API](/fr/integrations/api).
La fonctionnalité API doit être active pour ce restaurant. Conservez le jeton
complet côté serveur : il n’est affiché qu’à la création. Le préfixe de la liste
ne suffit pas.

## Vérifier la clé

```bash theme={null}
curl 'https://app.eat-now.io/api/partner/v1/me' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
```

`GET /me` accepte toute clé valide, sans scope supplémentaire, et retourne son
contexte restaurant et ses scopes. Une clé expirée, révoquée, invalide ou liée à
un restaurant sans fonctionnalité API est refusée avec
`401 INVALID_AUTHENTICATION`. Un scope manquant produit `403 INSUFFICIENT_SCOPE`
; `details.required_scopes` indique les permissions nécessaires. Les rôles des
collaborateurs sont distincts.

## Scopes

| Scope                         | Usage                                                                                               |
| ----------------------------- | --------------------------------------------------------------------------------------------------- |
| `CATALOG_READ`                | Tables, salles, services, prescripteurs et remises.                                                 |
| `AVAILABILITY_READ`           | Recherche de disponibilités et vérification d’un créneau.                                           |
| `RESERVATIONS_READ`           | Recherche et détail des réservations.                                                               |
| `RESERVATIONS_READ_SENSITIVE` | Dévoiler les champs sensibles des réponses ; nécessite aussi le scope de l’opération.               |
| `RESERVATIONS_WRITE`          | Créer et modifier des réservations.                                                                 |
| `RESERVATIONS_FORCE_INSERT`   | À la création : bypass\_availability ou initial\_status, en plus de RESERVATIONS\_WRITE.            |
| `RESERVATIONS_FORCE_CONFIRM`  | À la création : bypass\_approval, en plus de RESERVATIONS\_WRITE.                                   |
| `RESERVATIONS_CANCEL`         | Annuler des réservations.                                                                           |
| `WEBHOOKS_WRITE`              | Sélectionnable, mais aucune route publique v1 ne gère les webhooks. Utilisez les paramètres EatNow. |
| `MISSED_CALLS_WRITE`          | Signaler des appels manqués ; peut envoyer un WhatsApp.                                             |

## Données sensibles

Sans `RESERVATIONS_READ_SENSITIVE`, les réponses de réservation masquent :

* Recherche : `customer.email`, `customer.phone_number` et `customer.lang`
  valent `null`.
* Détail, création, modification et annulation : email, téléphone et langue
  client, `custom_message`, `allergies`, `metadata`, `feedback`,
  `total_amount_paid` et `payments` valent `null` ; `attached_files` vaut `[]`.

Le nom et l’identifiant client restent visibles, ainsi que les champs non
masqués, notamment les tags et le motif d’annulation. Le résumé des paiements
reste dans les résultats de recherche. Ce scope ne garantit donc pas une réponse
sans donnée personnelle. Un `customer: null` peut aussi représenter une
réservation anonyme. Ne remplacez pas les données de votre système par ces
valeurs masquées.

Les webhooks utilisent leur propre secret et ne sont pas filtrés par les scopes
d’une clé API : leurs messages peuvent contenir coordonnées, notes et paiements.

Le champ `sensitive_data_included` indique si le scope sensible a été appliqué.
Même avec ce scope, une adresse email historique invalide est retournée à
`null`.

## Remplacer une clé

Une clé perdue ne se relit pas. Créez un remplacement, mettez à jour le
connecteur, vérifiez `GET /me`, puis révoquez l’ancienne clé selon votre
procédure. Ne transmettez jamais le jeton au support ni dans une URL.
