Créer une réservation
Client, demande de réservation, suivi et annulation.
Objectif : enregistrer le client, puis créer une demande de réservation dans Opticar.
Étape 1 — Retrouver le client (si déjà connu)
GET /clients/lookup?phone=+21620123456
Vous pouvez aussi chercher par email ou identity_document_number (au moins un critère).
- Trouvé →
{ "found": true, "data": { "id": … } } - Pas trouvé →
{ "found": false }→ créez-le (étape 2)
Étape 2 — Créer le client
POST /clients
{
"first_name": "Amine",
"last_name": "Ben Ali",
"phone": "+21620123456",
"email": "amine@example.com"
}
Obligatoire : prénom, nom, téléphone. Réponse 201 avec un driver_id.
curl -sS -X POST "https://app.opticar.tn/api/v1/clients" \
-H "Authorization: Bearer opticar_VOTRE_CLE" \
-H "Content-Type: application/json" \
-d '{"first_name":"Amine","last_name":"Ben Ali","phone":"+21620123456"}'
Étape 3 — Créer la réservation
POST /bookings
{
"vehicle_id": 12,
"driver_id": 45,
"start_date": "2026-10-20",
"start_time": "10:00",
"end_date": "2026-10-25",
"end_time": "10:00",
"pickup_address": 3,
"drop_off_address": 3,
"notes": "Vol TU718"
}
Champs obligatoires : vehicle_id, dates et heures (H:i). Le reste est optionnel.
Si tout va bien (201) :
- Statut
api_pending— en attente d’acceptation par l’agence - Paiement
unpaid - Vous recevez une référence (
booking_id/ref)
Autres codes utiles :
409— véhicule plus disponible422— formulaire incomplet / invalide
Suivre ou annuler
GET /bookings → liste (filtres possibles)
GET /bookings/{ref} → détail
DELETE /bookings/{ref} → annuler (réservations API uniquement)
Côté agence dans Opticar
L’équipe voit la demande et peut accepter ou refuser. Affichez sur le site un message du type : « Demande envoyée — confirmation sous peu. »
Ensuite : Recevoir les mises à jour par webhook →

Accueil docs
Documentation
Documentation API
Politiques