Développeurs

API Sylistar

Intégrez votre application SaaS à Sylistar : créez des tickets, échangez avec vos clients et connectez-les au portail.

URL de base

https://project--09d93aa0-dc3e-45c7-87f2-2495a148b74d.lovable.app/api/public

Tous les endpoints publics sont préfixés par /api/public. En développement, remplacez le domaine par celui de votre instance.

Procédure d'utilisation

  1. Générer une clé API. Dans le CRM, allez dansSupport → API, cliquez « Générer une clé », donnez-lui un nom (ex. « Production ») puis copiez la clé immédiatement — elle ne sera plus jamais affichée.
  2. Stocker la clé côté serveur. Conservez-la dans les variables d'environnement de votre backend (jamais en clair dans le code, jamais côté navigateur).
  3. Authentifier vos requêtes. Ajoutez le headerAuthorization: Bearer sk_live_… à chaque appel.
  4. Créer des tickets via POST /ticketsou connecter un client au portail via POST /clients/session(le lien retourné expire en 1h).
  5. Recevoir les notifications en temps réel dans le CRM (cloche en haut à droite) : nouveau ticket, réponse client, etc.
  6. Révoquer une clé compromise à tout moment depuis le même écran — elle est invalidée immédiatement.

Endpoints

POST
/api/public/tickets

Crée un ticket de support et associe (ou crée) le client par email.

Corps de la requête

{
  "subject": "Bug à la connexion",
  "description": "Je n'arrive pas à me connecter depuis ce matin",
  "priority": "high",
  "category": "bug",
  "requester": {
    "email": "client@exemple.com",
    "name": "John Doe",
    "external_id": "user_123"
  }
}

Réponse

{ "id": "uuid", "number": "TKT-202611-0001", "status": "open", "client_id": "uuid" }
GET
/api/public/tickets/:id

Récupère le statut d'un ticket.

Réponse

{ "id": "uuid", "number": "TKT-…", "subject": "…", "status": "open", "priority": "high" }
POST
/api/public/tickets/:id/messages

Ajoute un message client sur un ticket existant.

Corps de la requête

{ "body": "Merci pour votre retour", "requester_email": "client@exemple.com" }
POST
/api/public/clients/session

Échange la clé serveur contre un lien magique pour connecter un client au portail (SSO).

Corps de la requête

{
  "email": "client@exemple.com",
  "name": "John Doe",
  "external_id": "user_123",
  "redirect_to": "https://project--09d93aa0-dc3e-45c7-87f2-2495a148b74d.lovable.app/client-portal"
}

Réponse

{ "action_link": "https://…", "expires_in": 3600 }
POST
/api/public/clients/invite

Crée un compte client et envoie un lien d'invitation par email.

Corps de la requête

{ "email": "client@exemple.com", "name": "John", "external_id": "user_123" }

Exemple complet (curl)

curl -X POST 'https://project--09d93aa0-dc3e-45c7-87f2-2495a148b74d.lovable.app/api/public/tickets' \
  -H 'Authorization: Bearer sk_live_VOTRE_CLE' \
  -H 'Content-Type: application/json' \
  -d '{
    "subject": "Test depuis mon SaaS",
    "priority": "medium",
    "requester": { "email": "client@exemple.com", "name": "John" }
  }'

Bonnes pratiques de sécurité

  • N'utilisez jamais la clé sk_live_… côté navigateur.
  • Pour authentifier un client dans son navigateur, utilisez /clients/session.
  • Faites tourner (rotation) vos clés régulièrement et révoquez celles inutilisées.
  • Limitez les permissions au niveau réseau (IP allowlist via votre WAF si possible).