Le devis tel que créé, expiré compris : lisez expiresAt, consumedAt et rentalId (location créée avec lui). choices reste celui du calcul. Devis inconnu, d’une autre organisation ou d’un autre identifiant partenaire, ou effacé (24 h après expiresAt) : 404. La lecture ne renvoie jamais QUOTE_EXPIRED.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"API Lexio","description":"Référence et guides de l’API Lexio v1 : disponibilités, devis, locations, paiements, flotte et catalogue, de serveur à serveur.","colors":{"primary":"#213051","light":"#9fb3e0","dark":"#213051"},"logo":{"light":"https://mintcdn.com/lexio/pRouqOAymioY_AdF/logo/light.svg?fit=max\u0026auto=format\u0026n=pRouqOAymioY_AdF\u0026q=85\u0026s=dfcc1b24a8c399ae35b02ed7c0b9f66d","dark":"https://mintcdn.com/lexio/pRouqOAymioY_AdF/logo/dark.svg?fit=max\u0026auto=format\u0026n=pRouqOAymioY_AdF\u0026q=85\u0026s=a80dcfd084ea4685f52fed48ba48020d","href":"https://lexio.rent"},"favicon":"https://mintcdn.com/lexio/pRouqOAymioY_AdF/favicon.svg?fit=max\u0026auto=format\u0026n=pRouqOAymioY_AdF\u0026q=85\u0026s=2d0809a446de104a057e8fcbce607b0f","api":{"playground":{"display":"simple","proxy":false},"examples":{"languages":["curl","javascript","python","php"],"prefill":true}},"appearance":{"default":"system"},"navbar":{"links":[{"href":"mailto:contact@lexio.rent","label":"Support"}],"primary":{"type":"button","label":"openapi.json","href":"/openapi.json"}},"footer":{"socials":{"website":"https://lexio.rent"},"links":[{"header":"Lexio","items":[{"label":"Site de Lexio","href":"https://lexio.rent"},{"label":"Support : contact@lexio.rent","href":"mailto:contact@lexio.rent"},{"label":"Spécification OpenAPI","href":"/openapi.json"}]}]},"seo":{"metatags":{"canonical":"https://docs.lexio.rent"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"fr","href":""}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lexio","hasAudioNarration":false,"actualSubdomain":"lexio","customDomains":[],"gitSource":{"type":"github","owner":"lexio-rent","repo":"lexio-crm","deployBranch":"shane-dev","contentDirectory":"docs/api-externe","isPrivate":true,"mountPath":"","label":"","_id":"6ae295067db54f7e07016fb1"},"chroma":{"liveDeploymentHistoryId":"6ae29aceb8eb27ce1fc83dd9","collectionId":"106c4a45-dd90-409c-af36-3f7f1c8e220e","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae29aceb8eb27ce1fc83dd9"},"entitlements":{},"buildId":"6ae29c72b56f3c7b42a2432b","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"fr","tag":"Référence de l’API","count":93},{"language":"fr","tag":"Catalogue","count":26},{"language":"fr","tag":"Tarification","count":15},{"language":"fr","tag":"Guides","count":14},{"language":"fr","tag":"Départ et retour","count":8},{"language":"fr","tag":"Flotte","count":8},{"language":"fr","tag":"Intégrer","count":7},{"language":"fr","tag":"Entretien","count":7},{"language":"fr","tag":"Locations","count":7},{"language":"fr","tag":"Modifications","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#localization-select-trigger{display:none!important}"}],"page":{"pagePath":"api-reference/offre/get-quote","slug":"/api-reference/offre/get-quote","pageMetadata":{"title":"Lire un devis","description":"**Accès** : `offers.read`\n\nLe devis tel que créé, expiré compris : lisez `expiresAt`, `consumedAt` et `rentalId` (location créée avec lui). `choices` reste celui du calcul. Devis inconnu, d’une autre organisation ou d’un autre identifiant partenaire, ou effacé (24 h après `expiresAt`) : `404`. La lecture ne renvoie jamais `QUOTE_EXPIRED`.","deprecated":null,"version":null,"sidebarTitle":"Lire un devis","openapi":"/openapi.json get /quotes/{quoteId}","href":"/api-reference/offre/get-quote","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Accès\"\n }), \" : \", _jsx(_components.code, {\n children: \"offers.read\"\n })]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Le devis tel que créé, expiré compris : lisez \", _jsx(_components.code, {\n children: \"expiresAt\"\n }), \", \", _jsx(_components.code, {\n children: \"consumedAt\"\n }), \" et \", _jsx(_components.code, {\n children: \"rentalId\"\n }), \" (location créée avec lui). \", _jsx(_components.code, {\n children: \"choices\"\n }), \" reste celui du calcul. Devis inconnu, d’une autre organisation ou d’un autre identifiant partenaire, ou effacé (24 h après \", _jsx(_components.code, {\n children: \"expiresAt\"\n }), \") : \", _jsx(_components.code, {\n children: \"404\"\n }), \". La lecture ne renvoie jamais \", _jsx(_components.code, {\n children: \"QUOTE_EXPIRED\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Lire un devis","description":"**Accès** : `offers.read`\n\nLe devis tel que créé, expiré compris : lisez `expiresAt`, `consumedAt` et `rentalId` (location créée avec lui). `choices` reste celui du calcul. Devis inconnu, d’une autre organisation ou d’un autre identifiant partenaire, ou effacé (24 h après `expiresAt`) : `404`. La lecture ne renvoie jamais `QUOTE_EXPIRED`.","deprecated":null,"version":null,"sidebarTitle":"Lire un devis","openapi":"/openapi.json get /quotes/{quoteId}","href":"/api-reference/offre/get-quote","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getQuote","summary":"Lire un devis","description":"**Accès** : `offers.read`\n\nLe devis tel que créé, expiré compris : lisez `expiresAt`, `consumedAt` et `rentalId` (location créée avec lui). `choices` reste celui du calcul. Devis inconnu, d’une autre organisation ou d’un autre identifiant partenaire, ou effacé (24 h après `expiresAt`) : `404`. La lecture ne renvoie jamais `QUOTE_EXPIRED`.","tags":["Offre"],"security":["c6a5ba8f-6a13-4fac-821f-cc559ecafb87"],"x-required-scopes":["offers.read"],"parameters":["077c4264-bf03-4b5f-b6a2-dde24fe5f071"],"responses":{"200":"6b8b1ad8-02bd-421c-9c4a-785dc8bed2ce","400":"2e65be69-c3d7-40af-a6a2-d4f5888191b6","401":"14e60d30-d942-47a1-923d-e06e3cd7357b","403":"1e674087-5c33-4d58-aceb-b431924b21e5","404":"4f7f8678-158b-41ac-bed7-16a53b13d435","429":"5e209aee-69d7-42db-8664-e87eb520eaad","500":"957ec340-1937-4cb7-8c14-1103d15707cc"},"x-mint":{"href":"/api-reference/offre/get-quote","metadata":{"title":"Lire un devis","sidebarTitle":"Lire un devis"}},"method":"get","type":"path","servers":["c3220b3b-f902-475f-902a-f94f20648ddf"],"path":"/quotes/{quoteId}","baseUrlOptions":["https://api.lexio.rent/api/external/v1"],"title":"Lire un devis","codeSamples":[],"requestExampleLanguages":["bash","javascript","python","php"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[],"disableProxy":true},"dependencies":{"parameters":{"077c4264-bf03-4b5f-b6a2-dde24fe5f071":{"in":"path","name":"quoteId","schema":{"examples":["0b8e2a6c-4d1f-4e3a-9b7c-1c2d3e4f5a6b"],"type":"string","format":"uuid","isRequired":true,"description":"Identifiant du devis.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"required":true,"description":"Identifiant du devis."}},"responses":{"6b8b1ad8-02bd-421c-9c4a-785dc8bed2ce":{"description":"Lire un devis","headers":{"X-Request-Id":{"description":"Identifiant de la requête, à communiquer au support.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Plafond du seau de débit qui s’applique à la requête.","schema":{"type":"integer","minimum":0}},"RateLimit-Remaining":{"description":"Requêtes encore permises dans la fenêtre en cours.","schema":{"type":"integer","minimum":0}},"RateLimit-Reset":{"description":"Secondes avant la remise à zéro de la fenêtre.","schema":{"type":"integer","minimum":0}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"description":"Devis : prix garanti, frais et code promo compris, jusqu’à `expiresAt`. Il ne réserve pas le véhicule.","examples":[{"id":"0b8e2a6c-4d1f-4e3a-9b7c-1c2d3e4f5a6b","createdAt":"2026-11-02T09:12:44+01:00","expiresAt":"2026-11-03T09:12:44+01:00","consumedAt":null,"rentalId":null,"currency":"EUR","vehicle":{"id":"3b1f5c2a-8d4e-4f6a-9b7c-2e5d8a1f4c63","name":"208 Allure","brand":"Peugeot","model":"208","vehicleType":"CITY","plate":"AB-123-CD","serialNumber":null},"period":{"startAt":"2026-11-10T10:00:00+01:00","endAt":"2026-11-15T10:00:00+01:00","timezone":"Europe/Paris","billedDays":5,"durationMinutes":7200},"mileage":{"mileagePackageId":"5b7c9d1e-2f3a-4b5c-8d6e-7f8091a2b3c4","name":"200 km/jour","isUnlimited":false,"includedKm":1000,"overageRatePerKmHT":0.25},"deductible":{"deductibleId":"2c3d4e5f-6a7b-4c8d-9e0f-1a2b3c4d5e6f","name":"Franchise réduite","description":"Reste à charge réduit en cas de sinistre.","excessAmount":500},"deposit":{"depositId":"4e5f6a7b-8c9d-4e0f-9a1b-3c4d5e6f7081","name":"Caution citadine","depositAmount":800},"promoCode":null,"isVatReverseCharge":false,"vatPercent":20,"totalHT":257,"vatAmount":51.4,"totalTTC":308.4,"lines":[{"key":"BASE","label":"Tarif de base","refId":null,"quantity":1,"unitPriceHT":210,"unitPriceTTC":252,"amountHT":210,"amountTTC":252,"ratePercent":null},{"key":"DURATION_DISCOUNT","label":"Réduction durée 5 jours","refId":null,"quantity":1,"unitPriceHT":-10.5,"unitPriceTTC":-12.6,"amountHT":-10.5,"amountTTC":-12.6,"ratePercent":5},{"key":"MILEAGE","label":"Forfait 200 km/jour","refId":null,"quantity":1,"unitPriceHT":0,"unitPriceTTC":0,"amountHT":0,"amountTTC":0,"ratePercent":null},{"key":"DEDUCTIBLE","label":"Franchise réduite","refId":null,"quantity":1,"unitPriceHT":37.5,"unitPriceTTC":45,"amountHT":37.5,"amountTTC":45,"ratePercent":null},{"key":"OPTION","label":"Siège enfant","refId":"6a7b8c9d-0e1f-4a2b-9c3d-5e6f70819203","quantity":1,"unitPriceHT":20,"unitPriceTTC":24,"amountHT":20,"amountTTC":24,"ratePercent":null}],"pricingBasis":{"dailyPrices":[{"date":"2026-11-10","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-11","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-12","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-13","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-14","seasonSlug":"basse","dailyPriceHT":42}],"leadTime":null},"choices":{"mileagePackages":[{"mileage":{"mileagePackageId":"5b7c9d1e-2f3a-4b5c-8d6e-7f8091a2b3c4","name":"200 km/jour","isUnlimited":false,"includedKm":1000,"overageRatePerKmHT":0.25},"line":{"key":"MILEAGE","label":"Forfait 200 km/jour","refId":null,"quantity":1,"unitPriceHT":0,"unitPriceTTC":0,"amountHT":0,"amountTTC":0,"ratePercent":null}},{"mileage":{"mileagePackageId":"9d0e1f2a-3b4c-4d5e-8f60-819203142536","name":"Kilométrage illimité","isUnlimited":true,"includedKm":null,"overageRatePerKmHT":null},"line":{"key":"MILEAGE","label":"Forfait Kilométrage illimité","refId":null,"quantity":1,"unitPriceHT":75,"unitPriceTTC":90,"amountHT":75,"amountTTC":90,"ratePercent":null}}],"deductibles":[{"deductible":{"deductibleId":"2c3d4e5f-6a7b-4c8d-9e0f-1a2b3c4d5e6f","name":"Franchise réduite","description":"Reste à charge réduit en cas de sinistre.","excessAmount":500},"deposit":{"depositId":"4e5f6a7b-8c9d-4e0f-9a1b-3c4d5e6f7081","name":"Caution citadine","depositAmount":800},"line":{"key":"DEDUCTIBLE","label":"Franchise réduite","refId":null,"quantity":1,"unitPriceHT":37.5,"unitPriceTTC":45,"amountHT":37.5,"amountTTC":45,"ratePercent":null}}],"options":[{"optionId":"6a7b8c9d-0e1f-4a2b-9c3d-5e6f70819203","name":"Siège enfant","maxBookableQuantity":2,"line":{"key":"OPTION","label":"Siège enfant","refId":"6a7b8c9d-0e1f-4a2b-9c3d-5e6f70819203","quantity":1,"unitPriceHT":20,"unitPriceTTC":24,"amountHT":20,"amountTTC":24,"ratePercent":null}}]}}],"type":"object","properties":{"id":{"examples":["7c9e6679-7425-40de-944b-e07fc1f90ae7"],"description":"Identifiant du devis, à passer en `quoteId`.","type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.id","typeLabel":"string\u003cuuid>"},"createdAt":{"examples":["2026-11-10T10:00:00+01:00"],"description":"Instant du calcul.","type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.createdAt","typeLabel":"string\u003cdate-time>"},"expiresAt":{"examples":["2026-11-10T10:00:00+01:00"],"description":"Fin de la garantie de prix, 24 h après `createdAt` ; au-delà, `POST /rentals` répond 409 `QUOTE_EXPIRED`.","type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.expiresAt","typeLabel":"string\u003cdate-time>"},"consumedAt":{"oneOf":[{"type":"string","description":"Instant où une location a été créée avec ce devis ; null tant qu’il n’a pas servi.","format":"date-time","example":"2026-11-10T10:00:00+01:00","isRequired":true,"uniqueKey":"data.consumedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"Instant où une location a été créée avec ce devis ; null tant qu’il n’a pas servi.","isRequired":true,"uniqueKey":"data.consumedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.consumedAt","typeLabel":"string\u003cdate-time> | null"},"rentalId":{"oneOf":[{"type":"string","description":"Location créée avec ce devis ; null tant qu’il n’a pas servi.","format":"uuid","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","isRequired":true,"uniqueKey":"data.rentalId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Location créée avec ce devis ; null tant qu’il n’a pas servi.","isRequired":true,"uniqueKey":"data.rentalId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.rentalId","typeLabel":"string\u003cuuid> | null"},"currency":{"description":"Devise ISO 4217 : tous les montants de la ressource sont dans cette devise.","examples":["EUR"],"type":"string","enum":["EUR","XPF","CHF","CAD","GBP","USD","XOF"],"isRequired":true,"uniqueKey":"data.currency","typeLabel":"enum\u003cstring>"},"vehicle":{"description":"Véhicule, vue réduite de `GET /vehicles/{vehicleId}`.","examples":[{"id":"3b1f5c2a-8d4e-4f6a-9b7c-2e5d8a1f4c63","name":"208 Allure","brand":"Peugeot","model":"208","vehicleType":"CITY","plate":"AB-123-CD","serialNumber":null}],"type":"object","properties":{"id":{"examples":["7c9e6679-7425-40de-944b-e07fc1f90ae7"],"description":"Identifiant du véhicule.","type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.vehicle.id","typeLabel":"string\u003cuuid>"},"name":{"oneOf":[{"type":"string","description":"Nom d’usage donné par l’agence (ex. « 208 blanche ») ; null si absent.","maxLength":100,"isRequired":true,"uniqueKey":"data.vehicle.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nom d’usage donné par l’agence (ex. « 208 blanche ») ; null si absent.","isRequired":true,"uniqueKey":"data.vehicle.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.vehicle.name","typeLabel":"string | null"},"brand":{"description":"Marque (ex. Peugeot).","type":"string","maxLength":50,"isRequired":true,"uniqueKey":"data.vehicle.brand","typeLabel":"string"},"model":{"description":"Modèle (ex. 208).","type":"string","maxLength":50,"isRequired":true,"uniqueKey":"data.vehicle.model","typeLabel":"string"},"vehicleType":{"description":"Type de véhicule : il fixe la famille et les champs applicables.","type":"string","enum":["CITY","COMPACT","CROSSOVER","SEDAN","BREAK","SUV","OFF_ROAD","PICKUP","MINIVAN","VAN","UTILITY","COUPE","CONVERTIBLE","SPORT","LUXURY","MOTORCYCLE","SCOOTER"],"isRequired":true,"uniqueKey":"data.vehicle.vehicleType","typeLabel":"enum\u003cstring>"},"plate":{"oneOf":[{"type":"string","description":"Immatriculation, en majuscules ; null si le véhicule n’en a pas. Une plaque ou un numéro de série est toujours présent.","isRequired":true,"uniqueKey":"data.vehicle.plate.oneOf.0","typeLabel":"string"},{"type":"null","description":"Immatriculation, en majuscules ; null si le véhicule n’en a pas. Une plaque ou un numéro de série est toujours présent.","isRequired":true,"uniqueKey":"data.vehicle.plate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.vehicle.plate","typeLabel":"string | null"},"serialNumber":{"oneOf":[{"type":"string","description":"Numéro de série (deux-roues non immatriculé, par exemple) ; null si absent.","isRequired":true,"uniqueKey":"data.vehicle.serialNumber.oneOf.0","typeLabel":"string"},{"type":"null","description":"Numéro de série (deux-roues non immatriculé, par exemple) ; null si absent.","isRequired":true,"uniqueKey":"data.vehicle.serialNumber.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.vehicle.serialNumber","typeLabel":"string | null"}},"required":["id","name","brand","model","vehicleType","plate","serialNumber"],"isRequired":true,"uniqueKey":"data.vehicle","typeLabel":"object"},"period":{"description":"Période contractuelle, bornes à l’heure de l’agence.","examples":[{"startAt":"2026-11-10T10:00:00+01:00","endAt":"2026-11-15T10:00:00+01:00","timezone":"Europe/Paris","billedDays":5,"durationMinutes":7200}],"type":"object","properties":{"startAt":{"examples":["2026-11-10T10:00:00+01:00"],"description":"Début contractuel, à l’heure de l’agence.","type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.period.startAt","typeLabel":"string\u003cdate-time>"},"endAt":{"examples":["2026-11-10T10:00:00+01:00"],"description":"Fin contractuelle, à l’heure de l’agence.","type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.period.endAt","typeLabel":"string\u003cdate-time>"},"timezone":{"description":"Fuseau horaire IANA de l’agence.","examples":["Europe/Paris"],"type":"string","minLength":1,"isRequired":true,"uniqueKey":"data.period.timezone","typeLabel":"string"},"billedDays":{"description":"Jours facturés : tranches de 24 h entamées, sans compter une dernière tranche d’au plus `toleranceHours` heures (`GET /organization`) ; 1 au minimum.","type":"integer","minimum":0,"isRequired":true,"uniqueKey":"data.period.billedDays","typeLabel":"integer"},"durationMinutes":{"description":"Durée exacte entre `startAt` et `endAt`, en minutes.","type":"integer","minimum":0,"isRequired":true,"uniqueKey":"data.period.durationMinutes","typeLabel":"integer"}},"required":["startAt","endAt","timezone","billedDays","durationMinutes"],"isRequired":true,"uniqueKey":"data.period","typeLabel":"object"},"mileage":{"description":"Kilométrage inclus et prix du dépassement.","examples":[{"mileagePackageId":"5b7c9d1e-2f3a-4b5c-8d6e-7f8091a2b3c4","name":"200 km/jour","isUnlimited":false,"includedKm":1000,"overageRatePerKmHT":0.25}],"type":"object","properties":{"mileagePackageId":{"oneOf":[{"type":"string","description":"Forfait kilométrique du catalogue (`GET /mileage-packages`) ; null sans forfait.","format":"uuid","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","isRequired":true,"uniqueKey":"data.mileage.mileagePackageId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Forfait kilométrique du catalogue (`GET /mileage-packages`) ; null sans forfait.","isRequired":true,"uniqueKey":"data.mileage.mileagePackageId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.mileage.mileagePackageId","typeLabel":"string\u003cuuid> | null"},"name":{"oneOf":[{"type":"string","description":"Nom du forfait ; null sans forfait.","maxLength":100,"isRequired":true,"uniqueKey":"data.mileage.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nom du forfait ; null sans forfait.","isRequired":true,"uniqueKey":"data.mileage.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.mileage.name","typeLabel":"string | null"},"isUnlimited":{"description":"true : aucun plafond ; `includedKm` et `overageRatePerKmHT` valent alors null.","type":"boolean","isRequired":true,"uniqueKey":"data.mileage.isUnlimited","typeLabel":"boolean"},"includedKm":{"oneOf":[{"type":"integer","description":"Kilomètres inclus pour toute la période, pas par jour ; null si illimité.","minimum":0,"isRequired":true,"uniqueKey":"data.mileage.includedKm.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Kilomètres inclus pour toute la période, pas par jour ; null si illimité.","isRequired":true,"uniqueKey":"data.mileage.includedKm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.mileage.includedKm","typeLabel":"integer | null"},"overageRatePerKmHT":{"oneOf":[{"type":"number","description":"Prix HT de chaque kilomètre au-delà de `includedKm`, facturé au retour ; null si illimité ou sans tarif de dépassement.","maximum":999999.9999,"minimum":0,"isRequired":true,"uniqueKey":"data.mileage.overageRatePerKmHT.oneOf.0","typeLabel":"number"},{"type":"null","description":"Prix HT de chaque kilomètre au-delà de `includedKm`, facturé au retour ; null si illimité ou sans tarif de dépassement.","isRequired":true,"uniqueKey":"data.mileage.overageRatePerKmHT.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.mileage.overageRatePerKmHT","typeLabel":"number | null"}},"required":["mileagePackageId","name","isUnlimited","includedKm","overageRatePerKmHT"],"isRequired":true,"uniqueKey":"data.mileage","typeLabel":"object"},"deductible":{"oneOf":[{"type":"object","description":"Franchise retenue ; null sans franchise.","required":["deductibleId","name","description","excessAmount"],"example":{"deductibleId":"2c3d4e5f-6a7b-4c8d-9e0f-1a2b3c4d5e6f","name":"Franchise réduite","description":"Reste à charge réduit en cas de sinistre.","excessAmount":500},"properties":{"deductibleId":{"oneOf":[{"type":"string","description":"Franchise du catalogue (`GET /deductibles`) ; null si elle a été supprimée depuis.","format":"uuid","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","isRequired":true,"uniqueKey":"data.deductible.oneOf.0.deductibleId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Franchise du catalogue (`GET /deductibles`) ; null si elle a été supprimée depuis.","isRequired":true,"uniqueKey":"data.deductible.oneOf.0.deductibleId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.deductible.oneOf.0.deductibleId","typeLabel":"string\u003cuuid> | null"},"name":{"oneOf":[{"type":"string","description":"Nom de la franchise ; null si elle a été supprimée depuis.","maxLength":200,"isRequired":true,"uniqueKey":"data.deductible.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nom de la franchise ; null si elle a été supprimée depuis.","isRequired":true,"uniqueKey":"data.deductible.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.deductible.oneOf.0.name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Description de la franchise ; null si absente.","maxLength":2000,"isRequired":true,"uniqueKey":"data.deductible.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Description de la franchise ; null si absente.","isRequired":true,"uniqueKey":"data.deductible.oneOf.0.description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.deductible.oneOf.0.description","typeLabel":"string | null"},"excessAmount":{"description":"Reste à charge du client en cas de sinistre, tel que fixé par le loueur, sans TVA appliquée. Jamais facturé ni compris dans les totaux : le prix de la franchise retenue est la ligne `DEDUCTIBLE` de `lines`.","type":"number","minimum":0,"isRequired":true,"uniqueKey":"data.deductible.oneOf.0.excessAmount","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.deductible.oneOf.0","typeLabel":"object"},{"type":"null","description":"Franchise retenue ; null sans franchise.","isRequired":true,"uniqueKey":"data.deductible.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.deductible","typeLabel":"object | null"},"deposit":{"oneOf":[{"type":"object","description":"Caution retenue ; null sans caution.","required":["depositId","name","depositAmount"],"example":{"depositId":"4e5f6a7b-8c9d-4e0f-9a1b-3c4d5e6f7081","name":"Caution citadine","depositAmount":800},"properties":{"depositId":{"oneOf":[{"type":"string","description":"Caution du catalogue (`GET /deposits`) ; null si elle a été supprimée depuis.","format":"uuid","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","isRequired":true,"uniqueKey":"data.deposit.oneOf.0.depositId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Caution du catalogue (`GET /deposits`) ; null si elle a été supprimée depuis.","isRequired":true,"uniqueKey":"data.deposit.oneOf.0.depositId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.deposit.oneOf.0.depositId","typeLabel":"string\u003cuuid> | null"},"name":{"oneOf":[{"type":"string","description":"Nom de la caution ; null si elle a été supprimée depuis.","maxLength":200,"isRequired":true,"uniqueKey":"data.deposit.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nom de la caution ; null si elle a été supprimée depuis.","isRequired":true,"uniqueKey":"data.deposit.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.deposit.oneOf.0.name","typeLabel":"string | null"},"depositAmount":{"description":"Caution demandée au client, telle que fixée par le loueur, sans TVA appliquée. Hors `totalTTC` et hors `balance` : elle s’encaisse à part (paiement `DEPOSIT`).","type":"number","minimum":0,"isRequired":true,"uniqueKey":"data.deposit.oneOf.0.depositAmount","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.deposit.oneOf.0","typeLabel":"object"},{"type":"null","description":"Caution retenue ; null sans caution.","isRequired":true,"uniqueKey":"data.deposit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.deposit","typeLabel":"object | null"},"promoCode":{"oneOf":[{"type":"string","description":"Code promo appliqué, en majuscules ; null sans code.","maxLength":50,"isRequired":true,"uniqueKey":"data.promoCode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Code promo appliqué, en majuscules ; null sans code.","isRequired":true,"uniqueKey":"data.promoCode.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.promoCode","typeLabel":"string | null"},"isVatReverseCharge":{"description":"true : autoliquidation de la TVA, `vatPercent` vaut 0 et `totalTTC` = `totalHT`.","type":"boolean","isRequired":true,"uniqueKey":"data.isVatReverseCharge","typeLabel":"boolean"},"vatPercent":{"description":"Taux de TVA appliqué, en pourcentage (20 = 20 %) ; 0 en autoliquidation ou pour une agence exonérée. Au plus 2 décimales.","type":"number","minimum":0,"maximum":100,"isRequired":true,"uniqueKey":"data.vatPercent","typeLabel":"number"},"totalHT":{"description":"Total hors taxes : somme des `lines[].amountHT`.","type":"number","isRequired":true,"uniqueKey":"data.totalHT","typeLabel":"number"},"vatAmount":{"description":"Montant de la TVA : `totalTTC − totalHT`.","type":"number","isRequired":true,"uniqueKey":"data.vatAmount","typeLabel":"number"},"totalTTC":{"description":"Total toutes taxes comprises : somme des `lines[].amountTTC`. Caution et franchise n’y sont jamais comptées.","type":"number","isRequired":true,"uniqueKey":"data.totalTTC","typeLabel":"number"},"lines":{"description":"Détail du prix, une ligne par règle appliquée.","maxItems":100,"type":"array","items":{"description":"Ligne de prix d’une offre, d’un devis ou d’une location.","examples":[{"key":"OPTION","label":"Siège enfant","refId":"6a7b8c9d-0e1f-4a2b-9c3d-5e6f70819203","quantity":1,"unitPriceHT":20,"unitPriceTTC":24,"amountHT":20,"amountTTC":24,"ratePercent":null}],"type":"object","properties":{"key":{"description":"Règle qui a produit la ligne : `BASE` (prix de location), `LEAD_TIME_ADJUSTMENT` (délai de réservation), `DURATION_DISCOUNT` (remise de durée), `COMMERCIAL_DISCOUNT` (remise commerciale), `WEEKEND_SURCHARGE` et `SHORT_DURATION_SURCHARGE` (majorations), `MILEAGE` (forfait kilométrique), `DEDUCTIBLE` (prix de la franchise retenue), `OPTION`, `CHARGE` (frais ou remise saisis), `PROMO` (code promo), `MILEAGE_OVERAGE` (dépassement kilométrique au retour), `MODIFICATION` (écart de prix d’une modification de la location).","type":"string","enum":["BASE","LEAD_TIME_ADJUSTMENT","DURATION_DISCOUNT","COMMERCIAL_DISCOUNT","WEEKEND_SURCHARGE","SHORT_DURATION_SURCHARGE","MILEAGE","DEDUCTIBLE","OPTION","CHARGE","PROMO","MILEAGE_OVERAGE","MODIFICATION"],"isRequired":true,"uniqueKey":"data.lines.items.[INDEX].key","typeLabel":"enum\u003cstring>"},"label":{"description":"Libellé affichable ; ne pas l’analyser, lire `key`.","type":"string","isRequired":true,"uniqueKey":"data.lines.items.[INDEX].label","typeLabel":"string"},"refId":{"oneOf":[{"type":"string","description":"Élément à l’origine de la ligne : `optionId` pour `OPTION`, identifiant du frais pour `CHARGE` et `MILEAGE_OVERAGE` d’une location ; null sinon.","format":"uuid","isRequired":true,"uniqueKey":"data.lines.items.[INDEX].refId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Élément à l’origine de la ligne : `optionId` pour `OPTION`, identifiant du frais pour `CHARGE` et `MILEAGE_OVERAGE` d’une location ; null sinon.","isRequired":true,"uniqueKey":"data.lines.items.[INDEX].refId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.lines.items.[INDEX].refId","typeLabel":"string\u003cuuid> | null"},"quantity":{"description":"Nombre d’exemplaires (option) ; 1 pour les autres lignes.","type":"integer","minimum":1,"isRequired":true,"uniqueKey":"data.lines.items.[INDEX].quantity","typeLabel":"integer"},"unitPriceHT":{"description":"Prix HT d’un exemplaire pour toute la période (`OPTION`) ; égal à `amountHT` sinon.","type":"number","isRequired":true,"uniqueKey":"data.lines.items.[INDEX].unitPriceHT","typeLabel":"number"},"unitPriceTTC":{"description":"Prix TTC d’un exemplaire pour toute la période (`OPTION`) ; égal à `amountTTC` sinon.","type":"number","isRequired":true,"uniqueKey":"data.lines.items.[INDEX].unitPriceTTC","typeLabel":"number"},"amountHT":{"description":"Montant HT de la ligne, signé : négatif pour une remise.","type":"number","isRequired":true,"uniqueKey":"data.lines.items.[INDEX].amountHT","typeLabel":"number"},"amountTTC":{"description":"Montant TTC de la ligne, signé : négatif pour une remise.","type":"number","isRequired":true,"uniqueKey":"data.lines.items.[INDEX].amountTTC","typeLabel":"number"},"ratePercent":{"oneOf":[{"type":"number","description":"Pourcentage appliqué (20 = 20 %) pour une remise de durée, une majoration, une franchise ou un forfait tarifés en pourcentage ; null pour les autres lignes et pour un montant saisi ou offert.","maximum":100,"minimum":0,"isRequired":true,"uniqueKey":"data.lines.items.[INDEX].ratePercent.oneOf.0","typeLabel":"number"},{"type":"null","description":"Pourcentage appliqué (20 = 20 %) pour une remise de durée, une majoration, une franchise ou un forfait tarifés en pourcentage ; null pour les autres lignes et pour un montant saisi ou offert.","isRequired":true,"uniqueKey":"data.lines.items.[INDEX].ratePercent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.lines.items.[INDEX].ratePercent","typeLabel":"number | null"}},"required":["key","label","refId","quantity","unitPriceHT","unitPriceTTC","amountHT","amountTTC","ratePercent"],"uniqueKey":"data.lines.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.lines","typeLabel":"object[]"},"pricingBasis":{"description":"Explication du prix : base journalière et délai de réservation. Elle explique les lignes sans permettre de recalculer le total, qui se lit dans `lines`.","examples":[{"dailyPrices":[{"date":"2026-11-10","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-11","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-12","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-13","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-14","seasonSlug":"basse","dailyPriceHT":42}],"leadTime":null}],"type":"object","properties":{"dailyPrices":{"description":"Un élément par jour facturé.","maxItems":1095,"type":"array","items":{"type":"object","properties":{"date":{"description":"Jour facturé, à l’heure de l’agence.","type":"string","format":"date","isRequired":true,"uniqueKey":"data.pricingBasis.dailyPrices.items.[INDEX].date","typeLabel":"string\u003cdate>"},"seasonSlug":{"oneOf":[{"type":"string","description":"Saison du jour (`GET /seasons`) ; null sans saison.","isRequired":true,"uniqueKey":"data.pricingBasis.dailyPrices.items.[INDEX].seasonSlug.oneOf.0","typeLabel":"string"},{"type":"null","description":"Saison du jour (`GET /seasons`) ; null sans saison.","isRequired":true,"uniqueKey":"data.pricingBasis.dailyPrices.items.[INDEX].seasonSlug.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.pricingBasis.dailyPrices.items.[INDEX].seasonSlug","typeLabel":"string | null"},"dailyPriceHT":{"description":"Prix HT du jour au catalogue, avant facteur de délai.","type":"number","minimum":0,"isRequired":true,"uniqueKey":"data.pricingBasis.dailyPrices.items.[INDEX].dailyPriceHT","typeLabel":"number"}},"required":["date","seasonSlug","dailyPriceHT"],"uniqueKey":"data.pricingBasis.dailyPrices.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.pricingBasis.dailyPrices","typeLabel":"object[]"},"leadTime":{"oneOf":[{"type":"object","description":"Palier de délai de réservation appliqué ; null sans palier.","required":["leadTimeTierId","leadDays","priceFactors"],"properties":{"leadTimeTierId":{"description":"Palier de délai (`GET /lead-time-tiers`).","type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.pricingBasis.leadTime.oneOf.0.leadTimeTierId","typeLabel":"string\u003cuuid>"},"leadDays":{"description":"Jours calendaires entre le calcul du prix et le départ.","type":"integer","minimum":0,"isRequired":true,"uniqueKey":"data.pricingBasis.leadTime.oneOf.0.leadDays","typeLabel":"integer"},"priceFactors":{"description":"Facteur appliqué au prix journalier de chaque saison.","maxItems":10,"type":"array","items":{"type":"object","properties":{"seasonSlug":{"type":"string","isRequired":true,"uniqueKey":"data.pricingBasis.leadTime.oneOf.0.priceFactors.items.[INDEX].seasonSlug","typeLabel":"string"},"priceFactor":{"description":"Facteur du prix journalier (1 = inchangé). Au plus 4 décimales.","type":"number","minimum":0.1,"maximum":10,"isRequired":true,"uniqueKey":"data.pricingBasis.leadTime.oneOf.0.priceFactors.items.[INDEX].priceFactor","typeLabel":"number"}},"required":["seasonSlug","priceFactor"],"uniqueKey":"data.pricingBasis.leadTime.oneOf.0.priceFactors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.pricingBasis.leadTime.oneOf.0.priceFactors","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"data.pricingBasis.leadTime.oneOf.0","typeLabel":"object"},{"type":"null","description":"Palier de délai de réservation appliqué ; null sans palier.","isRequired":true,"uniqueKey":"data.pricingBasis.leadTime.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.pricingBasis.leadTime","typeLabel":"object | null"}},"required":["dailyPrices","leadTime"],"isRequired":true,"uniqueKey":"data.pricingBasis","typeLabel":"object"},"choices":{"description":"Prix de chaque forfait, franchise et option possible pour ce véhicule et cette période ; pour en retenir un autre, créez un nouveau devis. Le stock n’est pas réservé.","type":"object","properties":{"mileagePackages":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"mileage":{"description":"Kilométrage inclus et prix du dépassement.","examples":[{"mileagePackageId":"5b7c9d1e-2f3a-4b5c-8d6e-7f8091a2b3c4","name":"200 km/jour","isUnlimited":false,"includedKm":1000,"overageRatePerKmHT":0.25}],"type":"object","properties":{"mileagePackageId":{"oneOf":[{"type":"string","description":"Forfait kilométrique du catalogue (`GET /mileage-packages`) ; null sans forfait.","format":"uuid","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.mileagePackageId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Forfait kilométrique du catalogue (`GET /mileage-packages`) ; null sans forfait.","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.mileagePackageId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.mileagePackageId","typeLabel":"string\u003cuuid> | null"},"name":{"oneOf":[{"type":"string","description":"Nom du forfait ; null sans forfait.","maxLength":100,"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nom du forfait ; null sans forfait.","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.name","typeLabel":"string | null"},"isUnlimited":{"description":"true : aucun plafond ; `includedKm` et `overageRatePerKmHT` valent alors null.","type":"boolean","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.isUnlimited","typeLabel":"boolean"},"includedKm":{"oneOf":[{"type":"integer","description":"Kilomètres inclus pour toute la période, pas par jour ; null si illimité.","minimum":0,"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.includedKm.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Kilomètres inclus pour toute la période, pas par jour ; null si illimité.","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.includedKm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.includedKm","typeLabel":"integer | null"},"overageRatePerKmHT":{"oneOf":[{"type":"number","description":"Prix HT de chaque kilomètre au-delà de `includedKm`, facturé au retour ; null si illimité ou sans tarif de dépassement.","maximum":999999.9999,"minimum":0,"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.overageRatePerKmHT.oneOf.0","typeLabel":"number"},{"type":"null","description":"Prix HT de chaque kilomètre au-delà de `includedKm`, facturé au retour ; null si illimité ou sans tarif de dépassement.","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.overageRatePerKmHT.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage.overageRatePerKmHT","typeLabel":"number | null"}},"required":["mileagePackageId","name","isUnlimited","includedKm","overageRatePerKmHT"],"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].mileage","typeLabel":"object"},"line":{"description":"Ligne `MILEAGE` que ce forfait produirait.","examples":[{"key":"OPTION","label":"Siège enfant","refId":"6a7b8c9d-0e1f-4a2b-9c3d-5e6f70819203","quantity":1,"unitPriceHT":20,"unitPriceTTC":24,"amountHT":20,"amountTTC":24,"ratePercent":null}],"type":"object","properties":{"key":{"description":"Règle qui a produit la ligne : `BASE` (prix de location), `LEAD_TIME_ADJUSTMENT` (délai de réservation), `DURATION_DISCOUNT` (remise de durée), `COMMERCIAL_DISCOUNT` (remise commerciale), `WEEKEND_SURCHARGE` et `SHORT_DURATION_SURCHARGE` (majorations), `MILEAGE` (forfait kilométrique), `DEDUCTIBLE` (prix de la franchise retenue), `OPTION`, `CHARGE` (frais ou remise saisis), `PROMO` (code promo), `MILEAGE_OVERAGE` (dépassement kilométrique au retour), `MODIFICATION` (écart de prix d’une modification de la location).","type":"string","enum":["BASE","LEAD_TIME_ADJUSTMENT","DURATION_DISCOUNT","COMMERCIAL_DISCOUNT","WEEKEND_SURCHARGE","SHORT_DURATION_SURCHARGE","MILEAGE","DEDUCTIBLE","OPTION","CHARGE","PROMO","MILEAGE_OVERAGE","MODIFICATION"],"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.key","typeLabel":"enum\u003cstring>"},"label":{"description":"Libellé affichable ; ne pas l’analyser, lire `key`.","type":"string","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.label","typeLabel":"string"},"refId":{"oneOf":[{"type":"string","description":"Élément à l’origine de la ligne : `optionId` pour `OPTION`, identifiant du frais pour `CHARGE` et `MILEAGE_OVERAGE` d’une location ; null sinon.","format":"uuid","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.refId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Élément à l’origine de la ligne : `optionId` pour `OPTION`, identifiant du frais pour `CHARGE` et `MILEAGE_OVERAGE` d’une location ; null sinon.","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.refId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.refId","typeLabel":"string\u003cuuid> | null"},"quantity":{"description":"Nombre d’exemplaires (option) ; 1 pour les autres lignes.","type":"integer","minimum":1,"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.quantity","typeLabel":"integer"},"unitPriceHT":{"description":"Prix HT d’un exemplaire pour toute la période (`OPTION`) ; égal à `amountHT` sinon.","type":"number","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.unitPriceHT","typeLabel":"number"},"unitPriceTTC":{"description":"Prix TTC d’un exemplaire pour toute la période (`OPTION`) ; égal à `amountTTC` sinon.","type":"number","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.unitPriceTTC","typeLabel":"number"},"amountHT":{"description":"Montant HT de la ligne, signé : négatif pour une remise.","type":"number","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.amountHT","typeLabel":"number"},"amountTTC":{"description":"Montant TTC de la ligne, signé : négatif pour une remise.","type":"number","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.amountTTC","typeLabel":"number"},"ratePercent":{"oneOf":[{"type":"number","description":"Pourcentage appliqué (20 = 20 %) pour une remise de durée, une majoration, une franchise ou un forfait tarifés en pourcentage ; null pour les autres lignes et pour un montant saisi ou offert.","maximum":100,"minimum":0,"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.ratePercent.oneOf.0","typeLabel":"number"},{"type":"null","description":"Pourcentage appliqué (20 = 20 %) pour une remise de durée, une majoration, une franchise ou un forfait tarifés en pourcentage ; null pour les autres lignes et pour un montant saisi ou offert.","isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.ratePercent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line.ratePercent","typeLabel":"number | null"}},"required":["key","label","refId","quantity","unitPriceHT","unitPriceTTC","amountHT","amountTTC","ratePercent"],"isRequired":true,"uniqueKey":"data.choices.mileagePackages.items.[INDEX].line","typeLabel":"object"}},"required":["mileage","line"],"uniqueKey":"data.choices.mileagePackages.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.choices.mileagePackages","typeLabel":"object[]"},"deductibles":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"deductible":{"description":"Franchise retenue, figée au moment du calcul.","examples":[{"deductibleId":"2c3d4e5f-6a7b-4c8d-9e0f-1a2b3c4d5e6f","name":"Franchise réduite","description":"Reste à charge réduit en cas de sinistre.","excessAmount":500}],"type":"object","properties":{"deductibleId":{"oneOf":[{"type":"string","description":"Franchise du catalogue (`GET /deductibles`) ; null si elle a été supprimée depuis.","format":"uuid","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deductible.deductibleId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Franchise du catalogue (`GET /deductibles`) ; null si elle a été supprimée depuis.","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deductible.deductibleId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deductible.deductibleId","typeLabel":"string\u003cuuid> | null"},"name":{"oneOf":[{"type":"string","description":"Nom de la franchise ; null si elle a été supprimée depuis.","maxLength":200,"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deductible.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nom de la franchise ; null si elle a été supprimée depuis.","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deductible.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deductible.name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Description de la franchise ; null si absente.","maxLength":2000,"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deductible.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Description de la franchise ; null si absente.","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deductible.description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deductible.description","typeLabel":"string | null"},"excessAmount":{"description":"Reste à charge du client en cas de sinistre, tel que fixé par le loueur, sans TVA appliquée. Jamais facturé ni compris dans les totaux : le prix de la franchise retenue est la ligne `DEDUCTIBLE` de `lines`.","type":"number","minimum":0,"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deductible.excessAmount","typeLabel":"number"}},"required":["deductibleId","name","description","excessAmount"],"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deductible","typeLabel":"object"},"deposit":{"oneOf":[{"type":"object","description":"Caution qui serait retenue avec cette franchise ; null sans caution.","required":["depositId","name","depositAmount"],"example":{"depositId":"4e5f6a7b-8c9d-4e0f-9a1b-3c4d5e6f7081","name":"Caution citadine","depositAmount":800},"properties":{"depositId":{"oneOf":[{"type":"string","description":"Caution du catalogue (`GET /deposits`) ; null si elle a été supprimée depuis.","format":"uuid","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deposit.oneOf.0.depositId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Caution du catalogue (`GET /deposits`) ; null si elle a été supprimée depuis.","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deposit.oneOf.0.depositId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deposit.oneOf.0.depositId","typeLabel":"string\u003cuuid> | null"},"name":{"oneOf":[{"type":"string","description":"Nom de la caution ; null si elle a été supprimée depuis.","maxLength":200,"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deposit.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nom de la caution ; null si elle a été supprimée depuis.","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deposit.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deposit.oneOf.0.name","typeLabel":"string | null"},"depositAmount":{"description":"Caution demandée au client, telle que fixée par le loueur, sans TVA appliquée. Hors `totalTTC` et hors `balance` : elle s’encaisse à part (paiement `DEPOSIT`).","type":"number","minimum":0,"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deposit.oneOf.0.depositAmount","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deposit.oneOf.0","typeLabel":"object"},{"type":"null","description":"Caution qui serait retenue avec cette franchise ; null sans caution.","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deposit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].deposit","typeLabel":"object | null"},"line":{"description":"Ligne `DEDUCTIBLE` que cette franchise produirait.","examples":[{"key":"OPTION","label":"Siège enfant","refId":"6a7b8c9d-0e1f-4a2b-9c3d-5e6f70819203","quantity":1,"unitPriceHT":20,"unitPriceTTC":24,"amountHT":20,"amountTTC":24,"ratePercent":null}],"type":"object","properties":{"key":{"description":"Règle qui a produit la ligne : `BASE` (prix de location), `LEAD_TIME_ADJUSTMENT` (délai de réservation), `DURATION_DISCOUNT` (remise de durée), `COMMERCIAL_DISCOUNT` (remise commerciale), `WEEKEND_SURCHARGE` et `SHORT_DURATION_SURCHARGE` (majorations), `MILEAGE` (forfait kilométrique), `DEDUCTIBLE` (prix de la franchise retenue), `OPTION`, `CHARGE` (frais ou remise saisis), `PROMO` (code promo), `MILEAGE_OVERAGE` (dépassement kilométrique au retour), `MODIFICATION` (écart de prix d’une modification de la location).","type":"string","enum":["BASE","LEAD_TIME_ADJUSTMENT","DURATION_DISCOUNT","COMMERCIAL_DISCOUNT","WEEKEND_SURCHARGE","SHORT_DURATION_SURCHARGE","MILEAGE","DEDUCTIBLE","OPTION","CHARGE","PROMO","MILEAGE_OVERAGE","MODIFICATION"],"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.key","typeLabel":"enum\u003cstring>"},"label":{"description":"Libellé affichable ; ne pas l’analyser, lire `key`.","type":"string","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.label","typeLabel":"string"},"refId":{"oneOf":[{"type":"string","description":"Élément à l’origine de la ligne : `optionId` pour `OPTION`, identifiant du frais pour `CHARGE` et `MILEAGE_OVERAGE` d’une location ; null sinon.","format":"uuid","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.refId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Élément à l’origine de la ligne : `optionId` pour `OPTION`, identifiant du frais pour `CHARGE` et `MILEAGE_OVERAGE` d’une location ; null sinon.","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.refId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.refId","typeLabel":"string\u003cuuid> | null"},"quantity":{"description":"Nombre d’exemplaires (option) ; 1 pour les autres lignes.","type":"integer","minimum":1,"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.quantity","typeLabel":"integer"},"unitPriceHT":{"description":"Prix HT d’un exemplaire pour toute la période (`OPTION`) ; égal à `amountHT` sinon.","type":"number","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.unitPriceHT","typeLabel":"number"},"unitPriceTTC":{"description":"Prix TTC d’un exemplaire pour toute la période (`OPTION`) ; égal à `amountTTC` sinon.","type":"number","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.unitPriceTTC","typeLabel":"number"},"amountHT":{"description":"Montant HT de la ligne, signé : négatif pour une remise.","type":"number","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.amountHT","typeLabel":"number"},"amountTTC":{"description":"Montant TTC de la ligne, signé : négatif pour une remise.","type":"number","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.amountTTC","typeLabel":"number"},"ratePercent":{"oneOf":[{"type":"number","description":"Pourcentage appliqué (20 = 20 %) pour une remise de durée, une majoration, une franchise ou un forfait tarifés en pourcentage ; null pour les autres lignes et pour un montant saisi ou offert.","maximum":100,"minimum":0,"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.ratePercent.oneOf.0","typeLabel":"number"},{"type":"null","description":"Pourcentage appliqué (20 = 20 %) pour une remise de durée, une majoration, une franchise ou un forfait tarifés en pourcentage ; null pour les autres lignes et pour un montant saisi ou offert.","isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.ratePercent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line.ratePercent","typeLabel":"number | null"}},"required":["key","label","refId","quantity","unitPriceHT","unitPriceTTC","amountHT","amountTTC","ratePercent"],"isRequired":true,"uniqueKey":"data.choices.deductibles.items.[INDEX].line","typeLabel":"object"}},"required":["deductible","deposit","line"],"uniqueKey":"data.choices.deductibles.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.choices.deductibles","typeLabel":"object[]"},"options":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"optionId":{"examples":["7c9e6679-7425-40de-944b-e07fc1f90ae7"],"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].optionId","typeLabel":"string\u003cuuid>"},"name":{"type":"string","maxLength":200,"isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].name","typeLabel":"string"},"maxBookableQuantity":{"description":"Quantité réservable sur la période : stock restant, borné par la quantité maximale de l’option.","type":"integer","minimum":0,"isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].maxBookableQuantity","typeLabel":"integer"},"line":{"description":"Ligne `OPTION` pour une unité.","examples":[{"key":"OPTION","label":"Siège enfant","refId":"6a7b8c9d-0e1f-4a2b-9c3d-5e6f70819203","quantity":1,"unitPriceHT":20,"unitPriceTTC":24,"amountHT":20,"amountTTC":24,"ratePercent":null}],"type":"object","properties":{"key":{"description":"Règle qui a produit la ligne : `BASE` (prix de location), `LEAD_TIME_ADJUSTMENT` (délai de réservation), `DURATION_DISCOUNT` (remise de durée), `COMMERCIAL_DISCOUNT` (remise commerciale), `WEEKEND_SURCHARGE` et `SHORT_DURATION_SURCHARGE` (majorations), `MILEAGE` (forfait kilométrique), `DEDUCTIBLE` (prix de la franchise retenue), `OPTION`, `CHARGE` (frais ou remise saisis), `PROMO` (code promo), `MILEAGE_OVERAGE` (dépassement kilométrique au retour), `MODIFICATION` (écart de prix d’une modification de la location).","type":"string","enum":["BASE","LEAD_TIME_ADJUSTMENT","DURATION_DISCOUNT","COMMERCIAL_DISCOUNT","WEEKEND_SURCHARGE","SHORT_DURATION_SURCHARGE","MILEAGE","DEDUCTIBLE","OPTION","CHARGE","PROMO","MILEAGE_OVERAGE","MODIFICATION"],"isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.key","typeLabel":"enum\u003cstring>"},"label":{"description":"Libellé affichable ; ne pas l’analyser, lire `key`.","type":"string","isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.label","typeLabel":"string"},"refId":{"oneOf":[{"type":"string","description":"Élément à l’origine de la ligne : `optionId` pour `OPTION`, identifiant du frais pour `CHARGE` et `MILEAGE_OVERAGE` d’une location ; null sinon.","format":"uuid","isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.refId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Élément à l’origine de la ligne : `optionId` pour `OPTION`, identifiant du frais pour `CHARGE` et `MILEAGE_OVERAGE` d’une location ; null sinon.","isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.refId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.refId","typeLabel":"string\u003cuuid> | null"},"quantity":{"description":"Nombre d’exemplaires (option) ; 1 pour les autres lignes.","type":"integer","minimum":1,"isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.quantity","typeLabel":"integer"},"unitPriceHT":{"description":"Prix HT d’un exemplaire pour toute la période (`OPTION`) ; égal à `amountHT` sinon.","type":"number","isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.unitPriceHT","typeLabel":"number"},"unitPriceTTC":{"description":"Prix TTC d’un exemplaire pour toute la période (`OPTION`) ; égal à `amountTTC` sinon.","type":"number","isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.unitPriceTTC","typeLabel":"number"},"amountHT":{"description":"Montant HT de la ligne, signé : négatif pour une remise.","type":"number","isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.amountHT","typeLabel":"number"},"amountTTC":{"description":"Montant TTC de la ligne, signé : négatif pour une remise.","type":"number","isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.amountTTC","typeLabel":"number"},"ratePercent":{"oneOf":[{"type":"number","description":"Pourcentage appliqué (20 = 20 %) pour une remise de durée, une majoration, une franchise ou un forfait tarifés en pourcentage ; null pour les autres lignes et pour un montant saisi ou offert.","maximum":100,"minimum":0,"isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.ratePercent.oneOf.0","typeLabel":"number"},{"type":"null","description":"Pourcentage appliqué (20 = 20 %) pour une remise de durée, une majoration, une franchise ou un forfait tarifés en pourcentage ; null pour les autres lignes et pour un montant saisi ou offert.","isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.ratePercent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line.ratePercent","typeLabel":"number | null"}},"required":["key","label","refId","quantity","unitPriceHT","unitPriceTTC","amountHT","amountTTC","ratePercent"],"isRequired":true,"uniqueKey":"data.choices.options.items.[INDEX].line","typeLabel":"object"}},"required":["optionId","name","maxBookableQuantity","line"],"uniqueKey":"data.choices.options.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.choices.options","typeLabel":"object[]"}},"required":["mileagePackages","deductibles","options"],"isRequired":true,"uniqueKey":"data.choices","typeLabel":"object"}},"required":["id","createdAt","expiresAt","consumedAt","rentalId","currency","vehicle","period","mileage","deductible","deposit","promoCode","isVatReverseCharge","vatPercent","totalHT","vatAmount","totalTTC","lines","pricingBasis","choices"],"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"0b8e2a6c-4d1f-4e3a-9b7c-1c2d3e4f5a6b","createdAt":"2026-11-02T09:12:44+01:00","expiresAt":"2026-11-03T09:12:44+01:00","consumedAt":null,"rentalId":null,"currency":"EUR","vehicle":{"id":"3b1f5c2a-8d4e-4f6a-9b7c-2e5d8a1f4c63","name":"208 Allure","brand":"Peugeot","model":"208","vehicleType":"CITY","plate":"AB-123-CD","serialNumber":null},"period":{"startAt":"2026-11-10T10:00:00+01:00","endAt":"2026-11-15T10:00:00+01:00","timezone":"Europe/Paris","billedDays":5,"durationMinutes":7200},"mileage":{"mileagePackageId":"5b7c9d1e-2f3a-4b5c-8d6e-7f8091a2b3c4","name":"200 km/jour","isUnlimited":false,"includedKm":1000,"overageRatePerKmHT":0.25},"deductible":{"deductibleId":"2c3d4e5f-6a7b-4c8d-9e0f-1a2b3c4d5e6f","name":"Franchise réduite","description":"Reste à charge réduit en cas de sinistre.","excessAmount":500},"deposit":{"depositId":"4e5f6a7b-8c9d-4e0f-9a1b-3c4d5e6f7081","name":"Caution citadine","depositAmount":800},"promoCode":null,"isVatReverseCharge":false,"vatPercent":20,"totalHT":257,"vatAmount":51.4,"totalTTC":308.4,"lines":[{"key":"BASE","label":"Tarif de base","refId":null,"quantity":1,"unitPriceHT":210,"unitPriceTTC":252,"amountHT":210,"amountTTC":252,"ratePercent":null},{"key":"DURATION_DISCOUNT","label":"Réduction durée 5 jours","refId":null,"quantity":1,"unitPriceHT":-10.5,"unitPriceTTC":-12.6,"amountHT":-10.5,"amountTTC":-12.6,"ratePercent":5},{"key":"MILEAGE","label":"Forfait 200 km/jour","refId":null,"quantity":1,"unitPriceHT":0,"unitPriceTTC":0,"amountHT":0,"amountTTC":0,"ratePercent":null},{"key":"DEDUCTIBLE","label":"Franchise réduite","refId":null,"quantity":1,"unitPriceHT":37.5,"unitPriceTTC":45,"amountHT":37.5,"amountTTC":45,"ratePercent":null},{"key":"OPTION","label":"Siège enfant","refId":"6a7b8c9d-0e1f-4a2b-9c3d-5e6f70819203","quantity":1,"unitPriceHT":20,"unitPriceTTC":24,"amountHT":20,"amountTTC":24,"ratePercent":null}],"pricingBasis":{"dailyPrices":[{"date":"2026-11-10","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-11","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-12","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-13","seasonSlug":"basse","dailyPriceHT":42},{"date":"2026-11-14","seasonSlug":"basse","dailyPriceHT":42}],"leadTime":null},"choices":{"mileagePackages":[{"mileage":{"mileagePackageId":"5b7c9d1e-2f3a-4b5c-8d6e-7f8091a2b3c4","name":"200 km/jour","isUnlimited":false,"includedKm":1000,"overageRatePerKmHT":0.25},"line":{"key":"MILEAGE","label":"Forfait 200 km/jour","refId":null,"quantity":1,"unitPriceHT":0,"unitPriceTTC":0,"amountHT":0,"amountTTC":0,"ratePercent":null}},{"mileage":{"mileagePackageId":"9d0e1f2a-3b4c-4d5e-8f60-819203142536","name":"Kilométrage illimité","isUnlimited":true,"includedKm":null,"overageRatePerKmHT":null},"line":{"key":"MILEAGE","label":"Forfait Kilométrage illimité","refId":null,"quantity":1,"unitPriceHT":75,"unitPriceTTC":90,"amountHT":75,"amountTTC":90,"ratePercent":null}}],"deductibles":[{"deductible":{"deductibleId":"2c3d4e5f-6a7b-4c8d-9e0f-1a2b3c4d5e6f","name":"Franchise réduite","description":"Reste à charge réduit en cas de sinistre.","excessAmount":500},"deposit":{"depositId":"4e5f6a7b-8c9d-4e0f-9a1b-3c4d5e6f7081","name":"Caution citadine","depositAmount":800},"line":{"key":"DEDUCTIBLE","label":"Franchise réduite","refId":null,"quantity":1,"unitPriceHT":37.5,"unitPriceTTC":45,"amountHT":37.5,"amountTTC":45,"ratePercent":null}}],"options":[{"optionId":"6a7b8c9d-0e1f-4a2b-9c3d-5e6f70819203","name":"Siège enfant","maxBookableQuantity":2,"line":{"key":"OPTION","label":"Siège enfant","refId":"6a7b8c9d-0e1f-4a2b-9c3d-5e6f70819203","quantity":1,"unitPriceHT":20,"unitPriceTTC":24,"amountHT":20,"amountTTC":24,"ratePercent":null}}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"2e65be69-c3d7-40af-a6a2-d4f5888191b6":{"description":"`VALIDATION_FAILED`","headers":{"X-Request-Id":{"description":"Identifiant de la requête, à communiquer au support.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Plafond du seau de débit qui s’applique à la requête.","schema":{"type":"integer","minimum":0}},"RateLimit-Remaining":{"description":"Requêtes encore permises dans la fenêtre en cours.","schema":{"type":"integer","minimum":0}},"RateLimit-Reset":{"description":"Secondes avant la remise à zéro de la fenêtre.","schema":{"type":"integer","minimum":0}}},"content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/validation-failed","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","const":"Requête invalide","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","const":400,"isRequired":true,"uniqueKey":"status","typeLabel":"number"},"code":{"type":"string","const":"VALIDATION_FAILED","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"errors":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"pointer":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"code":{"type":"string","enum":["required","invalid_type","invalid_format","invalid_value","too_small","too_big","too_many_decimals","out_of_range","unknown_field","null_not_allowed","empty_string","empty_patch","mutually_exclusive","not_applicable","duplicate","end_before_start","date_in_past","nonexistent_local_time","offset_not_allowed","offset_required","upload_expired","upload_incomplete","upload_conflict"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"required":["pointer","code","detail"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"required":["type","title","status","code","detail","instance","requestId","errors"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/validation-failed","title":"Requête invalide","status":400,"code":"VALIDATION_FAILED","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>","errors":[{"pointer":"\u003cstring>","code":"required","detail":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"14e60d30-d942-47a1-923d-e06e3cd7357b":{"description":"`API_KEY_DISABLED`, `API_KEY_EXPIRED`, `API_KEY_INVALID`, `API_KEY_MISSING`, `API_KEY_REVOKED`","headers":{"X-Request-Id":{"description":"Identifiant de la requête, à communiquer au support.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Plafond du seau de débit qui s’applique à la requête.","schema":{"type":"integer","minimum":0}},"RateLimit-Remaining":{"description":"Requêtes encore permises dans la fenêtre en cours.","schema":{"type":"integer","minimum":0}},"RateLimit-Reset":{"description":"Secondes avant la remise à zéro de la fenêtre.","schema":{"type":"integer","minimum":0}},"WWW-Authenticate":{"description":"Schéma d’authentification attendu (`Bearer`), avec `error=\"invalid_token\"` pour une clé refusée.","schema":{"type":"string"}}},"content":{"application/problem+json":{"schema":{"oneOf":[{"type":"object","required":["type","title","status","code","detail","instance","requestId"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/api-key-disabled","isRequired":true,"uniqueKey":"oneOf.0.type","typeLabel":"string"},"title":{"type":"string","const":"Clé API désactivée","isRequired":true,"uniqueKey":"oneOf.0.title","typeLabel":"string"},"status":{"type":"number","const":401,"isRequired":true,"uniqueKey":"oneOf.0.status","typeLabel":"number"},"code":{"type":"string","const":"API_KEY_DISABLED","isRequired":true,"uniqueKey":"oneOf.0.code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.requestId","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["type","title","status","code","detail","instance","requestId"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/api-key-expired","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"string"},"title":{"type":"string","const":"Clé API expirée","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"status":{"type":"number","const":401,"isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"number"},"code":{"type":"string","const":"API_KEY_EXPIRED","isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.requestId","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","required":["type","title","status","code","detail","instance","requestId"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/api-key-invalid","isRequired":true,"uniqueKey":"oneOf.2.type","typeLabel":"string"},"title":{"type":"string","const":"Clé API invalide","isRequired":true,"uniqueKey":"oneOf.2.title","typeLabel":"string"},"status":{"type":"number","const":401,"isRequired":true,"uniqueKey":"oneOf.2.status","typeLabel":"number"},"code":{"type":"string","const":"API_KEY_INVALID","isRequired":true,"uniqueKey":"oneOf.2.code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.requestId","typeLabel":"string"}},"uniqueKey":"oneOf.2","typeLabel":"object"},{"type":"object","required":["type","title","status","code","detail","instance","requestId"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/api-key-missing","isRequired":true,"uniqueKey":"oneOf.3.type","typeLabel":"string"},"title":{"type":"string","const":"Clé API absente","isRequired":true,"uniqueKey":"oneOf.3.title","typeLabel":"string"},"status":{"type":"number","const":401,"isRequired":true,"uniqueKey":"oneOf.3.status","typeLabel":"number"},"code":{"type":"string","const":"API_KEY_MISSING","isRequired":true,"uniqueKey":"oneOf.3.code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.3.detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"oneOf.3.instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.3.requestId","typeLabel":"string"}},"uniqueKey":"oneOf.3","typeLabel":"object"},{"type":"object","required":["type","title","status","code","detail","instance","requestId"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/api-key-revoked","isRequired":true,"uniqueKey":"oneOf.4.type","typeLabel":"string"},"title":{"type":"string","const":"Clé API révoquée","isRequired":true,"uniqueKey":"oneOf.4.title","typeLabel":"string"},"status":{"type":"number","const":401,"isRequired":true,"uniqueKey":"oneOf.4.status","typeLabel":"number"},"code":{"type":"string","const":"API_KEY_REVOKED","isRequired":true,"uniqueKey":"oneOf.4.code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.4.detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"oneOf.4.instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.4.requestId","typeLabel":"string"}},"uniqueKey":"oneOf.4","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/api-key-disabled","title":"Clé API désactivée","status":401,"code":"API_KEY_DISABLED","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"1e674087-5c33-4d58-aceb-b431924b21e5":{"description":"`FEATURE_NOT_AVAILABLE`, `INSUFFICIENT_SCOPE`, `ORGANIZATION_SUSPENDED`","headers":{"X-Request-Id":{"description":"Identifiant de la requête, à communiquer au support.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Plafond du seau de débit qui s’applique à la requête.","schema":{"type":"integer","minimum":0}},"RateLimit-Remaining":{"description":"Requêtes encore permises dans la fenêtre en cours.","schema":{"type":"integer","minimum":0}},"RateLimit-Reset":{"description":"Secondes avant la remise à zéro de la fenêtre.","schema":{"type":"integer","minimum":0}}},"content":{"application/problem+json":{"schema":{"oneOf":[{"type":"object","required":["type","title","status","code","detail","instance","requestId","feature"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/feature-not-available","isRequired":true,"uniqueKey":"oneOf.0.type","typeLabel":"string"},"title":{"type":"string","const":"Fonctionnalité non incluse","isRequired":true,"uniqueKey":"oneOf.0.title","typeLabel":"string"},"status":{"type":"number","const":403,"isRequired":true,"uniqueKey":"oneOf.0.status","typeLabel":"number"},"code":{"type":"string","const":"FEATURE_NOT_AVAILABLE","isRequired":true,"uniqueKey":"oneOf.0.code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.requestId","typeLabel":"string"},"feature":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"oneOf.0.feature","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["type","title","status","code","detail","instance","requestId","requiredScopes"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/insufficient-scope","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"string"},"title":{"type":"string","const":"Scope insuffisant","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"status":{"type":"number","const":403,"isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"number"},"code":{"type":"string","const":"INSUFFICIENT_SCOPE","isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.requestId","typeLabel":"string"},"requiredScopes":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","enum":["offers.read","quotes.write","rentals.read","rentals.write","rentals.operate","rentals.delete","payments.write","payments.refund","customers.read","customers.write","customers.delete","vehicles.read","vehicles.write","vehicles.delete","catalog.read","catalog.write","pricing.read","pricing.write","maintenance.read","maintenance.write"],"uniqueKey":"oneOf.1.requiredScopes.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"oneOf.1.requiredScopes","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","required":["type","title","status","code","detail","instance","requestId"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/organization-suspended","isRequired":true,"uniqueKey":"oneOf.2.type","typeLabel":"string"},"title":{"type":"string","const":"Organisation suspendue","isRequired":true,"uniqueKey":"oneOf.2.title","typeLabel":"string"},"status":{"type":"number","const":403,"isRequired":true,"uniqueKey":"oneOf.2.status","typeLabel":"number"},"code":{"type":"string","const":"ORGANIZATION_SUSPENDED","isRequired":true,"uniqueKey":"oneOf.2.code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.requestId","typeLabel":"string"}},"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/feature-not-available","title":"Fonctionnalité non incluse","status":403,"code":"FEATURE_NOT_AVAILABLE","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>","feature":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"4f7f8678-158b-41ac-bed7-16a53b13d435":{"description":"`NOT_FOUND`","headers":{"X-Request-Id":{"description":"Identifiant de la requête, à communiquer au support.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Plafond du seau de débit qui s’applique à la requête.","schema":{"type":"integer","minimum":0}},"RateLimit-Remaining":{"description":"Requêtes encore permises dans la fenêtre en cours.","schema":{"type":"integer","minimum":0}},"RateLimit-Reset":{"description":"Secondes avant la remise à zéro de la fenêtre.","schema":{"type":"integer","minimum":0}}},"content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/not-found","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","const":"Ressource introuvable","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","const":404,"isRequired":true,"uniqueKey":"status","typeLabel":"number"},"code":{"type":"string","const":"NOT_FOUND","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"resource":{"type":"string","enum":["RENTAL","RENTAL_OPTION","QUOTE","PAYMENT","INVOICE","PHOTO","AMENDMENT","INSPECTION","CUSTOMER","VEHICLE","VEHICLE_BLOCK","CATEGORY","OPTION","DEDUCTIBLE","DEPOSIT","MILEAGE_PACKAGE","LOCATION","SEASON","SEASON_CALENDAR_MONTH","DURATION_DISCOUNT","LEAD_TIME_TIER","MAINTENANCE_RECORD","MAINTENANCE_OPERATION"],"isRequired":true,"uniqueKey":"resource","typeLabel":"enum\u003cstring>"}},"required":["type","title","status","code","detail","instance","requestId","resource"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/not-found","title":"Ressource introuvable","status":404,"code":"NOT_FOUND","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>","resource":"RENTAL"}}},"exampleType":"generated"}},"exampleType":"generated"},"5e209aee-69d7-42db-8664-e87eb520eaad":{"description":"`RATE_LIMITED`","headers":{"X-Request-Id":{"description":"Identifiant de la requête, à communiquer au support.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Plafond du seau de débit qui s’applique à la requête.","schema":{"type":"integer","minimum":0}},"RateLimit-Remaining":{"description":"Requêtes encore permises dans la fenêtre en cours.","schema":{"type":"integer","minimum":0}},"RateLimit-Reset":{"description":"Secondes avant la remise à zéro de la fenêtre.","schema":{"type":"integer","minimum":0}},"Retry-After":{"description":"Secondes à attendre avant de rejouer la requête.","schema":{"type":"integer","minimum":0}}},"content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/rate-limited","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","const":"Trop de requêtes","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","const":429,"isRequired":true,"uniqueKey":"status","typeLabel":"number"},"code":{"type":"string","const":"RATE_LIMITED","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"limit":{"type":"string","enum":["PRE_AUTH","PER_KEY","WRITE","QUOTE"],"isRequired":true,"uniqueKey":"limit","typeLabel":"enum\u003cstring>"},"windowSeconds":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"windowSeconds","typeLabel":"integer"},"retryAfter":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"retryAfter","typeLabel":"integer"}},"required":["type","title","status","code","detail","instance","requestId","limit","windowSeconds","retryAfter"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/rate-limited","title":"Trop de requêtes","status":429,"code":"RATE_LIMITED","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>","limit":"PRE_AUTH","windowSeconds":2,"retryAfter":1}}},"exampleType":"generated"}},"exampleType":"generated"},"957ec340-1937-4cb7-8c14-1103d15707cc":{"description":"`INTERNAL_ERROR`","headers":{"X-Request-Id":{"description":"Identifiant de la requête, à communiquer au support.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Plafond du seau de débit qui s’applique à la requête.","schema":{"type":"integer","minimum":0}},"RateLimit-Remaining":{"description":"Requêtes encore permises dans la fenêtre en cours.","schema":{"type":"integer","minimum":0}},"RateLimit-Reset":{"description":"Secondes avant la remise à zéro de la fenêtre.","schema":{"type":"integer","minimum":0}}},"content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/internal-error","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","const":"Erreur interne","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","const":500,"isRequired":true,"uniqueKey":"status","typeLabel":"number"},"code":{"type":"string","const":"INTERNAL_ERROR","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"}},"required":["type","title","status","code","detail","instance","requestId"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/internal-error","title":"Erreur interne","status":500,"code":"INTERNAL_ERROR","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"c6a5ba8f-6a13-4fac-821f-cc559ecafb87":{"ApiKey":{"type":"http","scheme":"bearer","bearerFormat":"lck_…","description":"Clé API `lck_…` créée dans Lexio (Paramètres → Développeur), envoyée en `Authorization: Bearer`. Voir [Authentification](https://docs.lexio.rent/authentification).","scopes":[],"schemeName":"ApiKey"}}},"servers":{"c3220b3b-f902-475f-902a-f94f20648ddf":{"url":"https://api.lexio.rent/api/external/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"lck_…","description":"Clé API `lck_…` créée dans Lexio (Paramètres → Développeur), envoyée en `Authorization: Bearer`. Voir [Authentification](https://docs.lexio.rent/authentification).","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Clé API `lck_…` créée dans Lexio (Paramètres → Développeur), envoyée en `Authorization: Bearer`. Voir [Authentification](https://docs.lexio.rent/authentification).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiKey","name":"Authorization"}],"title":"ApiKey"}]},"originalFileLocation":"openapi.json"},"subdomain":"lexio","siteName":"API Lexio","title":"Lire un devis - API Lexio","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"fr":{"href":"/api-reference/offre/get-quote","matchLevel":0}}},"lastModified":"2026-10-29T01:01:12.055Z","originalFileLocation":"api-reference/offre/get-quote.mdx","locale":"fr"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Accès : offers.read Le devis tel que créé, expiré compris : lisez expiresAt, consumedAt et rentalId (location créée avec lui). choices reste celui du calcul. Devis inconnu, d’une autre organisation ou d’un autre identifiant partenaire, ou effacé (24 h après expiresAt) : 404. La lecture ne renvoie jamais QUOTE_EXPIRED.\">\u003cmeta data-mint-head name=\"application-name\" content=\"API Lexio\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lexio/Fn3qCdBL0Ek5USre/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/lexio/Fn3qCdBL0Ek5USre/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lexio/Fn3qCdBL0Ek5USre/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lexio/Fn3qCdBL0Ek5USre/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lexio/Fn3qCdBL0Ek5USre/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lexio/Fn3qCdBL0Ek5USre/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lexio/Fn3qCdBL0Ek5USre/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lexio/Fn3qCdBL0Ek5USre/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lexio/Fn3qCdBL0Ek5USre/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Lire un devis - API Lexio\">\u003cmeta data-mint-head property=\"og:description\" content=\"Accès : offers.read Le devis tel que créé, expiré compris : lisez expiresAt, consumedAt et rentalId (location créée avec lui). choices reste celui du calcul. Devis inconnu, d’une autre organisation ou d’un autre identifiant partenaire, ou effacé (24 h après expiresAt) : 404. La lecture ne renvoie jamais QUOTE_EXPIRED.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"API Lexio\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.lexio.rent/api-reference/offre/get-quote\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lexio.mintlify.app/_mintlify/api/og/v2?division=Offre\u0026amp;title=Lire+un+devis\u0026amp;description=**Acc%C3%A8s**+%3A+%60offers.read%60%0A%0ALe+devis+tel+que+cr%C3%A9%C3%A9%2C+expir%C3%A9+compris+%3A+lisez+%60expiresAt%60%2C+%60consumedAt%60+et+%60rentalId%60+%28location+cr%C3%A9%C3%A9e+avec+lui%29.+%60choices%60+reste+celu\u0026amp;theme=7021b09e080d2874048b5ff2\u0026amp;signature=1b9a911a3e32e43f6bbce6dd896a589bae1fc5a5b28bf686c7158d3410f595b2\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Lire un devis - API Lexio\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Accès : offers.read Le devis tel que créé, expiré compris : lisez expiresAt, consumedAt et rentalId (location créée avec lui). choices reste celui du calcul. Devis inconnu, d’une autre organisation ou d’un autre identifiant partenaire, ou effacé (24 h après expiresAt) : 404. La lecture ne renvoie jamais QUOTE_EXPIRED.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lexio.mintlify.app/_mintlify/api/og/v2?division=Offre\u0026amp;title=Lire+un+devis\u0026amp;description=**Acc%C3%A8s**+%3A+%60offers.read%60%0A%0ALe+devis+tel+que+cr%C3%A9%C3%A9%2C+expir%C3%A9+compris+%3A+lisez+%60expiresAt%60%2C+%60consumedAt%60+et+%60rentalId%60+%28location+cr%C3%A9%C3%A9e+avec+lui%29.+%60choices%60+reste+celu\u0026amp;theme=7021b09e080d2874048b5ff2\u0026amp;signature=1b9a911a3e32e43f6bbce6dd896a589bae1fc5a5b28bf686c7158d3410f595b2\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/lexio/Fn3qCdBL0Ek5USre/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"API Lexio\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#213051\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.lexio.rent/api-reference/offre/get-quote\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/offre/get-quote.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.lexio.rent/#organization\",\"name\":\"API Lexio\",\"url\":\"https://docs.lexio.rent\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lexio/pRouqOAymioY_AdF/logo/light.svg?fit=max\u0026auto=format\u0026n=pRouqOAymioY_AdF\u0026q=85\u0026s=dfcc1b24a8c399ae35b02ed7c0b9f66d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.lexio.rent#website\",\"name\":\"API Lexio\",\"url\":\"https://docs.lexio.rent\",\"publisher\":{\"@id\":\"https://docs.lexio.rent/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.lexio.rent/api-reference/offre/get-quote#webpage\",\"url\":\"https://docs.lexio.rent/api-reference/offre/get-quote\",\"name\":\"Lire un devis\",\"description\":\"Accès : offers.read Le devis tel que créé, expiré compris : lisez expiresAt, consumedAt et rentalId (location créée avec lui). choices reste celui du calcul. Devis inconnu, d’une autre organisation ou d’un autre identifiant partenaire, ou effacé (24 h après expiresAt) : 404. La lecture ne renvoie jamais QUOTE_EXPIRED.\",\"dateModified\":\"2026-10-29T01:01:12.055Z\",\"isPartOf\":{\"@id\":\"https://docs.lexio.rent#website\"},\"breadcrumb\":{\"@id\":\"https://docs.lexio.rent/api-reference/offre/get-quote#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.lexio.rent/api-reference/offre/get-quote#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Offre\",\"item\":\"https://docs.lexio.rent/api-reference/offre/list-availability\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lire un devis\",\"item\":\"https://docs.lexio.rent/api-reference/offre/get-quote\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.lexio.rent/api-reference/offre/get-quote#apireference\",\"headline\":\"Lire un devis\",\"name\":\"Lire un devis\",\"description\":\"Accès : offers.read Le devis tel que créé, expiré compris : lisez expiresAt, consumedAt et rentalId (location créée avec lui). choices reste celui du calcul. Devis inconnu, d’une autre organisation ou d’un autre identifiant partenaire, ou effacé (24 h après expiresAt) : 404. La lecture ne renvoie jamais QUOTE_EXPIRED.\",\"url\":\"https://docs.lexio.rent/api-reference/offre/get-quote\",\"mainEntityOfPage\":{\"@id\":\"https://docs.lexio.rent/api-reference/offre/get-quote#webpage\"},\"dateModified\":\"2026-10-29T01:01:12.055Z\",\"publisher\":{\"@id\":\"https://docs.lexio.rent/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.lexio.rent#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"API Lexio\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"API Lexio","nav":{"global":null,"languages":[{"language":"fr","tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"Référence de l’API","groups":[{"group":"Organisation","pages":[{"title":"Lire l’organisation et la clé","deprecated":null,"version":null,"sidebarTitle":"Lire l’organisation et la clé","openapi":"/openapi.json get /organization","href":"/api-reference/organisation/get-organization"}]},{"group":"Offre","pages":[{"title":"Lister les disponibilités et les prix","deprecated":null,"version":null,"sidebarTitle":"Lister les disponibilités et les prix","openapi":"/openapi.json get /availability","href":"/api-reference/offre/list-availability"},{"title":"Créer un devis","description":"**Accès** : `quotes.write`\n\nFige 24 h (`expiresAt`) le prix d’un véhicule sur une période, sans le réserver : la disponibilité est revérifiée à la création de la location. Avec `vehicleId`, `startAt` et `endAt` seuls, `totalTTC` est celui de `GET /availability`. Options : quantité de 1 à `choices.options[].maxBookableQuantity`.\n\n**Refus**\n- `VEHICLE_UNAVAILABLE` : véhicule non réservable.\n- `OPTION_UNAVAILABLE` : stock d’option insuffisant.\n- `BOOKING_RULE_VIOLATION` : règles de réservation (clé partenaire).\n- `DISCOUNT_CAP_EXCEEDED` : remise au-delà du plafond de la clé ou sous un total nul.\n- `FEATURE_NOT_AVAILABLE` : `options` sans `pricing.options`.\n- 400 `not_applicable` : jeune conducteur dans `options` (`driverBirthDate` en décide) ; conducteur additionnel, `charges` ou `isVatReverseCharge` avec une clé partenaire.\n\n`choices` chiffre chaque alternative ; pour en retenir une, créez un autre devis. Le devis sert une fois, en `quoteId` de `POST /rentals`, par une clé du même code partenaire.","deprecated":null,"version":null,"sidebarTitle":"Créer un devis","openapi":"/openapi.json post /quotes","href":"/api-reference/offre/create-quote"},{"title":"Lire un devis","deprecated":null,"version":null,"sidebarTitle":"Lire un devis","openapi":"/openapi.json get /quotes/{quoteId}","href":"/api-reference/offre/get-quote"}]},{"group":"Locations","pages":[{"title":"Lister les locations","description":"**Accès** : `rentals.read`\n\nLes locations, chacune dans la représentation de `GET /rentals/{rentalId}`, triées par `period.startAt` décroissant puis `id`.\n\n**Filtres**, combinables, en égalité exacte : `status` (valeurs séparées par des virgules), `vehicleId`, `customerId`, `categoryId`, `partnerReference`, `number`. Un identifiant inconnu donne une liste vide. `from` et `to` (`YYYY-MM-DD`, inclus) sont des jours de l’agence : une location est retenue si sa période contractuelle ou réelle les chevauche ; une location `IN_PROGRESS` non rendue court jusqu’à son retour. `from` postérieur à `to` → 400 sur `/to`.\n\nSans `status`, les locations `CANCELLED` sont listées : pour un planning, filtrez `status=PENDING_APPROVAL,RESERVED,IN_PROGRESS,COMPLETED`.\n\n**Pagination** : une location déplacée pendant le parcours des pages peut manquer ou revenir ; dédoublonnez par `id` et suivez les changements par `GET /events`.\n\nUne clé partenaire ne voit que ses locations ; le filtre `partnerCode` est réservé aux clés sans code partenaire (sinon 400 `not_applicable`).","deprecated":null,"version":null,"sidebarTitle":"Lister les locations","openapi":"/openapi.json get /rentals","href":"/api-reference/locations/list-rentals"},{"title":"Créer une location","deprecated":null,"version":null,"sidebarTitle":"Créer une location","openapi":"/openapi.json post /rentals","href":"/api-reference/locations/create-rental"},{"title":"Lire une location","deprecated":null,"version":null,"sidebarTitle":"Lire une location","openapi":"/openapi.json get /rentals/{rentalId}","href":"/api-reference/locations/get-rental"},{"title":"Modifier les notes et les lieux","deprecated":null,"version":null,"sidebarTitle":"Modifier les notes et les lieux","openapi":"/openapi.json patch /rentals/{rentalId}","href":"/api-reference/locations/update-rental"},{"title":"Supprimer une location","deprecated":null,"version":null,"sidebarTitle":"Supprimer une location","openapi":"/openapi.json delete /rentals/{rentalId}","href":"/api-reference/locations/delete-rental"},{"title":"Annuler une location ou refuser une demande","deprecated":null,"version":null,"sidebarTitle":"Annuler une location ou refuser une demande","openapi":"/openapi.json post /rentals/{rentalId}/cancel","href":"/api-reference/locations/cancel-rental"},{"title":"Lire le contrat d’une location","deprecated":null,"version":null,"sidebarTitle":"Lire le contrat d’une location","openapi":"/openapi.json get /rentals/{rentalId}/contract","href":"/api-reference/locations/get-rental-contract"}]},{"group":"Modifications","pages":[{"title":"Changer les dates d’une location","deprecated":null,"version":null,"sidebarTitle":"Changer les dates d’une location","openapi":"/openapi.json post /rentals/{rentalId}/reschedule","href":"/api-reference/modifications/reschedule-rental"},{"title":"Changer le véhicule d’une location","deprecated":null,"version":null,"sidebarTitle":"Changer le véhicule d’une location","openapi":"/openapi.json post /rentals/{rentalId}/change-vehicle","href":"/api-reference/modifications/change-rental-vehicle"},{"title":"Changer la couverture d’une location","deprecated":null,"version":null,"sidebarTitle":"Changer la couverture d’une location","openapi":"/openapi.json post /rentals/{rentalId}/change-coverage","href":"/api-reference/modifications/change-rental-coverage"},{"title":"Changer le titulaire d’une location","deprecated":null,"version":null,"sidebarTitle":"Changer le titulaire d’une location","openapi":"/openapi.json post /rentals/{rentalId}/change-customer","href":"/api-reference/modifications/change-rental-customer"},{"title":"Fixer la quantité d’une option","deprecated":null,"version":null,"sidebarTitle":"Fixer la quantité d’une option","openapi":"/openapi.json put /rentals/{rentalId}/options/{optionId}","href":"/api-reference/modifications/set-rental-option-quantity"},{"title":"Retirer une option d’une location","deprecated":null,"version":null,"sidebarTitle":"Retirer une option d’une location","openapi":"/openapi.json delete /rentals/{rentalId}/options/{optionId}","href":"/api-reference/modifications/remove-rental-option"},{"title":"Lister les avenants d’une location","deprecated":null,"version":null,"sidebarTitle":"Lister les avenants d’une location","openapi":"/openapi.json get /rentals/{rentalId}/amendments","href":"/api-reference/modifications/list-rental-amendments"}]},{"group":"Départ et retour","pages":[{"title":"Départ du véhicule","deprecated":null,"version":null,"sidebarTitle":"Départ du véhicule","openapi":"/openapi.json post /rentals/{rentalId}/pickup","href":"/api-reference/depart-et-retour/pick-up-rental"},{"title":"Retour du véhicule","deprecated":null,"version":null,"sidebarTitle":"Retour du véhicule","openapi":"/openapi.json post /rentals/{rentalId}/return","href":"/api-reference/depart-et-retour/return-rental"},{"title":"Préparer le téléversement de photos d’état des lieux","deprecated":null,"version":null,"sidebarTitle":"Préparer le téléversement de photos d’état des lieux","openapi":"/openapi.json post /rentals/{rentalId}/photo-uploads","href":"/api-reference/depart-et-retour/create-rental-photo-uploads"},{"title":"Enregistrer des photos d’état des lieux téléversées","deprecated":null,"version":null,"sidebarTitle":"Enregistrer des photos d’état des lieux téléversées","openapi":"/openapi.json post /rentals/{rentalId}/photos","href":"/api-reference/depart-et-retour/register-rental-photos"},{"title":"Lister les photos d’état des lieux d’une location","deprecated":null,"version":null,"sidebarTitle":"Lister les photos d’état des lieux d’une location","openapi":"/openapi.json get /rentals/{rentalId}/photos","href":"/api-reference/depart-et-retour/list-rental-photos"},{"title":"Lire une photo d’état des lieux","deprecated":null,"version":null,"sidebarTitle":"Lire une photo d’état des lieux","openapi":"/openapi.json get /rentals/{rentalId}/photos/{photoId}","href":"/api-reference/depart-et-retour/get-rental-photo"},{"title":"Supprimer une photo d’état des lieux","deprecated":null,"version":null,"sidebarTitle":"Supprimer une photo d’état des lieux","openapi":"/openapi.json delete /rentals/{rentalId}/photos/{photoId}","href":"/api-reference/depart-et-retour/delete-rental-photo"},{"title":"Lire les états des lieux d’une location","deprecated":null,"version":null,"sidebarTitle":"Lire les états des lieux d’une location","openapi":"/openapi.json get /rentals/{rentalId}/inspections","href":"/api-reference/depart-et-retour/list-rental-inspections"}]},{"group":"Paiements","pages":[{"title":"Lister les paiements d’une location","deprecated":null,"version":null,"sidebarTitle":"Lister les paiements d’une location","openapi":"/openapi.json get /rentals/{rentalId}/payments","href":"/api-reference/paiements/list-rental-payments"},{"title":"Lire un paiement","deprecated":null,"version":null,"sidebarTitle":"Lire un paiement","openapi":"/openapi.json get /rentals/{rentalId}/payments/{paymentId}","href":"/api-reference/paiements/get-rental-payment"},{"title":"Enregistrer un paiement","deprecated":null,"version":null,"sidebarTitle":"Enregistrer un paiement","openapi":"/openapi.json post /rentals/{rentalId}/payments","href":"/api-reference/paiements/create-rental-payment"},{"title":"Supprimer un paiement saisi par erreur","deprecated":null,"version":null,"sidebarTitle":"Supprimer un paiement saisi par erreur","openapi":"/openapi.json delete /rentals/{rentalId}/payments/{paymentId}","href":"/api-reference/paiements/delete-rental-payment"},{"title":"Lister les factures et avoirs d’une location","deprecated":null,"version":null,"sidebarTitle":"Lister les factures et avoirs d’une location","openapi":"/openapi.json get /rentals/{rentalId}/invoices","href":"/api-reference/paiements/list-rental-invoices"}]},{"group":"Événements","pages":[{"title":"Suivre les changements des locations","deprecated":null,"version":null,"sidebarTitle":"Suivre les changements des locations","openapi":"/openapi.json get /events","href":"/api-reference/evenements/list-events"}]},{"group":"Clients","pages":[{"title":"Lister les clients","deprecated":null,"version":null,"sidebarTitle":"Lister les clients","openapi":"/openapi.json get /customers","href":"/api-reference/clients/list-customers"},{"title":"Lire un client","deprecated":null,"version":null,"sidebarTitle":"Lire un client","openapi":"/openapi.json get /customers/{customerId}","href":"/api-reference/clients/get-customer"},{"title":"Créer un client","deprecated":null,"version":null,"sidebarTitle":"Créer un client","openapi":"/openapi.json post /customers","href":"/api-reference/clients/create-customer"},{"title":"Modifier un client","deprecated":null,"version":null,"sidebarTitle":"Modifier un client","openapi":"/openapi.json patch /customers/{customerId}","href":"/api-reference/clients/update-customer"},{"title":"Supprimer un client","deprecated":null,"version":null,"sidebarTitle":"Supprimer un client","openapi":"/openapi.json delete /customers/{customerId}","href":"/api-reference/clients/delete-customer"}]},{"group":"Flotte","pages":[{"title":"Lister les véhicules","deprecated":null,"version":null,"sidebarTitle":"Lister les véhicules","openapi":"/openapi.json get /vehicles","href":"/api-reference/flotte/list-vehicles"},{"title":"Lire un véhicule","deprecated":null,"version":null,"sidebarTitle":"Lire un véhicule","openapi":"/openapi.json get /vehicles/{vehicleId}","href":"/api-reference/flotte/get-vehicle"},{"title":"Créer un véhicule","deprecated":null,"version":null,"sidebarTitle":"Créer un véhicule","openapi":"/openapi.json post /vehicles","href":"/api-reference/flotte/create-vehicle"},{"title":"Modifier un véhicule","deprecated":null,"version":null,"sidebarTitle":"Modifier un véhicule","openapi":"/openapi.json patch /vehicles/{vehicleId}","href":"/api-reference/flotte/update-vehicle"},{"title":"Supprimer un véhicule","deprecated":null,"version":null,"sidebarTitle":"Supprimer un véhicule","openapi":"/openapi.json delete /vehicles/{vehicleId}","href":"/api-reference/flotte/delete-vehicle"},{"title":"Archiver un véhicule","deprecated":null,"version":null,"sidebarTitle":"Archiver un véhicule","openapi":"/openapi.json post /vehicles/{vehicleId}/archive","href":"/api-reference/flotte/archive-vehicle"},{"title":"Désarchiver un véhicule","deprecated":null,"version":null,"sidebarTitle":"Désarchiver un véhicule","openapi":"/openapi.json post /vehicles/{vehicleId}/unarchive","href":"/api-reference/flotte/unarchive-vehicle"},{"title":"Lister les blocages de planning","deprecated":null,"version":null,"sidebarTitle":"Lister les blocages de planning","openapi":"/openapi.json get /vehicle-blocks","href":"/api-reference/flotte/list-vehicle-blocks"}]},{"group":"Catalogue","pages":[{"title":"Lister les franchises","deprecated":null,"version":null,"sidebarTitle":"Lister les franchises","openapi":"/openapi.json get /deductibles","href":"/api-reference/catalogue/list-deductibles"},{"title":"Lire une franchise","deprecated":null,"version":null,"sidebarTitle":"Lire une franchise","openapi":"/openapi.json get /deductibles/{deductibleId}","href":"/api-reference/catalogue/get-deductible"},{"title":"Créer une franchise","deprecated":null,"version":null,"sidebarTitle":"Créer une franchise","openapi":"/openapi.json post /deductibles","href":"/api-reference/catalogue/create-deductible"},{"title":"Modifier une franchise","deprecated":null,"version":null,"sidebarTitle":"Modifier une franchise","openapi":"/openapi.json patch /deductibles/{deductibleId}","href":"/api-reference/catalogue/update-deductible"},{"title":"Supprimer une franchise","deprecated":null,"version":null,"sidebarTitle":"Supprimer une franchise","openapi":"/openapi.json delete /deductibles/{deductibleId}","href":"/api-reference/catalogue/delete-deductible"},{"title":"Lister les cautions","deprecated":null,"version":null,"sidebarTitle":"Lister les cautions","openapi":"/openapi.json get /deposits","href":"/api-reference/catalogue/list-deposits"},{"title":"Lire une caution","deprecated":null,"version":null,"sidebarTitle":"Lire une caution","openapi":"/openapi.json get /deposits/{depositId}","href":"/api-reference/catalogue/get-deposit"},{"title":"Créer une caution","deprecated":null,"version":null,"sidebarTitle":"Créer une caution","openapi":"/openapi.json post /deposits","href":"/api-reference/catalogue/create-deposit"},{"title":"Modifier une caution","deprecated":null,"version":null,"sidebarTitle":"Modifier une caution","openapi":"/openapi.json patch /deposits/{depositId}","href":"/api-reference/catalogue/update-deposit"},{"title":"Supprimer une caution","deprecated":null,"version":null,"sidebarTitle":"Supprimer une caution","openapi":"/openapi.json delete /deposits/{depositId}","href":"/api-reference/catalogue/delete-deposit"},{"title":"Lister les forfaits kilométriques","deprecated":null,"version":null,"sidebarTitle":"Lister les forfaits kilométriques","openapi":"/openapi.json get /mileage-packages","href":"/api-reference/catalogue/list-mileage-packages"},{"title":"Lire un forfait kilométrique","deprecated":null,"version":null,"sidebarTitle":"Lire un forfait kilométrique","openapi":"/openapi.json get /mileage-packages/{mileagePackageId}","href":"/api-reference/catalogue/get-mileage-package"},{"title":"Créer un forfait kilométrique","deprecated":null,"version":null,"sidebarTitle":"Créer un forfait kilométrique","openapi":"/openapi.json post /mileage-packages","href":"/api-reference/catalogue/create-mileage-package"},{"title":"Modifier un forfait kilométrique","deprecated":null,"version":null,"sidebarTitle":"Modifier un forfait kilométrique","openapi":"/openapi.json patch /mileage-packages/{mileagePackageId}","href":"/api-reference/catalogue/update-mileage-package"},{"title":"Supprimer un forfait kilométrique","deprecated":null,"version":null,"sidebarTitle":"Supprimer un forfait kilométrique","openapi":"/openapi.json delete /mileage-packages/{mileagePackageId}","href":"/api-reference/catalogue/delete-mileage-package"},{"title":"Lister les options","deprecated":null,"version":null,"sidebarTitle":"Lister les options","openapi":"/openapi.json get /options","href":"/api-reference/catalogue/list-options"},{"title":"Lire une option","deprecated":null,"version":null,"sidebarTitle":"Lire une option","openapi":"/openapi.json get /options/{optionId}","href":"/api-reference/catalogue/get-option"},{"title":"Créer une option","deprecated":null,"version":null,"sidebarTitle":"Créer une option","openapi":"/openapi.json post /options","href":"/api-reference/catalogue/create-option"},{"title":"Modifier une option","deprecated":null,"version":null,"sidebarTitle":"Modifier une option","openapi":"/openapi.json patch /options/{optionId}","href":"/api-reference/catalogue/update-option"},{"title":"Supprimer une option","deprecated":null,"version":null,"sidebarTitle":"Supprimer une option","openapi":"/openapi.json delete /options/{optionId}","href":"/api-reference/catalogue/delete-option"},{"title":"Lister les lieux","deprecated":null,"version":null,"sidebarTitle":"Lister les lieux","openapi":"/openapi.json get /locations","href":"/api-reference/catalogue/list-locations"},{"title":"Lister les catégories tarifaires","deprecated":null,"version":null,"sidebarTitle":"Lister les catégories tarifaires","openapi":"/openapi.json get /categories","href":"/api-reference/catalogue/list-categories"},{"title":"Lire une catégorie tarifaire","deprecated":null,"version":null,"sidebarTitle":"Lire une catégorie tarifaire","openapi":"/openapi.json get /categories/{categoryId}","href":"/api-reference/catalogue/get-category"},{"title":"Créer une catégorie tarifaire","deprecated":null,"version":null,"sidebarTitle":"Créer une catégorie tarifaire","openapi":"/openapi.json post /categories","href":"/api-reference/catalogue/create-category"},{"title":"Modifier une catégorie tarifaire","deprecated":null,"version":null,"sidebarTitle":"Modifier une catégorie tarifaire","openapi":"/openapi.json patch /categories/{categoryId}","href":"/api-reference/catalogue/update-category"},{"title":"Supprimer une catégorie tarifaire","deprecated":null,"version":null,"sidebarTitle":"Supprimer une catégorie tarifaire","openapi":"/openapi.json delete /categories/{categoryId}","href":"/api-reference/catalogue/delete-category"}]},{"group":"Tarification","pages":[{"title":"Lister les saisons","deprecated":null,"version":null,"sidebarTitle":"Lister les saisons","openapi":"/openapi.json get /seasons","href":"/api-reference/tarification/list-seasons"},{"title":"Lire une saison","deprecated":null,"version":null,"sidebarTitle":"Lire une saison","openapi":"/openapi.json get /seasons/{slug}","href":"/api-reference/tarification/get-season"},{"title":"Modifier une saison","deprecated":null,"version":null,"sidebarTitle":"Modifier une saison","openapi":"/openapi.json patch /seasons/{slug}","href":"/api-reference/tarification/update-season"},{"title":"Lire le calendrier des saisons","deprecated":null,"version":null,"sidebarTitle":"Lire le calendrier des saisons","openapi":"/openapi.json get /season-calendar","href":"/api-reference/tarification/list-season-calendar-months"},{"title":"Lire un mois du calendrier des saisons","deprecated":null,"version":null,"sidebarTitle":"Lire un mois du calendrier des saisons","openapi":"/openapi.json get /season-calendar/{month}","href":"/api-reference/tarification/get-season-calendar-month"},{"title":"Remplacer un mois du calendrier des saisons","deprecated":null,"version":null,"sidebarTitle":"Remplacer un mois du calendrier des saisons","openapi":"/openapi.json put /season-calendar/{month}","href":"/api-reference/tarification/replace-season-calendar-month"},{"title":"Lister les remises de durée","deprecated":null,"version":null,"sidebarTitle":"Lister les remises de durée","openapi":"/openapi.json get /duration-discounts","href":"/api-reference/tarification/list-duration-discounts"},{"title":"Lire une remise de durée","deprecated":null,"version":null,"sidebarTitle":"Lire une remise de durée","openapi":"/openapi.json get /duration-discounts/{durationDiscountId}","href":"/api-reference/tarification/get-duration-discount"},{"title":"Créer une remise de durée","deprecated":null,"version":null,"sidebarTitle":"Créer une remise de durée","openapi":"/openapi.json post /duration-discounts","href":"/api-reference/tarification/create-duration-discount"},{"title":"Modifier une remise de durée","deprecated":null,"version":null,"sidebarTitle":"Modifier une remise de durée","openapi":"/openapi.json patch /duration-discounts/{durationDiscountId}","href":"/api-reference/tarification/update-duration-discount"},{"title":"Supprimer une remise de durée","deprecated":null,"version":null,"sidebarTitle":"Supprimer une remise de durée","openapi":"/openapi.json delete /duration-discounts/{durationDiscountId}","href":"/api-reference/tarification/delete-duration-discount"},{"title":"Lister les paliers de délai de réservation","deprecated":null,"version":null,"sidebarTitle":"Lister les paliers de délai de réservation","openapi":"/openapi.json get /lead-time-tiers","href":"/api-reference/tarification/list-lead-time-tiers"},{"title":"Lire un palier de délai de réservation","deprecated":null,"version":null,"sidebarTitle":"Lire un palier de délai de réservation","openapi":"/openapi.json get /lead-time-tiers/{leadTimeTierId}","href":"/api-reference/tarification/get-lead-time-tier"},{"title":"Modifier un palier de délai de réservation","deprecated":null,"version":null,"sidebarTitle":"Modifier un palier de délai de réservation","openapi":"/openapi.json patch /lead-time-tiers/{leadTimeTierId}","href":"/api-reference/tarification/update-lead-time-tier"},{"title":"Lire les réglages tarifaires","deprecated":null,"version":null,"sidebarTitle":"Lire les réglages tarifaires","openapi":"/openapi.json get /pricing-settings","href":"/api-reference/tarification/get-pricing-settings"}]},{"group":"Entretien","pages":[{"title":"Lister les échéances d’entretien d’un véhicule","deprecated":null,"version":null,"sidebarTitle":"Lister les échéances d’entretien d’un véhicule","openapi":"/openapi.json get /vehicles/{vehicleId}/maintenance-alerts","href":"/api-reference/entretien/list-vehicle-maintenance-alerts"},{"title":"Lister les entretiens","deprecated":null,"version":null,"sidebarTitle":"Lister les entretiens","openapi":"/openapi.json get /maintenance-records","href":"/api-reference/entretien/list-maintenance-records"},{"title":"Enregistrer un entretien","deprecated":null,"version":null,"sidebarTitle":"Enregistrer un entretien","openapi":"/openapi.json post /maintenance-records","href":"/api-reference/entretien/create-maintenance-record"},{"title":"Lire un entretien","deprecated":null,"version":null,"sidebarTitle":"Lire un entretien","openapi":"/openapi.json get /maintenance-records/{maintenanceRecordId}","href":"/api-reference/entretien/get-maintenance-record"},{"title":"Corriger un entretien","deprecated":null,"version":null,"sidebarTitle":"Corriger un entretien","openapi":"/openapi.json patch /maintenance-records/{maintenanceRecordId}","href":"/api-reference/entretien/update-maintenance-record"},{"title":"Supprimer un entretien","deprecated":null,"version":null,"sidebarTitle":"Supprimer un entretien","openapi":"/openapi.json delete /maintenance-records/{maintenanceRecordId}","href":"/api-reference/entretien/delete-maintenance-record"},{"title":"Lister le catalogue des opérations d’entretien","deprecated":null,"version":null,"sidebarTitle":"Lister le catalogue des opérations d’entretien","openapi":"/openapi.json get /maintenance-operations","href":"/api-reference/entretien/list-maintenance-operations"}]}]}]}]},"title":"Lire un devis - API Lexio","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}