Webhooks
Recevoir les confirmations Opticar sur le serveur de l’agence.
Objectif : Opticar appelle votre serveur quand une réservation change (acceptée, refusée, payée…), pour que le site de l’agence puisse prévenir le client.
Étape 1 — Enregistrer votre URL
PUT /webhook
{
"url": "https://www.votresite.tn/webhooks/opticar",
"secret": "un-secret-long-et-aleatoire"
}
GET /webhook → voir la config
DELETE /webhook → supprimer
L’URL doit être en HTTPS. Gardez le secret uniquement sur votre serveur.
Événements envoyés
booking.created— réservation créée via l’APIbooking.status_changed— acceptée, refusée, etc.booking.payment_status_changed— paiement mis à jour
Ce que vous recevez
Un POST JSON avec :
X-Opticar-Event— nom de l’événementX-Opticar-Signature— signature HMAC-SHA256 du corps avec votre secret
{
"event": "booking.status_changed",
"occurred_at": "2026-10-10T12:00:00+01:00",
"data": {
"ref": 1042,
"status": "yet_to_start",
"payment_status": "unpaid",
"vehicle": { "id": 12, "name": "…" },
"driver": { "id": 45, "name": "Amine Ben Ali", "phone": "+216…" }
}
}
Vérifier la signature (Node.js)
const crypto = require("crypto");
const expected = crypto
.createHmac("sha256", process.env.OPTICAR_WEBHOOK_SECRET)
.update(rawBody)
.digest("hex");
if (expected !== req.headers["x-opticar-signature"]) {
return res.status(401).end();
}
// puis traiter l’événement…
res.status(200).end();
Répondez vite avec un code 2xx. Le même événement peut arriver plusieurs fois — utilisez ref pour mettre à jour votre base sans doublon.
Checklist rapide
- Clé API stockée en variable d’environnement
- Appels Opticar uniquement côté serveur
- Recherche disponibilité avec dates
- Création client + réservation
- Webhook HTTPS + secret + signature vérifiée
- Message client : demande en attente de confirmation

Accueil docs
Documentation
Documentation API
Politiques