Le Hub porte les briques cœur de la plateforme : rendez-vous, contacts & pipeline (CRM), facturation, agenda, tableaux de bord, ainsi que la barre latérale et l'onboarding.
- Base URL — prod :
https://api.puwapi.com· dev :http://localhost:5200 - Auth : JWT.
Rendez-vous (module appointments)¶
| Base | Méthodes | Rôle |
|---|---|---|
/api/appointments | GET, GET {id}, POST, PATCH {id}, DELETE {id} | Rendez-vous |
/api/rdv/services | GET, POST, PATCH {id}, DELETE {id} | Prestations |
/api/rdv/service-groups | GET, POST, PATCH {id}, DELETE {id} | Groupes de prestations |
/api/rdv/staff | GET, POST, PATCH {id}, POST {id}/link, DELETE {id} | Collaborateurs |
Gating appointments. Les disponibilités du staff peuvent être lues depuis RH.
Contacts (CRM)¶
Base : /api/customers — party model : personnes et organisations, rôles multiples,
coordonnées structurées, relations entre fiches, champs personnalisés.
| Méthode | Route | Rôle |
|---|---|---|
| GET | /api/customers?role=&kind=, /api/customers/{id} | Lister (filtres) / détail |
| POST · PATCH · DELETE | /api/customers[/{id}] | CRUD |
| POST · DELETE | /api/customers/{id}/relations[/{relationId}] | Relations entre fiches |
| GET · PUT · DELETE | /api/customers/fields[/{key}] | Champs personnalisés du tenant |
| GET | /api/customers/{id}/timeline | Timeline unifiée (activités + factures + RDV) |
| POST | /api/customers/{id}/activities | Note, appel, email, réunion, tâche |
| PATCH · DELETE | /api/customers/activities/{id} | Compléter / supprimer |
| GET | /api/customers/tasks | Relances ouvertes (transversal) |
| GET | /api/customers/{id}/score | Score de santé (0-100, risque, signaux) |
Pipeline commercial : /api/pipelines (list, {id}/board avec prévision pondérée,
CRUD) et /api/deals (CRUD, {id}/move, {id}/win|lose|reopen, ?customerId=).
Détail complet : CRM — contacts, timeline, pipeline & scoring.
Facturation¶
Base : /api/invoices
| Méthode | Route | Rôle |
|---|---|---|
| GET | /api/invoices, /api/invoices/{id} | Lister / détail |
| POST | /api/invoices | Créer (lignes, TVA) |
| PUT | /api/invoices/{id} | Modifier |
| POST | /api/invoices/{id}/issue | Émettre |
| POST | /api/invoices/{id}/credit-note | Avoir |
| POST | /api/invoices/{id}/pay | Marquer payée |
| DELETE | /api/invoices/{id} | Supprimer (brouillon) |
Facturation électronique (Factur-X / CII) — /api/invoices/{id}/einvoice :
| Méthode | Route | Rôle |
|---|---|---|
| GET | /api/invoices/{id}/einvoice | État e-invoice |
| GET | /api/invoices/{id}/einvoice/factur-x.xml | XML CII |
| POST | /api/invoices/{id}/einvoice/submit | Soumettre (PPF/PDP) |
Agenda¶
Base : /api/calendar (CalDAV unifié)
| Méthode | Route | Rôle |
|---|---|---|
| GET/POST | /api/calendar/events | Événements |
| PATCH/DELETE | /api/calendar/events/{id} | Modifier / supprimer |
| GET | /api/calendar/free-busy | Disponibilités |
| GET | /api/calendar/sync-info | Infos de synchronisation |
Organisation (business), tableaux de bord, sidebar¶
| Base | Rôle |
|---|---|
/api/businesses | Fiche organisation, modules actifs (PATCH {id}/modules), slug public |
/api/dashboard/summary, /api/dashboards | Tableaux de bord et widgets |
/api/sidebar | Catalogue de la barre latérale, préférences (me), accès, défauts par rôle |
/api/onboarding | Statut et parcours d'accueil |
/api/assets, /api/images/upload-url | Médias |
Surface publique (boutique / RDV en ligne)¶
Base : /api/public ([AllowAnonymous], par slug public)
| Méthode | Route | Rôle |
|---|---|---|
| GET | /api/public/stores/{publicSlug} | Vitrine publique de l'organisation |
| GET | /api/public/stores/{publicSlug}/availability | Créneaux disponibles |
| POST | /api/public/stores/{publicSlug}/bookings | Réserver (anonyme) |
| POST/GET | /api/public/auth/request-link, /verify, /me | Connexion par lien magique |
Intégration par clé API (phk_live_…)¶
Gestion des clés : /api/hub/keys (GET, POST, DELETE — JWT). Surface api/public/hub
(en-tête X-Server-API-Key) : GET customers, POST customers/bulk, POST deals/bulk
(imports en masse — utilisée par le serveur MCP Puwapi).
Routes internes¶
POST /api/internal/activity-sync — synchronisation d'activité (M2M).
POST /api/customers/internal/log-email — journalise un e-mail sur le contact
(X-Internal-Secret, fail-closed). GET /connect/export — export vers Connect.