Metadata
Title
Webhooks Yoplanning
Description
Notifications temps réel des événements système
Derniere_Mise_A_Jour
2025-01-07
Version
v3.2
Protocole
HTTP POST
Format
JSON
Signature
HMAC-SHA256
Configuration
Setup
Interface Yoplanning > Paramètres > Développeur > Webhooks
Url_Endpoint
HTTPS uniquement (certificat SSL valide)
Secret_Partage
Généré automatiquement pour signature
Timeout
30 secondes
Retry_Policy
Backoff exponentiel (3 tentatives max)
Verification_Signature
Header X-Yoplanning-Signature
Evenements_Disponibles
Booking.Created
Description
Nouvelle réservation créée
Declenchement
Réservation confirmée (paiement ou validation manuelle)
Payload_Exemple
Event
booking.created
Timestamp
2025-01-07T14:30:00Z
Data
Booking_Id
12345
Activity_Id
678
Customer_Id
901
Scheduled_Date
2025-02-15
Scheduled_Time
14:00:00
Participants
2
Total_Price
90.0
Currency
EUR
Status
confirmed
Payment_Status
paid
Cas_Usage
- Sync CRM
- Notifications équipe
- Confirmation email custom
Booking.Updated
Description
Réservation modifiée
Declenchement
Changement date/heure, participants, prix ou statut
Champs_Modifies
Inclus dans payload.changes
Cas_Usage
- Mise à jour planning
- Re-calcul capacités
- Notifications changement
Booking.Cancelled
Description
Réservation annulée
Declenchement
Annulation client ou administrateur
Payload_Specifique
Cancellation_Reason
string
Cancelled_By
customer|admin|system
Refund_Amount
number|null
Cas_Usage
- Gestion remboursements
- Libération créneaux
- Stats annulations
Payment.Completed
Description
Paiement finalisé avec succès
Declenchement
Confirmation paiement Stripe/Payline
Payload_Exemple
Event
payment.completed
Data
Payment_Id
pay_123abc
Booking_Id
12345
Amount
90.0
Currency
EUR
Method
card
Processor
stripe
Transaction_Id
ch_456def
Cas_Usage
- Comptabilité automatique
- Confirmation booking
- Reporting financier
Payment.Failed
Description
Échec de paiement
Declenchement
Refus carte, fonds insuffisants, erreur technique
Payload_Specifique
Failure_Reason
string
Failure_Code
string
Retry_Possible
True
Cas_Usage
- Relance client
- Alertes admin
- Nettoyage réservations
Activity.Updated
Description
Activité/produit modifiée
Declenchement
Changement prix, horaires, capacité, statut
Cas_Usage
- Sync catalogue
- Mise à jour site web
- Recalcul disponibilités
Planning.Changed
Description
Modification planning global
Declenchement
Ajout/suppression créneaux, changement ressources
Cas_Usage
- Sync planning externe
- Notifications équipe
- Mise à jour widget
Structure_Payload
Format_Standard
Event
string - Type d'événement
Timestamp
ISO 8601 - Moment de l'événement
Webhook_Id
string - ID unique webhook
Data
object - Données spécifiques événement
Api_Version
string - Version API utilisée
Headers_Http
Content-Type
application/json
User-Agent
Yoplanning-Webhook/3.2
X-Yoplanning-Event
Type événement
X-Yoplanning-Signature
sha256=signature_hmac
X-Yoplanning-Delivery
UUID unique livraison
Verification_Signature
Algorithme
HMAC-SHA256
Secret
Clé secrète fournie lors configuration
Calcul
hash_hmac('sha256', payload_body, secret)
Verification
Comparer avec header X-Yoplanning-Signature
Exemple_Php
hash_equals($signature_attendue, $signature_recue)
Exemple_Node
crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(received))
Gestion_Erreurs
Codes_Reponse_Attendus
200-299
Succès - Webhook traité
400-499
Erreur client - Pas de retry
500-599
Erreur serveur - Retry automatique
Retry_Policy
Tentatives
3
Intervals
Backoff
Exponentiel avec jitter
Abandon
Après 3 échecs, webhook désactivé temporairement
Debug
Logs_Disponibles
Interface admin > Webhooks > Logs
Retention
30 jours
Infos
- Timestamp
- Réponse
- Temps traitement
- Erreurs
Cas_Usage_Frequents
Synchronisation_Crm
Evenements
- booking.created
- booking.updated
- payment.completed
Objectif
Maintenir base clients CRM à jour
Implementation
Webhook → API CRM
Notifications_Equipe
Evenements
- booking.created
- booking.cancelled
Objectif
Alerter équipes nouvelles réservations
Implementation
Webhook → Slack/Teams/Email
Comptabilite_Automatique
Evenements
- payment.completed
- payment.failed
Objectif
Synchroniser écritures comptables
Implementation
Webhook → Sage/Cegid API
Mise_A_Jour_Site
Evenements
- activity.updated
- planning.changed
Objectif
Actualiser disponibilités site web
Implementation
Webhook → Invalidation cache
Bonnes_Pratiques
Securite
- Toujours vérifier signature HMAC
- Utiliser HTTPS avec certificat valide
- Filtrer par IP si possible
- Logger tentatives webhook
Performance
- Répondre rapidement (< 10s)
- Traitement asynchrone si lourd
- Idempotence (même événement = même résultat)
- Gestion doublons via webhook_id
Fiabilite
- Gérer tous codes retour HTTP
- Logs détaillés pour debug
- Monitoring uptime endpoint
- Fallback si webhook indisponible
Exemples_Implementation
Php_Laravel
Route::post('/webhook', [WebhookController::class, 'handle'])
Node_Express
app.post('/webhook', express.raw({type: 'application/json'}), handler)
Python_Flask
@app.route('/webhook', methods=['POST'])
Frameworks_Disponibles
Exemples complets dans documentation développeur
Support
Documentation
https://fr.yoplanning.support/developpeur/faq-utilisation-des-webhooks-dans-yoplanning
Test_Webhook
Outil test intégré interface admin
Support_Technique
api@yoplanning.com
Debug_Assistance
Logs partagés avec request_id