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/simulateCe que fait le simulateur
Section intitulée « Ce que fait le simulateur »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.
Le corps
Section intitulée « Le corps »| 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. |
Exemples
Section intitulée « Exemples »Un voyageur réserve :
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 :
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 :
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 :
```bashcurl -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) :
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.
Les e-mails
Section intitulée « Les e-mails »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.
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.
Repartir de zéro
Section intitulée « Repartir de zéro »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.
Depuis l’espace développeur
Section intitulée « Depuis l’espace développeur »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.