Statuts
Transitions :
RESERVED→IN_PROGRESS: départ (pickup).IN_PROGRESS→COMPLETED: retour (return).RESERVED→CANCELLED: annulation (cancel).PENDING_APPROVAL→RESERVED: approbation, dans Lexio seulement.PENDING_APPROVAL→CANCELLED: refus (cancel) ou expiration.
RESERVED. Le loueur fait les mêmes transitions dans Lexio. Une location IN_PROGRESS ou COMPLETED ne s’annule plus. Chaque changement de statut produit un événement (rental.updated, ou rental.cancelled pour une annulation) : voir Synchronisation par événements.
Actions possibles selon le statut
Une action hors de ses statuts répond409 RENTAL_STATUS_NOT_ALLOWED, avec rentalStatus, allowedStatuses et action (première colonne). « sans champ » signale un champ refusé dans ce statut : le reste de l’action passe.
- Annuler une location déjà
CANCELLEDrépond200sans rien écrire, aveceffects.cancellation.alreadyCancelledàtrue. - Annuler une demande
PENDING_APPROVALla refuse : Lexio tente ensuite de relâcher l’autorisation de paiement du client, eteffects.paymentAuthorizationReleaseen donne le résultat. ?dryRun=trueprévisualise les actions qui l’acceptent sans rien écrire : voir Idempotence et reprise.
Caution
La caution se demande à la réservation (deposit) et s’encaisse à part, en paiement de type DEPOSIT ; elle n’entre ni dans totalTTC ni dans balance. Sa restitution ou sa retenue ne se fait pas par l’API : le loueur la décide dans Lexio après le retour. L’API la lit dans les lignes DEPOSIT de GET /rentals/{rentalId}/payments et, à l’annulation, dans effects.cancellation.depositsHeld (caution encaissée à rendre, empreinte à relâcher).