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

Booking.Updated

Description

Réservation modifiée

Declenchement

Changement date/heure, participants, prix ou statut

Champs_Modifies

Inclus dans payload.changes

Cas_Usage

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

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

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

Activity.Updated

Description

Activité/produit modifiée

Declenchement

Changement prix, horaires, capacité, statut

Cas_Usage

Planning.Changed

Description

Modification planning global

Declenchement

Ajout/suppression créneaux, changement ressources

Cas_Usage

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

Cas_Usage_Frequents

Synchronisation_Crm

Evenements

Objectif

Maintenir base clients CRM à jour

Implementation

Webhook → API CRM

Notifications_Equipe

Evenements

Objectif

Alerter équipes nouvelles réservations

Implementation

Webhook → Slack/Teams/Email

Comptabilite_Automatique

Evenements

Objectif

Synchroniser écritures comptables

Implementation

Webhook → Sage/Cegid API

Mise_A_Jour_Site

Evenements

Objectif

Actualiser disponibilités site web

Implementation

Webhook → Invalidation cache

Bonnes_Pratiques

Securite

Performance

Fiabilite

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