# 📘 Documentation Admin – Intégration WhatsApp Business API ## 🔐 Configuration de base ### `.env` requis ```env WHATSAPP_TOKEN=EAA... WHATSAPP_PHONE_NUMBER_ID=1234567890 WHATSAPP_WEBHOOK_TOKEN=secrettoken ``` ### Vérification du webhook (Meta) - URL : `https://yourdomain/api/whatsapp/webhook` - Token de vérification : doit correspondre à `WHATSAPP_WEBHOOK_TOKEN` --- ## 📩 Envoi de message **Route :** `POST /api/message/send` ### Exemple JSON (texte) ```json { "to": "33612345678", "type": "text", "text": { "body": "Bonjour 👋" } } ``` > Supporte aussi `image`, `video`, `document`, `interactive`, etc. --- ## 📥 Réception de messages / statuts - Le webhook `POST /api/whatsapp/webhook` : - enregistre les messages reçus dans la table `conversations` - décrémente les crédits `CurrentMonthCredits` - met à jour le `status` d'un message (`delivered`, `read`, etc.) --- ## 🧾 Historique utilisateur ### Interface admin - URL : `/admin/user/{id}/conversations` - Permet : - de visualiser tous les messages avec filtres - de voir la conversation complète au clic sur une ligne (HTMX) ### API : `GET /api/user/{id}/conversations` --- ## 💬 Modèle de conversation ```go type Conversation struct { UserID uint From string To string MessageID string Type string Content string Direction string // inbound / outbound Status string // delivered, read, sent... } ``` --- ## 🧮 Crédit consommé par message | Type | Crédit | |--------------|--------| | text | 1 | | image/video | 2 | | document | 2 | | interactive | 1 | | sticker/audio| 1 | | reaction | 0 | --- ## ✅ À tester - [ ] Vérifier réception via webhook - [ ] Vérifier affichage des conversations admin - [ ] Vérifier décompte de crédits - [ ] Tester `GET` de validation webhook avec Meta