Passer au contenu principal
GET /events est le flux ordonné des changements de locations. Il n’y a pas de webhook : vous lisez le flux à votre rythme.
  • Un événement est mince : relisez la location par GET /rentals/{rentalId} pour connaître son état. Une location supprimée ne se relit plus (404).
  • Traitez les événements dans l’ordre de la page. Cet ordre est celui de l’enregistrement des changements, pas celui d’occurredAt (l’heure du changement) : un changement validé tard n’est jamais sauté.
  • Scope rentals.read. Une clé partenaire ne voit que les événements de ses propres locations.
  • types filtre par type (types=rental.created,rental.cancelled). Ignorez un type que vous ne connaissez pas.

Ce qui produit un événement

Les changements faits dans une même opération produisent un seul événement par location : la création d’une location et de ses options donne un seul rental.created, une annulation un seul rental.cancelled. Le type ne dit donc pas tout ce qui a changé : relisez la location. Ne produisent aucun événement, et se relisent au besoin : la fiche du client ou du véhicule (nom, téléphone, immatriculation…), les photos et états des lieux, les documents (contrat, factures, avoirs, avenants).

Première synchronisation

  1. Appelez GET /events?start=LATEST : la réponse ne contient aucun événement, mais un curseur sur l’instant présent. Enregistrez-le.
  2. Parcourez GET /rentals page par page pour constituer l’état initial.
  3. Lisez ensuite le flux à partir du curseur enregistré. Ce qui a changé pendant le parcours y figure.
Sans paramètre (ou avec start=EARLIEST), le flux part des événements des 29 derniers jours. start et cursor s’excluent.

Boucle de lecture

  1. Lisez une page à partir du curseur enregistré, avec limit=100.
  2. Traitez ses événements, puis enregistrez son nextCursor. Il est toujours renvoyé, même sur une page vide.
  3. Si la page est pleine (autant d’événements que limit), lisez la suivante aussitôt : vous êtes en retard. Sinon, vous êtes à jour : attendez avant la prochaine lecture.
Un intervalle de 10 à 60 secondes convient. Chaque lecture du flux et chaque relecture de location comptent dans le plafond PER_KEY de votre clé : voir Limites de débit.

Reprise après une longue absence

Les événements sont conservés 30 jours. L’âge d’un curseur se compte depuis le dernier événement qu’il a lu (ou depuis la lecture, pour un curseur de page incomplète) : un curseur trop ancien répond 410 CURSOR_EXPIRED. Reprenez alors la première synchronisation : start=LATEST, parcours de GET /rentals, puis le flux.