Acti-Informatique API
API REST + WebSocket pour le panel client, le support en ligne et l'application Electron de contrôle à distance. Toutes les communications sont chiffrées via HTTPS/WSS.
API En ligne
MySQL Vérification…
WebRTC
Uptime
Base URL https://api.acti-informatique.com
🔐 Authentification
Les routes protégées nécessitent un token JWT dans le header Authorization.

🔑 JWT Bearer Token

Obtenez un token JWT via votre système d'authentification, puis incluez-le dans chaque requête protégée.

// Header HTTP Authorization: Bearer <votre_token_jwt>
// Socket.IO const socket = io('https://api.acti-informatique.com', { auth: { token: '<votre_token_jwt>' } });
🌐 Clients autorisés
L'API accepte les requêtes des origines suivantes via CORS.
🖥️ Panel / Support
support.acti-informatique.com
WebRTC Push Socket.IO
💬 Site public
acti-informatique.com
Tchat Push Socket.IO
📧 Webmail
mail.acti-informatique.com
Push Socket.IO
💻 App Electron
capacitor://localhost
WebRTC Contrôle distant
⚠️ Codes d'erreur
CodeSignificationAction recommandée
400Données invalides ou manquantesVérifier les paramètres envoyés
401Token JWT manquant ou invalideSe reconnecter et obtenir un nouveau token
403Accès refusé (rôle insuffisant)Vérifier les permissions du compte
404Route ou ressource introuvableVérifier l'URL et la méthode HTTP
429Trop de requêtes (rate limit)Attendre avant de réessayer
500Erreur serveur interneContacter le support si persistant
⚙️ Système Public
GET /health Statut du serveur Public
Réponse
{ "status": "ok", "uptime": 3600, "env": "production" }
GET /push/vapid-public-key Clé publique VAPID pour les push notifications Public
Réponse
{ "success": true, "publicKey": "BHd2pMht6Ds3..." }
💬 Feedback Public
POST /feedback/uninstall Enregistrer un feedback de désinstallation Public
ParamètreTypeRequisDescription
reasonstringOuiRaison de désinstallation (max 200 car.)
ratingnumberOuiNote de 0 à 5
commentstringNonCommentaire libre (max 1000 car.)
emailstringNonEmail de contact
versionstringNonVersion de l'application
Rate limit
20 requêtes / 5 minutes par IP
🎥 WebRTC — Contrôle à distance JWT requis
Sessions de contrôle à distance entre agents support et clients via l'application Electron.
POST /webrtc/session/create Créer une session de contrôle à distance 🔐 JWT
ParamètreTypeRequisDescription
conversationIdstringOuiID de la conversation support associée
agentEmailstringOuiEmail de l'agent qui initie la session
Réponse
{ "success": true, "sessionId": "remote_1234567890_abc123" }
POST /webrtc/session/end Terminer une session WebRTC 🔐 JWT
ParamètreTypeRequisDescription
sessionIdstringOuiID de la session à terminer
POST /webrtc/session/resolve-code Résoudre un code 6 chiffres en sessionId 🔐 JWT
ParamètreTypeRequisDescription
codestringOuiCode format 123-456 affiché au client
GET /webrtc/stats Sessions actives — admin seulement 🔐 JWT 👑 Admin
Réponse
{ "activeSessions": 2, "sessions": [...] }
GET /webrtc/session/:sessionId/logs Logs d'une session — admin seulement 🔐 JWT 👑 Admin
QueryTypeRequisDescription
limitnumberNonNombre de logs à retourner (défaut 100, max 500)
🔔 Push Notifications JWT requis
Notifications web push via le protocole Web Push (VAPID). Compatible Chrome, Firefox, Edge, Safari.
POST /push/subscribe S'abonner aux notifications push 🔐 JWT
ParamètreTypeRequisDescription
userIdstringOuiID de l'utilisateur (doit correspondre au token JWT)
subscriptionobjectOuiObjet PushSubscription obtenu via registration.pushManager.subscribe()
POST /push/unsubscribe Se désabonner des notifications push 🔐 JWT
ParamètreTypeRequisDescription
userIdstringOuiID de l'utilisateur à désabonner
POST /push/send Envoyer une notification à un utilisateur 🔐 JWT
ParamètreTypeRequisDescription
userIdstringOuiDestinataire
titlestringOuiTitre de la notification (max 100 car.)
bodystringOuiCorps du message (max 300 car.)
dataobjectNonDonnées supplémentaires (URL, action…)
Rate limit
10 requêtes / minute par token
POST /push/broadcast Envoyer à plusieurs utilisateurs — admin seulement 🔐 JWT 👑 Admin
ParamètreTypeRequisDescription
userIdsarrayOuiListe d'IDs destinataires (max 1000)
titlestringOuiTitre (max 100 car.)
bodystringOuiCorps (max 300 car.)
dataobjectNonDonnées supplémentaires
GET /push/stats Nombre d'abonnements actifs — admin seulement 🔐 JWT 👑 Admin
Réponse
{ "totalSubscriptions": 42 }
⚡ Socket.IO — Événements temps réel
Connexion WebSocket avec authentification JWT obligatoire. Toutes les connexions sans token valide sont rejetées.

📡 Connexion

const socket = io('https://api.acti-informatique.com', { auth: { token: '<jwt>' }, transports: ['websocket', 'polling'] });
ÉvénementDirectionDescription
authenticate→ serveurS'identifier avec userId, username, avatar
startConversation→ serveurRejoindre une salle de conversation
typing→ serveurIndiquer l'état de frappe (agent/client)
typingStatus← serveurDiffusion de l'état de frappe
user:connected← serveurNotification de connexion d'un utilisateur
user:disconnected← serveurNotification de déconnexion
webrtc:join→ serveurRejoindre une session WebRTC (role: agent|client)
webrtc:signal↔ relayéSignaux WebRTC (offer, answer, ICE candidates)
webrtc:peer-connected← serveurL'autre partie a rejoint la session
chat:message↔ relayéMessage de tchat dans une session WebRTC
push:register→ serveurEnregistrer un abonnement push via socket
push:notify→ serveurEnvoyer une notification push via socket