Webhooks
Notifications basées sur les événements
Webhooks
Les webhooks informent votre système en temps réel dès que le statut d'un Staffing Order, d'un shift ou d'une affectation change — sans que vous ayez à effectuer du polling.
Concept
Événement job.rocks → POST vers votre URL webhook → votre traitement
Événements disponibles
| Événement | Déclencheur |
|---|---|
staffing_order.status_changed | Le statut de l'ordre change |
shift.status_changed | Le statut du shift change |
assignment.confirmed | Affectation confirmée |
assignment.cancelled | Affectation annulée |
timesheet.validated | Les temps de travail ont été libérés |
Payload
{
"event_id": "evt_123",
"event_type": "assignment.confirmed",
"event_version": "1.0",
"created_at": "2026-06-24T16:45:00Z",
"data": {
"order_id": "jr_order_123",
"external_order_id": "PARTNER-ORDER-12345",
"assignment_id": "jr_assignment_456",
"external_shift_id": "PARTNER-SHIFT-987",
"status": "confirmed"
}
}
| Champ | Description |
|---|---|
event_id | ID d'événement unique (pour l'idempotence) |
event_type | Type d'événement (voir tableau ci-dessus) |
event_version | Version du schéma de l'événement |
created_at | Horodatage (ISO 8601, UTC) |
data | Données spécifiques à l'événement |
Sécurité
Vérification de signature
Chaque requête contient X-Jobrocks-Timestamp et X-Jobrocks-Signature. La signature est basée sur l'horodatage et le corps:
X-Jobrocks-Timestamp: 2026-06-24T16:45:00Z
X-Jobrocks-Signature: sha256=a1b2c3d4e5f6...
Base de signature: <timestamp>.<raw_body>
Vérification (Python):
import hmac, hashlib
def verify_signature(timestamp: str, payload_body: bytes, signature_header: str, secret: str) -> bool:
signed = f"{timestamp}.".encode() + payload_body
expected = "sha256=" + hmac.new(secret.encode(), signed, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature_header)
Protection contre les rejeux
Si l'écart entre X-Jobrocks-Timestamp et l'heure du serveur est > 5 minutes, la requête doit être rejetée.
Pratiques recommandées
- Toujours vérifier la signature — empêche les requêtes falsifiées
- Répondre rapidement — renvoyer
200 OK, puis traiter de manière asynchrone - Idempotence — stocker
event_idpour éviter les doublons - Ignorer les champs inconnus — de nouveaux champs optionnels peuvent être ajoutés à tout moment
Comportement de retry
Le comportement de retry des webhooks est configuré par intégration.
| Réponse | Comportement |
|---|---|
2xx | Succès, pas de retry |
400, 401, 403, 404 | Erreur de configuration, pas de retry |
408, 429, 5xx, timeout | Retry avec backoff exponentiel (si configuré) |
Un retry avec backoff exponentiel et désactivation automatique en cas d'échec persistant est recommandé.
Configuration
Les webhooks sont configurés conjointement avec l'équipe job.rocks:
- Indiquer l'URL du webhook (HTTPS requis)
- Définir les événements souhaités
- Échanger le secret du webhook et le stocker de manière sécurisée
- Envoyer un événement de test
Was this page helpful?