Aller au contenu

Simulateur

Pour éprouver votre réception de webhooks, il faut que quelque chose se passe côté Localoge : un voyageur qui réserve, qui écrit, qui laisse un avis. En sandbox, le simulateur le fait pour vous.

POST https://sandbox.localoge.com/api/v1/channel/sandbox/simulate

Il crée le vrai objet, dans la base du sandbox : un séjour réservé par un voyageur fictif, un message, un avis, une validation de logement. Puis il passe par le même code d’émission que la production : le webhook que vous recevez est signé, formé et réessayé exactement comme le serait celui d’un vrai voyageur. Ce que votre code accepte ici, il l’acceptera en production.

Champ Obligatoire Sens
event oui reservation.created, reservation.updated, reservation.cancelled, message.received, review.created ou listing.validated
external_property_id pour reservation.created et listing.validated Votre logement, déjà poussé dans le sandbox.
reservation_id pour reservation.updated, reservation.cancelled, message.received, review.created L’identifiant Localoge d’une réservation créée par le simulateur (origine Localoge), tel que rendu par reservation.created.
check_in, check_out non YYYY-MM-DD. Absentes, le simulateur prend la première fenêtre libre de 3 nuits à partir de J+14.
guests non Nombre de voyageurs, 2 par défaut (plafonné à la capacité du logement).
text non Le texte du message ou le commentaire de l’avis simulé, 4000 caractères au plus.
rating non La note de l’avis simulé, de 1 à 10 (9 par défaut).

La réponse est un 201 :

{ "success": true, "environment": "sandbox", "data": { "event": "…", "reservation_id": "…", "listing_id": "…", "status": "…" } }
Code Situation
400 INVALID_PAYLOAD Champ manquant ou mal formé, dates incohérentes.
404 PROPERTY_NOT_FOUND Ce logement n’existe pas dans votre sandbox.
404 RESERVATION_NOT_FOUND reservation_id absent, inconnu, ou pas une réservation d’origine Localoge.
409 DATES_UNAVAILABLE Nuits déjà prises, ou aucune fenêtre libre de 3 nuits dans l’année.
409 CONFLICT Réservation déjà annulée, ou logement qui n’est pas en pending_validation (pour listing.validated).
404 NOT_FOUND Route appelée en production.

Un voyageur réserve :

Fenêtre de terminal
curl -X POST https://sandbox.localoge.com/api/v1/channel/sandbox/simulate \
-H "Authorization: Bearer $LOCALOGE_TEST_KEY" \
-H "Content-Type: application/json" \
-d '{ "event": "reservation.created", "external_property_id": "PROP-4821", "check_in": "2026-11-10", "check_out": "2026-11-14", "guests": 2 }'
{
"success": true,
"environment": "sandbox",
"data": { "event": "reservation.created", "reservation_id": "5b0e…", "listing_id": "9f2c…", "status": "confirmed" }
}

Vous recevez reservation.created, et les nuits du 10 au 14 novembre sont prises : un POST /reservations de votre part sur ces dates doit maintenant répondre 409 DATES_UNAVAILABLE.

Il annule :

Fenêtre de terminal
curl -X POST https://sandbox.localoge.com/api/v1/channel/sandbox/simulate \
-H "Authorization: Bearer $LOCALOGE_TEST_KEY" \
-H "Content-Type: application/json" \
-d '{ "event": "reservation.cancelled", "reservation_id": "5b0e…" }'

Il écrit :

Fenêtre de terminal
curl -X POST https://sandbox.localoge.com/api/v1/channel/sandbox/simulate \
-H "Authorization: Bearer $LOCALOGE_TEST_KEY" \
-H "Content-Type: application/json" \
-d '{ "event": "message.received", "reservation_id": "5b0e…", "text": "Peut-on arriver à 18 h ?" }'
Il laisse un avis :
```bash
curl -X POST https://sandbox.localoge.com/api/v1/channel/sandbox/simulate \
-H "Authorization: Bearer $LOCALOGE_TEST_KEY" \
-H "Content-Type: application/json" \
-d '{ "event": "review.created", "reservation_id": "5b0e…", "rating": 8, "text": "Très bon séjour." }'

Un administrateur valide votre logement en attente (pending_validation vers published) :

Fenêtre de terminal
curl -X POST https://sandbox.localoge.com/api/v1/channel/sandbox/simulate \
-H "Authorization: Bearer $LOCALOGE_TEST_KEY" \
-H "Content-Type: application/json" \
-d '{ "event": "listing.validated", "external_property_id": "PROP-4821" }'
{ "success": true, "environment": "sandbox", "data": { "event": "listing.validated", "listing_id": "9f2c…", "status": "published" } }

Vous recevez alors property.status_changed. listing.validated est un geste du simulateur, pas un nom de webhook.

Chaque simulation déclenche aussi les e-mails que Localoge enverrait (confirmation au voyageur, alerte à l’hôte). En sandbox, aucun ne sort : ils sont rangés dans la boîte de test.

Fenêtre de terminal
curl "https://sandbox.localoge.com/api/v1/channel/sandbox/emails?limit=20" \
-H "Authorization: Bearer $LOCALOGE_TEST_KEY"

Chaque e-mail porte id, to, subject, html (le rendu complet), listing_id et created_at. 50 par défaut, 200 au plus.

Fenêtre de terminal
curl -X POST https://sandbox.localoge.com/api/v1/channel/sandbox/reset \
-H "Authorization: Bearer $LOCALOGE_TEST_KEY"
{ "success": true, "environment": "sandbox", "data": { "reset": true, "properties_removed": 4 } }

Supprime vos logements, séjours et messages du sandbox. Vos clés, votre webhook et votre compte restent en place.

Les mêmes gestes existent en boutons dans https://sandbox.localoge.com/app/dev : choisissez un logement, un événement, et envoyez. Voir Espace développeur.