maestor / docs

Endpoint SAV

Lister, créer, mettre à jour et clôturer les dossiers SAV via l'API.

L’endpoint /api/v1/sav gère les dossiers de Service Après-Vente.

Lister les SAV

GET /api/v1/sav
Paramètre queryTypeDescription
statutstringouvert, en_cours, clos
client_idintFiltrer par client
poseur_idintFiltrer par poseur assigné
depuisdateSAV créés après cette date (YYYY-MM-DD)
limiteintNombre de résultats (défaut 50, max 200)
pageintNuméro de page

Réponse :

{
  "success": true,
  "data": [
    {
      "id": 123,
      "reference": "SAV-2024-00123",
      "client": { "id": 456, "nom": "Dupont", "prenom": "Jean" },
      "description": "Problème charnière meuble haut",
      "statut": "en_cours",
      "priorite": "normale",
      "date_creation": "2024-01-15T10:30:00Z",
      "poseur_assigne": { "id": 789, "nom": "Martin Pierre" }
    }
  ],
  "pagination": { "page": 1, "limite": 50, "total": 234 }
}

Obtenir un SAV

GET /api/v1/sav/{id}

Réponse enrichie avec interventions et historique complets.

Créer un SAV

POST /api/v1/sav
X-Request-Timestamp: <unix>
{
  "client_id": 456,
  "description": "Porte qui ne ferme plus correctement",
  "type_probleme": "reglage",
  "priorite": "haute",
  "photos": ["data:image/jpeg;base64,/9j/4AAQSkZJRg..."]
}
ChampTypeRequisContraintes
client_idintClient existant
descriptionstring10-2000 caractères
type_problemestringquincaillerie, electromenager, plan_travail, facade, reglage, autre
prioritestringbasse, normale, haute, urgente
photosarrayMax 10, base64 ou URL

Réponse 201 Created :

{ "success": true, "data": { "id": 124, "reference": "SAV-2024-00124" } }

Mettre à jour un SAV

PUT /api/v1/sav/{id}
{ "statut": "en_cours", "poseur_id": 789, "notes_internes": "Client dispo le matin uniquement" }

Clôturer un SAV

POST /api/v1/sav/{id}/cloturer
{
  "resolution": "Charnière remplacée",
  "photo_avant": "data:image/jpeg;base64,...",
  "photo_apres": "data:image/jpeg;base64,...",
  "signature_client": "data:image/png;base64,..."
}

La clôture déclenche :

  • L’envoi du PV de réception au client (email + WhatsApp si activé)
  • Le webhook sav.closed vers vos URLs configurées
  • L’enregistrement du hash SHA-256 du dossier pour valeur probante

Étapes suivantes