La clé API
L’API s’authentifie par clé API seule, sans connexion d’utilisateur. La clé commence parlck_ et s’envoie en en-tête, jamais dans l’adresse :
/api/external/v1 répond 403 dans un autre format d’erreur : vérifiez l’adresse de base.
Deux types de clés
Une clé appartient à une seule organisation (un loueur). Elle est partenaire si elle porte un code partenaire (partnerCode), interne sinon.
Parcours complet d’une clé partenaire : Intégration d’une plateforme de réservation.
Obtenir une clé
Le loueur crée la clé dans Lexio ; vous ne pouvez pas la créer vous-même. Premier accès ou organisation de test : contact@lexio.rent.- Le plan du loueur doit inclure l’API (table des fonctionnalités ci-dessous), sinon chaque appel répond
403 FEATURE_NOT_AVAILABLE. - Le propriétaire de l’organisation, ou un membre autorisé à gérer les clés API, ouvre Paramètres → Développeur.
- Il choisit les scopes, parmi les droits qu’il détient lui-même, et, pour un partenaire, le code partenaire : 2 à 50 caractères parmi
a-z,0-9,-et_, commençant par une lettre ou un chiffre. Ni l’un ni l’autre ne se modifie ensuite. - Il choisit l’expiration : 30, 90, 180 ou 365 jours (par défaut), ou jamais.
- La clé complète ne s’affiche qu’une fois : il la copie et vous la transmet par un canal sûr.
GET /organization renvoie son nom, son code partenaire, ses scopes et son expiration (apiKey.expiresAt).
États de la clé
Toute réponse
401 porte WWW-Authenticate: Bearer realm="Lexio API", plus error="invalid_token" si un en-tête Authorization a été envoyé.
Rotation
Pour remplacer une clé sans coupure, le loueur crée une seconde clé (mêmes scopes, même code partenaire) ; vous basculez vos appels et attendez 24 h (uneIdempotency-Key ne vaut que pour la clé qui l’a envoyée) ; il révoque l’ancienne. Vos locations, devis, clients et événements sont liés au code partenaire, pas à la clé.
La clé appartient à l’organisation, pas à son créateur : elle fonctionne encore s’il quitte l’équipe. Ses écritures sont signées « API : nom de la clé » (suivi du code partenaire s’il existe) dans les notes, les paiements et le journal d’activité du loueur.
Requêtes
- Corps JSON UTF-8 de 1 Mio au plus, en
application/json(application/merge-patch+jsonaussi surPATCH). Trop gros :413; autre type :415; JSON illisible :400. - Un champ inconnu dans une requête est refusé (
400) ; dans une réponse, ignorez-le (Versions et évolutions). - Chaque réponse porte
X-Request-Id, repris dansrequestIddes erreurs. Vous pouvez fournir le vôtre (8 à 128 caractères parmiA-Za-z0-9._:-), sinon le serveur en génère un. Joignez-le à toute demande à contact@lexio.rent.
Scopes
Un scope s’écrit<ressource>.<accès> : read couvre les lectures de la ressource et de ses sous-ressources, write les créations, modifications et actions ; les droits sensibles ont leur propre scope. Une opération accepte l’un des scopes listés. GET /organization s’ouvre à toute clé valide ; offers.read et quotes.write suffisent pour chiffrer sans accéder aux locations.
Fonctionnalités du plan
Sans la fonctionnalité requise par le plan du loueur, une opération répond403 FEATURE_NOT_AVAILABLE, et feature la nomme. La table donne les plans standard ; Lexio peut aussi ouvrir une fonctionnalité à une organisation précise.
En plus : des
options dans un devis ou une location exigent pricing.options (une location sans devis exige un plan qui l’inclut ; une ouverture propre à l’organisation ne suffit qu’en passant par un devis) ; démarrer le suivi d’entretien d’un véhicule (maintenanceTrackingMode) exige maintenance.manage et le scope maintenance.write.