Enregistrer des photos d’état des lieux téléversées
Accès : rentals.operate
Étape 3 sur 3 : enregistre, tout ou rien, les fichiers envoyés par PUT, désignés par uploadId ; data suit l’ordre de items.
Contrôles : chaque fichier est vérifié avant toute écriture (reçu, taille, format réel). Un élément refusé fait refuser le lot en 422 UPLOAD_INVALID, un errors[] par élément : upload_incomplete (refaites le PUT), upload_expired (préparez un nouveau téléversement), too_small, too_big, invalid_format, upload_conflict (déjà enregistré autrement), duplicate. uploadId inconnu ou retiré depuis → 422 REFERENCE_NOT_FOUND.
Rejeu : l’identité est uploadId, sans Idempotency-Key ; le même lot renvoie les mêmes photos.
Compteur : la photo DASHBOARD remplace celle de sa phase (effects.replacedPhotoIds). Les photos DEPARTURE envoyées avant le départ figurent dans le contrat de départ.
POST
/
rentals
/
{rentalId}
/
photos
Enregistrer des photos d’état des lieux téléversées
Clé unique de l’opération, réutilisée à chaque nouvel essai : un rejeu avec la même clé et le même corps renvoie la réponse initiale sans rien réécrire. Voir Idempotence.
{"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/depart-et-retour/register-rental-photos","slug":"/api-reference/depart-et-retour/register-rental-photos","pageMetadata":{"title":"Enregistrer des photos d’état des lieux téléversées","description":"**Accès** : `rentals.operate`\n\nÉtape 3 sur 3 : enregistre, tout ou rien, les fichiers envoyés par `PUT`, désignés par `uploadId` ; `data` suit l’ordre de `items`.\n\n**Contrôles** : chaque fichier est vérifié avant toute écriture (reçu, taille, format réel). Un élément refusé fait refuser le lot en 422 `UPLOAD_INVALID`, un `errors[]` par élément : `upload_incomplete` (refaites le `PUT`), `upload_expired` (préparez un nouveau téléversement), `too_small`, `too_big`, `invalid_format`, `upload_conflict` (déjà enregistré autrement), `duplicate`. `uploadId` inconnu ou retiré depuis → 422 `REFERENCE_NOT_FOUND`.\n\n**Rejeu** : l’identité est `uploadId`, sans `Idempotency-Key` ; le même lot renvoie les mêmes photos.\n\n**Compteur** : la photo `DASHBOARD` remplace celle de sa phase (`effects.replacedPhotoIds`). Les photos `DEPARTURE` envoyées avant le départ figurent dans le contrat de départ.","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","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: \"rentals.operate\"\n })]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Étape 3 sur 3 : enregistre, tout ou rien, les fichiers envoyés par \", _jsx(_components.code, {\n children: \"PUT\"\n }), \", désignés par \", _jsx(_components.code, {\n children: \"uploadId\"\n }), \" ; \", _jsx(_components.code, {\n children: \"data\"\n }), \" suit l’ordre de \", _jsx(_components.code, {\n children: \"items\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Contrôles\"\n }), \" : chaque fichier est vérifié avant toute écriture (reçu, taille, format réel). Un élément refusé fait refuser le lot en 422 \", _jsx(_components.code, {\n children: \"UPLOAD_INVALID\"\n }), \", un \", _jsx(_components.code, {\n children: \"errors[]\"\n }), \" par élément : \", _jsx(_components.code, {\n children: \"upload_incomplete\"\n }), \" (refaites le \", _jsx(_components.code, {\n children: \"PUT\"\n }), \"), \", _jsx(_components.code, {\n children: \"upload_expired\"\n }), \" (préparez un nouveau téléversement), \", _jsx(_components.code, {\n children: \"too_small\"\n }), \", \", _jsx(_components.code, {\n children: \"too_big\"\n }), \", \", _jsx(_components.code, {\n children: \"invalid_format\"\n }), \", \", _jsx(_components.code, {\n children: \"upload_conflict\"\n }), \" (déjà enregistré autrement), \", _jsx(_components.code, {\n children: \"duplicate\"\n }), \". \", _jsx(_components.code, {\n children: \"uploadId\"\n }), \" inconnu ou retiré depuis → 422 \", _jsx(_components.code, {\n children: \"REFERENCE_NOT_FOUND\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Rejeu\"\n }), \" : l’identité est \", _jsx(_components.code, {\n children: \"uploadId\"\n }), \", sans \", _jsx(_components.code, {\n children: \"Idempotency-Key\"\n }), \" ; le même lot renvoie les mêmes photos.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Compteur\"\n }), \" : la photo \", _jsx(_components.code, {\n children: \"DASHBOARD\"\n }), \" remplace celle de sa phase (\", _jsx(_components.code, {\n children: \"effects.replacedPhotoIds\"\n }), \"). Les photos \", _jsx(_components.code, {\n children: \"DEPARTURE\"\n }), \" envoyées avant le départ figurent dans le contrat de départ.\"]\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":"Enregistrer des photos d’état des lieux téléversées","description":"**Accès** : `rentals.operate`\n\nÉtape 3 sur 3 : enregistre, tout ou rien, les fichiers envoyés par `PUT`, désignés par `uploadId` ; `data` suit l’ordre de `items`.\n\n**Contrôles** : chaque fichier est vérifié avant toute écriture (reçu, taille, format réel). Un élément refusé fait refuser le lot en 422 `UPLOAD_INVALID`, un `errors[]` par élément : `upload_incomplete` (refaites le `PUT`), `upload_expired` (préparez un nouveau téléversement), `too_small`, `too_big`, `invalid_format`, `upload_conflict` (déjà enregistré autrement), `duplicate`. `uploadId` inconnu ou retiré depuis → 422 `REFERENCE_NOT_FOUND`.\n\n**Rejeu** : l’identité est `uploadId`, sans `Idempotency-Key` ; le même lot renvoie les mêmes photos.\n\n**Compteur** : la photo `DASHBOARD` remplace celle de sa phase (`effects.replacedPhotoIds`). Les photos `DEPARTURE` envoyées avant le départ figurent dans le contrat de départ.","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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"registerRentalPhotos","summary":"Enregistrer des photos d’état des lieux téléversées","description":"**Accès** : `rentals.operate`\n\nÉtape 3 sur 3 : enregistre, tout ou rien, les fichiers envoyés par `PUT`, désignés par `uploadId` ; `data` suit l’ordre de `items`.\n\n**Contrôles** : chaque fichier est vérifié avant toute écriture (reçu, taille, format réel). Un élément refusé fait refuser le lot en 422 `UPLOAD_INVALID`, un `errors[]` par élément : `upload_incomplete` (refaites le `PUT`), `upload_expired` (préparez un nouveau téléversement), `too_small`, `too_big`, `invalid_format`, `upload_conflict` (déjà enregistré autrement), `duplicate`. `uploadId` inconnu ou retiré depuis → 422 `REFERENCE_NOT_FOUND`.\n\n**Rejeu** : l’identité est `uploadId`, sans `Idempotency-Key` ; le même lot renvoie les mêmes photos.\n\n**Compteur** : la photo `DASHBOARD` remplace celle de sa phase (`effects.replacedPhotoIds`). Les photos `DEPARTURE` envoyées avant le départ figurent dans le contrat de départ.","tags":["Départ et retour"],"security":["ae91442b-70d6-4ad7-894c-c2df65f43230"],"x-required-scopes":["rentals.operate"],"parameters":["7edf507a-c36b-4e8f-8091-54be21fd16fe","bfa39b8a-4734-488d-9ade-d4f45679f2e5"],"requestBody":"f6d6ca07-db0f-463d-a894-d6e0c38447a5","responses":{"200":"b33469b6-9965-4a15-8b94-bcdb4d31d97f","400":"571609db-5057-4bc2-9129-77e29ddb8d68","401":"31614931-7b3d-4d0f-a0a6-b364ddf2ff25","403":"975e41a7-db12-48ff-819d-924559ed3997","404":"5fd4c96d-a086-4ba0-9ae5-324f56ec0eab","409":"e2f122c6-26f6-4ec0-8a47-72f26c6a3302","413":"bf555be0-07e1-4d36-8d2d-49d2d0c2581d","415":"b1c51e6e-bfff-4f20-9a64-ba311334aad9","422":"30b7c99f-3103-4007-9d37-97e1c07b1ced","429":"f47333d4-5d61-46f3-9c06-e1d3d27c7522","500":"316e2da5-7af0-4172-a03a-31d08a3ad30b","503":"cc21ca1a-6acf-427c-9dc2-345bc9402b23"},"x-mint":{"href":"/api-reference/depart-et-retour/register-rental-photos","metadata":{"title":"Enregistrer des photos d’état des lieux téléversées","sidebarTitle":"Enregistrer des photos d’état des lieux téléversées"}},"method":"post","type":"path","servers":["c3220b3b-f902-475f-902a-f94f20648ddf"],"path":"/rentals/{rentalId}/photos","baseUrlOptions":["https://api.lexio.rent/api/external/v1"],"title":"Enregistrer des photos d’état des lieux téléversées","codeSamples":[],"requestExampleLanguages":["bash","javascript","python","php"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.\\items.items.0.uploadId":"3f6b1c2a-7d8e-4f90-a1b2-c3d4e5f60718","body.\\items.items.0.takenAt":"2026-06-10T09:58:12+02:00","body.\\items.items.1.uploadId":"8a9b0c1d-2e3f-4a5b-9c6d-7e8f9a0b1c2d","body.\\items.items.1.takenAt":"2026-06-10T09:59:40+02:00","body.\\items.items.1.annotations.items.0.x":0.42,"body.\\items.items.1.annotations.items.0.y":0.61,"body.\\items.items.1.annotations.items.0.width":0.12,"body.\\items.items.1.annotations.items.0.height":0.08,"body.\\items.items.1.annotations.items.0.label.oneOf.0":"Rayure","body.\\items.items.1.annotations.items.0.comment.oneOf.0":"Jante avant gauche"}],"disableProxy":true},"dependencies":{"parameters":{"7edf507a-c36b-4e8f-8091-54be21fd16fe":{"in":"path","name":"rentalId","schema":{"examples":["9c2d7e4a-5b1f-4d3c-8a6e-0f1b2c3d4e5f"],"type":"string","format":"uuid","isRequired":true,"description":"Identifiant de la location.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"required":true,"description":"Identifiant de la location."},"bfa39b8a-4734-488d-9ade-d4f45679f2e5":{"name":"Idempotency-Key","in":"header","required":false,"example":"8b3e1d2c-4a5f-4c6b-9e7d-1f2a3b4c5d6e","description":"Clé unique de l’opération, réutilisée à chaque nouvel essai : un rejeu avec la même clé et le même corps renvoie la réponse initiale sans rien réécrire. Voir [Idempotence](https://docs.lexio.rent/idempotence).","schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x20-\\x7E]+$","examples":["8b3e1d2c-4a5f-4c6b-9e7d-1f2a3b4c5d6e"],"isRequired":false,"description":"Clé unique de l’opération, réutilisée à chaque nouvel essai : un rejeu avec la même clé et le même corps renvoie la réponse initiale sans rien réécrire. Voir [Idempotence](https://docs.lexio.rent/idempotence).","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"example":{"items":[{"uploadId":"3f6b1c2a-7d8e-4f90-a1b2-c3d4e5f60718","takenAt":"2026-06-10T09:58:12+02:00"},{"uploadId":"8a9b0c1d-2e3f-4a5b-9c6d-7e8f9a0b1c2d","takenAt":"2026-06-10T09:59:40+02:00","annotations":[{"x":0.42,"y":0.61,"width":0.12,"height":0.08,"label":"Rayure","comment":"Jante avant gauche"}]}]},"schema":{"type":"object","properties":{"items":{"description":"Fichiers à enregistrer, 50 au plus, chacun une fois ; tout ou rien.","minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"uploadId":{"examples":["7c9e6679-7425-40de-944b-e07fc1f90ae7"],"description":"Identifiant renvoyé par photo-uploads.","type":"string","format":"uuid","isRequired":true,"uniqueKey":"\\items.items.[INDEX].uploadId","typeLabel":"string\u003cuuid>"},"takenAt":{"description":"Instant de prise de vue, RFC 3339 avec décalage (sans → 400 offset_required). Défaut : instant de l’enregistrement. Borné à [création de la location ; maintenant + 5 min].","examples":["2026-11-10T10:00:00+01:00"],"type":"string","uniqueKey":"\\items.items.[INDEX].takenAt","typeLabel":"string"},"annotations":{"description":"Zones signalées sur la photo ; rien n’est borné ni tronqué en silence.","maxItems":50,"type":"array","items":{"type":"object","properties":{"x":{"description":"Bord gauche, fraction de la largeur.","type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].annotations.items.[INDEX].x","typeLabel":"number"},"y":{"description":"Bord haut, fraction de la hauteur.","type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].annotations.items.[INDEX].y","typeLabel":"number"},"width":{"description":"Largeur, fraction de la largeur.","type":"number","exclusiveMinimum":0,"maximum":1,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].annotations.items.[INDEX].width","typeLabel":"number"},"height":{"description":"Hauteur, fraction de la hauteur.","type":"number","exclusiveMinimum":0,"maximum":1,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].annotations.items.[INDEX].height","typeLabel":"number"},"label":{"oneOf":[{"type":"string","description":"Classification saisie (ex. « Rayure »), non contractuelle.","maxLength":50,"minLength":1,"uniqueKey":"\\items.items.[INDEX].annotations.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","description":"Classification saisie (ex. « Rayure »), non contractuelle.","uniqueKey":"\\items.items.[INDEX].annotations.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].annotations.items.[INDEX].label","typeLabel":"string | null"},"comment":{"oneOf":[{"type":"string","description":"Commentaire libre ; null si absent.","maxLength":200,"minLength":1,"uniqueKey":"\\items.items.[INDEX].annotations.items.[INDEX].comment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Commentaire libre ; null si absent.","uniqueKey":"\\items.items.[INDEX].annotations.items.[INDEX].comment.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].annotations.items.[INDEX].comment","typeLabel":"string | null"}},"required":["x","y","width","height"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].annotations.items.[INDEX]","typeLabel":"object"},"uniqueKey":"\\items.items.[INDEX].annotations","typeLabel":"object[]"}},"required":["uploadId"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"}},"required":["items"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"items":[{"uploadId":"3f6b1c2a-7d8e-4f90-a1b2-c3d4e5f60718","takenAt":"2026-06-10T09:58:12+02:00"},{"uploadId":"8a9b0c1d-2e3f-4a5b-9c6d-7e8f9a0b1c2d","takenAt":"2026-06-10T09:59:40+02:00","annotations":[{"x":0.42,"y":0.61,"width":0.12,"height":0.08,"label":"Rayure","comment":"Jante avant gauche"}]}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"b33469b6-9965-4a15-8b94-bcdb4d31d97f":{"description":"Enregistrer des photos d’état des lieux téléversées","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}},"Idempotent-Replayed":{"description":"`true` quand la réponse est le rejeu d’une requête déjà traitée avec la même `Idempotency-Key`.","schema":{"type":"string","enum":["true"]}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"maxItems":50,"type":"array","items":{"examples":[{"id":"b1c2d3e4-f5a6-4b7c-8d9e-0f1a2b3c4d5e","phase":"DEPARTURE","view":"FRONT_LEFT","takenAt":"2026-11-07T09:58:12+01:00","uploadId":"3f6b1c2a-7d8e-4f90-a1b2-c3d4e5f60718","annotations":[{"x":0.42,"y":0.61,"width":0.12,"height":0.08,"label":"Rayure","comment":"Jante avant gauche"}],"processingStatus":"READY","original":{"url":"https://storage.lexio.rent/p/b1c2d3e4?sig=1a7f","expiresAt":"2026-11-07T11:00:05+01:00"},"annotated":{"url":"https://storage.lexio.rent/p/b1c2d3e4-a?sig=5c2e","expiresAt":"2026-11-07T11:00:05+01:00"}}],"type":"object","properties":{"id":{"examples":["7c9e6679-7425-40de-944b-e07fc1f90ae7"],"description":"Identifiant de la photo.","type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"phase":{"description":"Moment de la prise : départ, retour, ou sinistre (`INCIDENT`).","type":"string","enum":["DEPARTURE","RETURN","INCIDENT"],"isRequired":true,"uniqueKey":"data.items.[INDEX].phase","typeLabel":"enum\u003cstring>"},"view":{"oneOf":[{"type":"string","description":"null = photo libre, hors vue du tour.","enum":["FRONT","FRONT_LEFT","REAR_LEFT","REAR","REAR_RIGHT","FRONT_RIGHT","WINDSHIELD","INTERIOR","TRUNK","DASHBOARD","TW_FRONT","TW_COCKPIT","TW_LEFT","TW_RIGHT","TW_REAR","TW_SADDLE","WHEEL_FRONT_LEFT","DOOR_FRONT_LEFT","DOOR_REAR_LEFT","WHEEL_REAR_LEFT","WHEEL_REAR_RIGHT","DOOR_REAR_RIGHT","DOOR_FRONT_RIGHT","WHEEL_FRONT_RIGHT","REAR_SEATS"],"isRequired":true,"uniqueKey":"data.items.[INDEX].view.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"null = photo libre, hors vue du tour.","isRequired":true,"uniqueKey":"data.items.[INDEX].view.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].view","typeLabel":"enum\u003cstring> | null"},"takenAt":{"examples":["2026-11-10T10:00:00+01:00"],"description":"Instant de prise de vue (`takenAt` envoyé à l’enregistrement, sinon instant de l’enregistrement), décalage de l’agence ; sert à l’horodatage incrusté.","type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.items.[INDEX].takenAt","typeLabel":"string\u003cdate-time>"},"uploadId":{"oneOf":[{"type":"string","description":"Téléversement d’origine ; null pour une photo déposée depuis Lexio.","format":"uuid","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","isRequired":true,"uniqueKey":"data.items.[INDEX].uploadId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Téléversement d’origine ; null pour une photo déposée depuis Lexio.","isRequired":true,"uniqueKey":"data.items.[INDEX].uploadId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].uploadId","typeLabel":"string\u003cuuid> | null"},"annotations":{"description":"Zones signalées sur la photo, telles qu’enregistrées après bornage à l’image.","maxItems":50,"type":"array","items":{"type":"object","properties":{"x":{"description":"Bord gauche, fraction de la largeur.","type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].annotations.items.[INDEX].x","typeLabel":"number"},"y":{"description":"Bord haut, fraction de la hauteur.","type":"number","minimum":0,"maximum":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].annotations.items.[INDEX].y","typeLabel":"number"},"width":{"description":"Largeur, fraction de la largeur.","type":"number","exclusiveMinimum":0,"maximum":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].annotations.items.[INDEX].width","typeLabel":"number"},"height":{"description":"Hauteur, fraction de la hauteur.","type":"number","exclusiveMinimum":0,"maximum":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].annotations.items.[INDEX].height","typeLabel":"number"},"label":{"oneOf":[{"type":"string","description":"Classification saisie (ex. « Rayure »), non contractuelle.","maxLength":50,"minLength":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].annotations.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","description":"Classification saisie (ex. « Rayure »), non contractuelle.","isRequired":true,"uniqueKey":"data.items.[INDEX].annotations.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].annotations.items.[INDEX].label","typeLabel":"string | null"},"comment":{"oneOf":[{"type":"string","description":"Commentaire libre ; null si absent.","maxLength":200,"minLength":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].annotations.items.[INDEX].comment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Commentaire libre ; null si absent.","isRequired":true,"uniqueKey":"data.items.[INDEX].annotations.items.[INDEX].comment.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].annotations.items.[INDEX].comment","typeLabel":"string | null"}},"required":["x","y","width","height","label","comment"],"uniqueKey":"data.items.[INDEX].annotations.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.items.[INDEX].annotations","typeLabel":"object[]"},"processingStatus":{"description":"PENDING : horodatage, conversion HEIC ou image annotée en cours ; READY : terminé. Interroger avec un délai croissant et un plafond de quelques minutes : une photo dont l’image annotée n’a pas pu être produite peut rester PENDING.","type":"string","enum":["PENDING","READY"],"isRequired":true,"uniqueKey":"data.items.[INDEX].processingStatus","typeLabel":"enum\u003cstring>"},"original":{"description":"Original (preuve), URL signée valable une heure. Son contenu peut encore changer tant que processingStatus vaut PENDING.","examples":[{"url":"https://storage.example.com/contrats/LOC-2026.11-0042.pdf?signature=9b2e41c7","expiresAt":"2026-11-10T11:12:00+01:00"}],"type":"object","properties":{"url":{"description":"Adresse signée et temporaire du fichier : ne la conservez pas, relisez la ressource pour en obtenir une nouvelle.","type":"string","format":"uri","isRequired":true,"uniqueKey":"data.items.[INDEX].original.url","typeLabel":"string\u003curi>"},"expiresAt":{"examples":["2026-11-10T10:00:00+01:00"],"description":"Instant où l’adresse cesse d’être valable.","type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.items.[INDEX].original.expiresAt","typeLabel":"string\u003cdate-time>"}},"required":["url","expiresAt"],"isRequired":true,"uniqueKey":"data.items.[INDEX].original","typeLabel":"object"},"annotated":{"oneOf":[{"type":"object","description":"Image aux annotations incrustées, URL signée valable une heure ; null si `annotations` est vide ou tant que `processingStatus` vaut `PENDING`.","required":["url","expiresAt"],"example":{"url":"https://storage.example.com/contrats/LOC-2026.11-0042.pdf?signature=9b2e41c7","expiresAt":"2026-11-10T11:12:00+01:00"},"properties":{"url":{"description":"Adresse signée et temporaire du fichier : ne la conservez pas, relisez la ressource pour en obtenir une nouvelle.","type":"string","format":"uri","isRequired":true,"uniqueKey":"data.items.[INDEX].annotated.oneOf.0.url","typeLabel":"string\u003curi>"},"expiresAt":{"examples":["2026-11-10T10:00:00+01:00"],"description":"Instant où l’adresse cesse d’être valable.","type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.items.[INDEX].annotated.oneOf.0.expiresAt","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].annotated.oneOf.0","typeLabel":"object"},{"type":"null","description":"Image aux annotations incrustées, URL signée valable une heure ; null si `annotations` est vide ou tant que `processingStatus` vaut `PENDING`.","isRequired":true,"uniqueKey":"data.items.[INDEX].annotated.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].annotated","typeLabel":"object | null"}},"required":["id","phase","view","takenAt","uploadId","annotations","processingStatus","original","annotated"],"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data","typeLabel":"object[]"},"effects":{"type":"object","properties":{"replacedPhotoIds":{"description":"Photos du compteur remplacées, supprimées avec leurs fichiers : au plus une par phase, davantage si l’agence en avait déposé plusieurs pour une même phase depuis Lexio.","maxItems":50,"type":"array","items":{"examples":["7c9e6679-7425-40de-944b-e07fc1f90ae7"],"type":"string","format":"uuid","uniqueKey":"effects.replacedPhotoIds.items.[INDEX]","typeLabel":"string\u003cuuid>"},"isRequired":true,"uniqueKey":"effects.replacedPhotoIds","typeLabel":"string\u003cuuid>[]"}},"required":["replacedPhotoIds"],"isRequired":true,"uniqueKey":"effects","typeLabel":"object"}},"required":["data","effects"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":[{"id":"b1c2d3e4-f5a6-4b7c-8d9e-0f1a2b3c4d5e","phase":"DEPARTURE","view":"FRONT_LEFT","takenAt":"2026-11-07T09:58:12+01:00","uploadId":"3f6b1c2a-7d8e-4f90-a1b2-c3d4e5f60718","annotations":[{"x":0.42,"y":0.61,"width":0.12,"height":0.08,"label":"Rayure","comment":"Jante avant gauche"}],"processingStatus":"READY","original":{"url":"https://storage.lexio.rent/p/b1c2d3e4?sig=1a7f","expiresAt":"2026-11-07T11:00:05+01:00"},"annotated":{"url":"https://storage.lexio.rent/p/b1c2d3e4-a?sig=5c2e","expiresAt":"2026-11-07T11:00:05+01:00"}}],"effects":{"replacedPhotoIds":["7c9e6679-7425-40de-944b-e07fc1f90ae7"]}}}},"exampleType":"generated"}},"exampleType":"generated"},"571609db-5057-4bc2-9129-77e29ddb8d68":{"description":"`MALFORMED_REQUEST`, `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":{"oneOf":[{"type":"object","required":["type","title","status","code","detail","instance","requestId"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/malformed-request","isRequired":true,"uniqueKey":"oneOf.0.type","typeLabel":"string"},"title":{"type":"string","const":"Corps de requête illisible","isRequired":true,"uniqueKey":"oneOf.0.title","typeLabel":"string"},"status":{"type":"number","const":400,"isRequired":true,"uniqueKey":"oneOf.0.status","typeLabel":"number"},"code":{"type":"string","const":"MALFORMED_REQUEST","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","errors"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/validation-failed","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"string"},"title":{"type":"string","const":"Requête invalide","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"status":{"type":"number","const":400,"isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"number"},"code":{"type":"string","const":"VALIDATION_FAILED","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"},"errors":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"pointer":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.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":"oneOf.1.errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.errors.items.[INDEX].detail","typeLabel":"string"}},"required":["pointer","code","detail"],"uniqueKey":"oneOf.1.errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.1.errors","typeLabel":"object[]"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/malformed-request","title":"Corps de requête illisible","status":400,"code":"MALFORMED_REQUEST","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"31614931-7b3d-4d0f-a0a6-b364ddf2ff25":{"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"},"975e41a7-db12-48ff-819d-924559ed3997":{"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"},"5fd4c96d-a086-4ba0-9ae5-324f56ec0eab":{"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"},"e2f122c6-26f6-4ec0-8a47-72f26c6a3302":{"description":"`IDEMPOTENCY_IN_FLIGHT`, `RENTAL_BUSY`, `RENTAL_CHANGED`, `RENTAL_STATUS_NOT_ALLOWED`","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":{"oneOf":[{"type":"object","required":["type","title","status","code","detail","instance","requestId"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/idempotency-in-flight","isRequired":true,"uniqueKey":"oneOf.0.type","typeLabel":"string"},"title":{"type":"string","const":"Requête identique en cours","isRequired":true,"uniqueKey":"oneOf.0.title","typeLabel":"string"},"status":{"type":"number","const":409,"isRequired":true,"uniqueKey":"oneOf.0.status","typeLabel":"number"},"code":{"type":"string","const":"IDEMPOTENCY_IN_FLIGHT","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/rental-busy","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"string"},"title":{"type":"string","const":"Location occupée","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"status":{"type":"number","const":409,"isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"number"},"code":{"type":"string","const":"RENTAL_BUSY","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/rental-changed","isRequired":true,"uniqueKey":"oneOf.2.type","typeLabel":"string"},"title":{"type":"string","const":"Location modifiée entre-temps","isRequired":true,"uniqueKey":"oneOf.2.title","typeLabel":"string"},"status":{"type":"number","const":409,"isRequired":true,"uniqueKey":"oneOf.2.status","typeLabel":"number"},"code":{"type":"string","const":"RENTAL_CHANGED","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","rentalStatus","allowedStatuses","action"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/rental-status-not-allowed","isRequired":true,"uniqueKey":"oneOf.3.type","typeLabel":"string"},"title":{"type":"string","const":"Statut de la location incompatible","isRequired":true,"uniqueKey":"oneOf.3.title","typeLabel":"string"},"status":{"type":"number","const":409,"isRequired":true,"uniqueKey":"oneOf.3.status","typeLabel":"number"},"code":{"type":"string","const":"RENTAL_STATUS_NOT_ALLOWED","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"},"rentalStatus":{"type":"string","enum":["RESERVED","PENDING_APPROVAL","IN_PROGRESS","COMPLETED","CANCELLED"],"isRequired":true,"uniqueKey":"oneOf.3.rentalStatus","typeLabel":"enum\u003cstring>"},"allowedStatuses":{"maxItems":10,"type":"array","items":{"type":"string","enum":["RESERVED","PENDING_APPROVAL","IN_PROGRESS","COMPLETED","CANCELLED"],"uniqueKey":"oneOf.3.allowedStatuses.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"oneOf.3.allowedStatuses","typeLabel":"enum\u003cstring>[]"},"action":{"type":"string","enum":["CANCEL","PICKUP","RETURN","RESCHEDULE","CHANGE_VEHICLE","CHANGE_COVERAGE","CHANGE_CUSTOMER","SET_OPTION_QUANTITY","REMOVE_OPTION","EDIT_NOTES","EDIT_LOCATIONS","DELETE","ADD_PAYMENT","REFUND","DELETE_PAYMENT","UPLOAD_PHOTO","DELETE_PHOTO"],"isRequired":true,"uniqueKey":"oneOf.3.action","typeLabel":"enum\u003cstring>"},"errors":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"pointer":{"type":"string","isRequired":true,"uniqueKey":"oneOf.3.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":"oneOf.3.errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.3.errors.items.[INDEX].detail","typeLabel":"string"}},"required":["pointer","code","detail"],"uniqueKey":"oneOf.3.errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.3.errors","typeLabel":"object[]"}},"uniqueKey":"oneOf.3","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/idempotency-in-flight","title":"Requête identique en cours","status":409,"code":"IDEMPOTENCY_IN_FLIGHT","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"bf555be0-07e1-4d36-8d2d-49d2d0c2581d":{"description":"`PAYLOAD_TOO_LARGE`","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/payload-too-large","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","const":"Corps trop volumineux","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","const":413,"isRequired":true,"uniqueKey":"status","typeLabel":"number"},"code":{"type":"string","const":"PAYLOAD_TOO_LARGE","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"},"maxBytes":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"maxBytes","typeLabel":"integer"}},"required":["type","title","status","code","detail","instance","requestId","maxBytes"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/payload-too-large","title":"Corps trop volumineux","status":413,"code":"PAYLOAD_TOO_LARGE","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>","maxBytes":2}}},"exampleType":"generated"}},"exampleType":"generated"},"b1c51e6e-bfff-4f20-9a64-ba311334aad9":{"description":"`UNSUPPORTED_MEDIA_TYPE`","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/unsupported-media-type","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","const":"Type de contenu non pris en charge","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","const":415,"isRequired":true,"uniqueKey":"status","typeLabel":"number"},"code":{"type":"string","const":"UNSUPPORTED_MEDIA_TYPE","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"},"accepted":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"accepted.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"accepted","typeLabel":"string[]"}},"required":["type","title","status","code","detail","instance","requestId","accepted"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/unsupported-media-type","title":"Type de contenu non pris en charge","status":415,"code":"UNSUPPORTED_MEDIA_TYPE","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>","accepted":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"30b7c99f-3103-4007-9d37-97e1c07b1ced":{"description":"`IDEMPOTENCY_KEY_REUSED`, `REFERENCE_NOT_FOUND`, `UPLOAD_INVALID`","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"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/idempotency-key-reused","isRequired":true,"uniqueKey":"oneOf.0.type","typeLabel":"string"},"title":{"type":"string","const":"Clé d’idempotence réutilisée","isRequired":true,"uniqueKey":"oneOf.0.title","typeLabel":"string"},"status":{"type":"number","const":422,"isRequired":true,"uniqueKey":"oneOf.0.status","typeLabel":"number"},"code":{"type":"string","const":"IDEMPOTENCY_KEY_REUSED","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","errors"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/reference-not-found","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"string"},"title":{"type":"string","const":"Référence introuvable","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"status":{"type":"number","const":422,"isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"number"},"code":{"type":"string","const":"REFERENCE_NOT_FOUND","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"},"errors":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"pointer":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.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":"oneOf.1.errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.errors.items.[INDEX].detail","typeLabel":"string"}},"required":["pointer","code","detail"],"uniqueKey":"oneOf.1.errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.1.errors","typeLabel":"object[]"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","required":["type","title","status","code","detail","instance","requestId","errors"],"properties":{"type":{"type":"string","const":"https://api.lexio.rent/errors/upload-invalid","isRequired":true,"uniqueKey":"oneOf.2.type","typeLabel":"string"},"title":{"type":"string","const":"Téléversement invalide","isRequired":true,"uniqueKey":"oneOf.2.title","typeLabel":"string"},"status":{"type":"number","const":422,"isRequired":true,"uniqueKey":"oneOf.2.status","typeLabel":"number"},"code":{"type":"string","const":"UPLOAD_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"},"errors":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"pointer":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.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":"oneOf.2.errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.errors.items.[INDEX].detail","typeLabel":"string"}},"required":["pointer","code","detail"],"uniqueKey":"oneOf.2.errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.2.errors","typeLabel":"object[]"}},"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/idempotency-key-reused","title":"Clé d’idempotence réutilisée","status":422,"code":"IDEMPOTENCY_KEY_REUSED","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"f47333d4-5d61-46f3-9c06-e1d3d27c7522":{"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"},"316e2da5-7af0-4172-a03a-31d08a3ad30b":{"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"},"cc21ca1a-6acf-427c-9dc2-345bc9402b23":{"description":"`SERVICE_UNAVAILABLE`","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/service-unavailable","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","const":"Service momentanément indisponible","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","const":503,"isRequired":true,"uniqueKey":"status","typeLabel":"number"},"code":{"type":"string","const":"SERVICE_UNAVAILABLE","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"},"dependency":{"type":"string","enum":["PAYMENT_PROVIDER","FILE_STORAGE","ACCOUNTING","EMAIL"],"isRequired":true,"uniqueKey":"dependency","typeLabel":"enum\u003cstring>"}},"required":["type","title","status","code","detail","instance","requestId","dependency"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.lexio.rent/errors/service-unavailable","title":"Service momentanément indisponible","status":503,"code":"SERVICE_UNAVAILABLE","detail":"\u003cstring>","instance":"\u003cstring>","requestId":"\u003cstring>","dependency":"PAYMENT_PROVIDER"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"ae91442b-70d6-4ad7-894c-c2df65f43230":{"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":"Enregistrer des photos d’état des lieux téléversées - API Lexio","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"fr":{"href":"/api-reference/depart-et-retour/register-rental-photos","matchLevel":0}}},"lastModified":"2026-10-29T01:01:12.264Z","originalFileLocation":"api-reference/depart-et-retour/register-rental-photos.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 : rentals.operate Étape 3 sur 3 : enregistre, tout ou rien, les fichiers envoyés par PUT, désignés par uploadId ; data suit l’ordre de items. Contrôles : chaque fichier est vérifié avant toute écriture (reçu, taille, format réel). Un élément refusé fait refuser le lot en 422 UPLOAD_INVALID, un errors[] par élément : upload_incomplete (refaites le PUT), upload_expired (préparez un nouveau téléversement), too_small, too_big, invalid_format, upload_conflict (déjà enregistré autrement), duplicate. uploadId inconnu ou retiré depuis → 422 REFERENCE_NOT_FOUND. Rejeu : l’identité est uploadId, sans Idempotency-Key ; le même lot renvoie les mêmes photos. Compteur : la photo DASHBOARD remplace celle de sa phase (effects.replacedPhotoIds). Les photos DEPARTURE envoyées avant le départ figurent dans le contrat de départ.\">\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=\"Enregistrer des photos d’état des lieux téléversées - API Lexio\">\u003cmeta data-mint-head property=\"og:description\" content=\"Accès : rentals.operate Étape 3 sur 3 : enregistre, tout ou rien, les fichiers envoyés par PUT, désignés par uploadId ; data suit l’ordre de items. Contrôles : chaque fichier est vérifié avant toute écriture (reçu, taille, format réel). Un élément refusé fait refuser le lot en 422 UPLOAD_INVALID, un errors[] par élément : upload_incomplete (refaites le PUT), upload_expired (préparez un nouveau téléversement), too_small, too_big, invalid_format, upload_conflict (déjà enregistré autrement), duplicate. uploadId inconnu ou retiré depuis → 422 REFERENCE_NOT_FOUND. Rejeu : l’identité est uploadId, sans Idempotency-Key ; le même lot renvoie les mêmes photos. Compteur : la photo DASHBOARD remplace celle de sa phase (effects.replacedPhotoIds). Les photos DEPARTURE envoyées avant le départ figurent dans le contrat de départ.\">\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/depart-et-retour/register-rental-photos\">\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=D%C3%A9part+et+retour\u0026amp;title=Enregistrer+des+photos+d%E2%80%99%C3%A9tat+des+lieux+t%C3%A9l%C3%A9vers%C3%A9es\u0026amp;description=**Acc%C3%A8s**+%3A+%60rentals.operate%60%0A%0A%C3%89tape+3+sur+3+%3A+enregistre%2C+tout+ou+rien%2C+les+fichiers+envoy%C3%A9s+par+%60PUT%60%2C+d%C3%A9sign%C3%A9s+par+%60uploadId%60+%3B+%60data%60+suit+l%E2%80%99ordre+de+%60items\u0026amp;theme=7021b09e080d2874048b5ff2\u0026amp;signature=166d6cd18ffc95a72fc2649a841c8436a026ca39eb6ddc437751034c1b89c312\">\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=\"Enregistrer des photos d’état des lieux téléversées - API Lexio\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Accès : rentals.operate Étape 3 sur 3 : enregistre, tout ou rien, les fichiers envoyés par PUT, désignés par uploadId ; data suit l’ordre de items. Contrôles : chaque fichier est vérifié avant toute écriture (reçu, taille, format réel). Un élément refusé fait refuser le lot en 422 UPLOAD_INVALID, un errors[] par élément : upload_incomplete (refaites le PUT), upload_expired (préparez un nouveau téléversement), too_small, too_big, invalid_format, upload_conflict (déjà enregistré autrement), duplicate. uploadId inconnu ou retiré depuis → 422 REFERENCE_NOT_FOUND. Rejeu : l’identité est uploadId, sans Idempotency-Key ; le même lot renvoie les mêmes photos. Compteur : la photo DASHBOARD remplace celle de sa phase (effects.replacedPhotoIds). Les photos DEPARTURE envoyées avant le départ figurent dans le contrat de départ.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lexio.mintlify.app/_mintlify/api/og/v2?division=D%C3%A9part+et+retour\u0026amp;title=Enregistrer+des+photos+d%E2%80%99%C3%A9tat+des+lieux+t%C3%A9l%C3%A9vers%C3%A9es\u0026amp;description=**Acc%C3%A8s**+%3A+%60rentals.operate%60%0A%0A%C3%89tape+3+sur+3+%3A+enregistre%2C+tout+ou+rien%2C+les+fichiers+envoy%C3%A9s+par+%60PUT%60%2C+d%C3%A9sign%C3%A9s+par+%60uploadId%60+%3B+%60data%60+suit+l%E2%80%99ordre+de+%60items\u0026amp;theme=7021b09e080d2874048b5ff2\u0026amp;signature=166d6cd18ffc95a72fc2649a841c8436a026ca39eb6ddc437751034c1b89c312\">\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/depart-et-retour/register-rental-photos\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/depart-et-retour/register-rental-photos.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/depart-et-retour/register-rental-photos#webpage\",\"url\":\"https://docs.lexio.rent/api-reference/depart-et-retour/register-rental-photos\",\"name\":\"Enregistrer des photos d’état des lieux téléversées\",\"description\":\"Accès : rentals.operate Étape 3 sur 3 : enregistre, tout ou rien, les fichiers envoyés par PUT, désignés par uploadId ; data suit l’ordre de items. Contrôles : chaque fichier est vérifié avant toute écriture (reçu, taille, format réel). Un élément refusé fait refuser le lot en 422 UPLOAD_INVALID, un errors[] par élément : upload_incomplete (refaites le PUT), upload_expired (préparez un nouveau téléversement), too_small, too_big, invalid_format, upload_conflict (déjà enregistré autrement), duplicate. uploadId inconnu ou retiré depuis → 422 REFERENCE_NOT_FOUND. Rejeu : l’identité est uploadId, sans Idempotency-Key ; le même lot renvoie les mêmes photos. Compteur : la photo DASHBOARD remplace celle de sa phase (effects.replacedPhotoIds). Les photos DEPARTURE envoyées avant le départ figurent dans le contrat de départ.\",\"dateModified\":\"2026-10-29T01:01:12.264Z\",\"isPartOf\":{\"@id\":\"https://docs.lexio.rent#website\"},\"breadcrumb\":{\"@id\":\"https://docs.lexio.rent/api-reference/depart-et-retour/register-rental-photos#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.lexio.rent/api-reference/depart-et-retour/register-rental-photos#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Départ et retour\",\"item\":\"https://docs.lexio.rent/api-reference/depart-et-retour/pick-up-rental\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enregistrer des photos d’état des lieux téléversées\",\"item\":\"https://docs.lexio.rent/api-reference/depart-et-retour/register-rental-photos\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.lexio.rent/api-reference/depart-et-retour/register-rental-photos#apireference\",\"headline\":\"Enregistrer des photos d’état des lieux téléversées\",\"name\":\"Enregistrer des photos d’état des lieux téléversées\",\"description\":\"Accès : rentals.operate Étape 3 sur 3 : enregistre, tout ou rien, les fichiers envoyés par PUT, désignés par uploadId ; data suit l’ordre de items. Contrôles : chaque fichier est vérifié avant toute écriture (reçu, taille, format réel). Un élément refusé fait refuser le lot en 422 UPLOAD_INVALID, un errors[] par élément : upload_incomplete (refaites le PUT), upload_expired (préparez un nouveau téléversement), too_small, too_big, invalid_format, upload_conflict (déjà enregistré autrement), duplicate. uploadId inconnu ou retiré depuis → 422 REFERENCE_NOT_FOUND. Rejeu : l’identité est uploadId, sans Idempotency-Key ; le même lot renvoie les mêmes photos. Compteur : la photo DASHBOARD remplace celle de sa phase (effects.replacedPhotoIds). Les photos DEPARTURE envoyées avant le départ figurent dans le contrat de départ.\",\"url\":\"https://docs.lexio.rent/api-reference/depart-et-retour/register-rental-photos\",\"mainEntityOfPage\":{\"@id\":\"https://docs.lexio.rent/api-reference/depart-et-retour/register-rental-photos#webpage\"},\"dateModified\":\"2026-10-29T01:01:12.264Z\",\"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","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","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","description":"**Accès** : `rentals.operate`\n\nÉtape 1 sur 3 du dépôt de photos d’état des lieux, photo du compteur comprise (vue `DASHBOARD`). Pour chaque élément (phase, vue, format, taille exacte), la réponse donne, dans l’ordre de `items`, un `uploadId` et une URL signée.\n\n**Suite**\n1. Envoyez chaque fichier par `PUT` sur `url`, avec exactement les `headers` fournis, avant `expiresAt` (15 minutes).\n2. Enregistrez-les par [`POST /rentals/{rentalId}/photos`](https://docs.lexio.rent/api-reference/depart-et-retour/register-rental-photos) avant `registrationExpiresAt` (24 h).\n\n**Statuts admis** : `IN_PROGRESS` et `COMPLETED` ; `RESERVED` pour la seule phase `DEPARTURE`, avant le départ. Sinon 409 `RENTAL_STATUS_NOT_ALLOWED`.\n\n**Refus** : vue hors du tour du véhicule ou compteur en `INCIDENT` → 400 `not_applicable` ; deux photos du compteur de même phase → 400 `duplicate` ; signature impossible → 503 `SERVICE_UNAVAILABLE`.","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","description":"**Accès** : `rentals.read`\n\nListe les photos de départ, de retour et de sinistre d’une location, de la plus récente à la plus ancienne (`takenAt` décroissant, puis `id`) ; `phase` filtre. Les pièces jointes ajoutées dans Lexio ne sont jamais listées.\n\n- `original` et `annotated` sont des URL signées valables une heure : rappelez la liste ou [`GET …/photos/{photoId}`](https://docs.lexio.rent/api-reference/depart-et-retour/get-rental-photo) pour en obtenir de neuves.\n- Tant que `processingStatus` vaut `PENDING`, `original` peut encore changer et `annotated` vaut `null`.\n- Une URL impossible à signer fait échouer la requête : 503 `SERVICE_UNAVAILABLE`, à rejouer.\n\nUne clé partenaire ne lit que les locations de son `partnerCode` : toute autre répond 404.","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":"Enregistrer des photos d’état des lieux téléversées - 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"]}