{"openapi":"3.1.0","info":{"title":"API Arquos V2","version":"2.0.0-beta","description":"L’API REST d’Arquos. Chaque appel agit au nom du compte du jeton, avec ses droits, dans ses agences."},"servers":[{"url":"https://api.arquos.eu/api/v2"}],"security":[{"jeton":[]}],"components":{"securitySchemes":{"jeton":{"type":"http","scheme":"bearer","description":"Un jeton créé dans Arquos : menu du compte › Clés et jetons."}},"parameters":{"Agence":{"name":"X-Arquos-Agency","in":"header","required":false,"description":"L’identifiant de l’agence où agir. Absent : l’agence par défaut du compte. Une agence hors de sa portée est refusée (403).","schema":{"type":"string","format":"uuid"}}}},"paths":{"/me":{"get":{"tags":["Compte"],"summary":"Le compte du jeton et ses agences","description":"Qui parle, l’agence où il écrit (celle de X-Arquos-Agency, ou son agence par défaut) et les agences où il travaille.","operationId":"getMe","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Le nom du compte qui porte le jeton."},"email":{"type":["string","null"],"description":"Son adresse email."},"agency":{"type":["object","null"],"description":"L’agence où il agit : celle de l’en-tête X-Arquos-Agency, ou son agence par défaut.","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":"string","description":"Le nom de l’agence."}},"required":["id","name"],"additionalProperties":false},"agencies":{"type":"array","description":"Les agences où il travaille.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":"string","description":"Le nom de l’agence."}},"required":["id","name"],"additionalProperties":false}}},"required":["id","name","email","agency","agencies"],"additionalProperties":false},"example":{"id":"cf78d830-f797-45ad-be34-630aaa0005a9","name":"Claire Fauchon","email":"claire.fauchon@exemple.fr","agency":{"id":"99266440-c1e5-404c-9d6f-a7477b865896","name":"Nantes 5"},"agencies":[{"id":"99266440-c1e5-404c-9d6f-a7477b865896","name":"Nantes 5"}]}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/agencies":{"get":{"tags":["Compte"],"summary":"Les agences de la portée du jeton","description":"Chaque agence que le jeton peut lire, avec son organisation et, pour une agence reprise de la V1, son identifiant V1. Pour le compte de service de l’équipe Arquos, sans agence demandée : toutes les organisations clientes (0245) ; pour tout autre compte, les siennes.","operationId":"getAgencies","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/users":{"get":{"tags":["Compte"],"summary":"Les comptes des agences de la portée","description":"Chaque compte qui travaille dans une agence de la portée du jeton : son nom, son email, son poste, s’il est actif, s’il chiffre, et ses agences. Aucun mot de passe ni jeton.","operationId":"getUsers","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/equipment/{id}/identity":{"patch":{"tags":["Équipements"],"summary":"Corriger l’identité d’un équipement","description":"Son numéro, son numéro de série, son type et son sous-type, son emplacement, son contrat d’entretien et son numéro de contrat. Seuls les champs donnés changent ; une valeur vide efface. Par le même chemin que le téléphone. Les données techniques se corrigent par PATCH /equipment/{id}.","operationId":"patchEquipmentIdIdentity","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"Le numéro de l’équipement."},"serialNumber":{"type":"string","description":"Le numéro de série."},"type":{"type":"string","description":"Le type : ascenseur, monte_charge, monte_voiture, elevateur, porte_fermeture…"},"subtype":{"type":"string","description":"Le sous-type."},"location":{"type":"string","description":"Où il se trouve dans l’immeuble."},"maintenanceContract":{"type":"string","description":"parc ou hors_parc."},"contractNumber":{"type":"string","description":"Le numéro du contrat d’entretien."},"externalId":{"type":"string","description":"Son identifiant chez votre logiciel de maintenance ; vide l’efface."}}}}}}}},"/external/equipment":{"get":{"tags":["Logiciel de maintenance"],"summary":"Les équipements que votre logiciel n’a pas encore rattachés","description":"Les équipements sous contrat d’une agence, numérotés, sans identifiant externe. L’agence par son identifiant Arquos ou celui de votre logiciel (paramètre agency) ; sans lui, celle de X-Arquos-Agency.","operationId":"getExternalEquipment","parameters":[{"name":"agency","in":"query","required":false,"description":"L’agence : identifiant Arquos ou identifiant chez votre logiciel.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/external/equipment/data":{"get":{"tags":["Logiciel de maintenance"],"summary":"Un équipement et ses données, par son numéro","description":"L’équipement désigné par son numéro (ou votre identifiant), son immeuble, son contrat, son taux de connaissance, la plus petite cote de gaine relevée (cuvette, toit de cabine et paliers confondus), et ses données relevées par code. Une donnée jamais relevée est absente, jamais vide : de quoi décider s’il faut demander un relevé.","operationId":"getExternalEquipmentData","parameters":[{"name":"agency","in":"query","required":false,"description":"L’agence : identifiant Arquos ou identifiant chez votre logiciel.","schema":{"type":"string"}},{"name":"number","in":"query","required":false,"description":"Le numéro de l’équipement.","schema":{"type":"string"}},{"name":"externalId","in":"query","required":false,"description":"Ou son identifiant chez votre logiciel.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Logiciel de maintenance"],"summary":"Passer un équipement au parc, ou corriger ses données, par son numéro","description":"Le contrat (parc ou hors_parc) et des données techniques par code, vérifiées contre le catalogue : une seule refusée et rien n’est écrit. L’équipement n’est jamais créé ici : une demande de relevé le crée.","operationId":"patchExternalEquipmentData","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agency":{"type":"string","description":"L’agence : identifiant Arquos ou identifiant chez votre logiciel."},"equipmentNumber":{"type":"string","description":"Le numéro de l’équipement."},"equipmentExternalId":{"type":"string","description":"Ou son identifiant chez votre logiciel."},"maintenanceContract":{"type":"string","enum":["parc","hors_parc"],"description":"parc ou hors_parc."},"values":{"type":"object","additionalProperties":{"type":"string"},"description":"Les valeurs, par code de donnée technique ; vide efface."}}}}}}}},"/external/requests":{"post":{"tags":["Logiciel de maintenance"],"summary":"Demander un relevé sur un ou plusieurs équipements, depuis votre logiciel","description":"Chaque équipement se retrouve par votre identifiant, sinon par son numéro ; à défaut il se crée, sur l’immeuble de l’adresse. Le client se retrouve par son SIRET ou son numéro, sinon il se crée. Sans affaire désignée et sans état des lieux, une affaire naît avec un relevé par équipement. Les relevés sont assignés au releveur. Un équipement seul se décrit par les champs de la demande ; plusieurs, par equipmentList.","operationId":"postExternalRequests","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agency":{"type":"string","description":"L’agence : identifiant Arquos ou identifiant chez votre logiciel."},"surveyorEmail":{"type":"string","description":"L’adresse du releveur, un compte de l’agence."},"requesterEmail":{"type":"string","description":"L’adresse du solliciteur."},"address":{"type":"string","description":"L’adresse de l’immeuble."},"addressLine2":{"type":"string","description":"Le complément d’adresse."},"accessInstructions":{"type":"string","description":"Les consignes d’accès."},"accessCode":{"type":"string","description":"Le code d’accès."},"keySafe":{"type":"string","description":"Le coffre à clés."},"equipmentNumber":{"type":"string","description":"Le numéro de l’équipement."},"equipmentExternalId":{"type":"string","description":"L’identifiant de l’équipement chez votre logiciel."},"dealId":{"type":"string","description":"Une affaire existante, que le relevé rejoint."},"dealType":{"type":"string","description":"Le type d’une affaire à créer, code ou libellé : contrat, reparation, modernisation, remplacement ; « pour commande » la passe en commande, sinon elle se chiffre."},"conditionReport":{"type":"boolean","description":"Un état des lieux : un relevé seul, sans affaire."},"client":{"type":"object","description":"Le client, retrouvé par son SIRET ou son numéro, sinon créé.","properties":{"name":{"type":"string"},"siret":{"type":"string"},"siren":{"type":"string"},"number":{"type":"string"},"address":{"type":"string"},"phone":{"type":"string"}}},"equipmentList":{"type":"array","description":"Plusieurs équipements pour une même affaire ; chacun reprend l’adresse et le client de la demande s’il n’en donne pas.","items":{"type":"object","properties":{"equipmentNumber":{"type":"string","description":"Le numéro de l’équipement."},"equipmentExternalId":{"type":"string","description":"Son identifiant chez votre logiciel."},"address":{"type":"string","description":"L’adresse de son immeuble."},"addressLine2":{"type":"string","description":"Le complément d’adresse."},"accessInstructions":{"type":"string","description":"Les consignes d’accès."},"accessCode":{"type":"string","description":"Le code d’accès."},"keySafe":{"type":"string","description":"Le coffre à clés."},"client":{"type":"object","description":"Le client, retrouvé par son SIRET ou son numéro, sinon créé.","properties":{"name":{"type":"string"},"siret":{"type":"string"},"siren":{"type":"string"},"number":{"type":"string"},"address":{"type":"string"},"phone":{"type":"string"}}}}}}},"required":["surveyorEmail"]}}}}}},"/external/open-on-phone":{"post":{"tags":["Logiciel de maintenance"],"summary":"Ouvrir un relevé sur le téléphone d’un technicien","description":"Le relevé encore ouvert de l’équipement, sinon un neuf, assigné au technicien et passé en cours ; myArquos l’ouvre à son prochain lancement.","operationId":"postExternalOpenOnPhone","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agency":{"type":"string","description":"L’agence : identifiant Arquos ou identifiant chez votre logiciel."},"email":{"type":"string","description":"L’adresse du technicien, un compte de l’agence."},"equipmentId":{"type":"string","description":"L’identifiant Arquos de l’équipement."},"equipmentNumber":{"type":"string","description":"Ou son numéro."},"equipmentExternalId":{"type":"string","description":"Ou son identifiant chez votre logiciel."}},"required":["email"]}}}}}},"/technical-values":{"get":{"tags":["Équipements"],"summary":"Chercher une donnée technique dans le parc","description":"Les équipements de la portée dont la donnée `code` (le code du catalogue, par exemple modele-machine) contient `valeur`, sans tenir compte de la casse. Sans `valeur`, ceux où elle est renseignée. Pour le compte de service de l’équipe Arquos, toutes les organisations.","operationId":"getTechnicalValues","parameters":[{"name":"code","in":"query","required":true,"description":"Le code de la donnée technique.","schema":{"type":"string"}},{"name":"value","in":"query","required":false,"description":"Ce que la valeur contient.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Combien de lignes, 50 par défaut, 200 au plus.","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"La page, à partir de 1.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/search":{"get":{"tags":["Recherche"],"summary":"Chercher dans Arquos","description":"La recherche globale de l’écran : équipements, immeubles, clients, affaires, relevés, contrats, appels, écarts, notes.","operationId":"getSearch","parameters":[{"name":"q","in":"query","required":true,"description":"Deux caractères au moins.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"array","description":"Les objets de vos agences qui répondent au terme, les plus pertinents d’abord.","items":{"type":"object","properties":{"object":{"type":"string","description":"La clé du type d’objet, à passer aux routes génériques (`equipment`, `buildings`, `clients`, `deals`…)."},"type":{"type":"string","description":"Le type d’objet, au singulier, tel qu’il se lit (« Équipement », « Client »)."},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Ce qui nomme l’objet (numéro, nom, adresse)."},"detail":{"type":["string","null"],"description":"Une précision : l’immeuble d’un équipement, la ville d’un client…"},"via":{"type":["string","null"],"description":"Quand l’objet a été trouvé par un autre (le client d’un immeuble cherché), ce qui l’a fait trouver."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["object","type","id","name","detail","via","link","url"],"additionalProperties":false}},"example":[{"object":"equipment","type":"Équipement","id":"0b6f0e0c-2c55-4a4c-9a0e-6f0a3b6f2b1d","name":"53 A 00068 01","detail":"Les Jardins Saint-Nicolas","via":null,"link":"/equipment/0b6f0e0c-2c55-4a4c-9a0e-6f0a3b6f2b1d","url":"https://app.arquos.eu/equipment/0b6f0e0c-2c55-4a4c-9a0e-6f0a3b6f2b1d"}]}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/equipment/batch":{"get":{"tags":["Équipements"],"summary":"Lire des équipements par lot, chacun en entier","description":"Jusqu’à cent identifiants, séparés par des virgules. Chaque équipement est rendu comme par la lecture d’un équipement : son identité, son immeuble et son client, ses données techniques relevées. Un identifiant hors de vos agences est absent de la réponse.","operationId":"getEquipmentBatch","parameters":[{"name":"ids","in":"query","required":true,"description":"Des identifiants séparés par des virgules, 100 au plus : une lecture par lot.","schema":{"type":"string"}},{"name":"surveys","in":"query","required":false,"description":"« 1 » : joindre à chaque équipement ses relevés (numéro, statut, type, date).","schema":{"type":"string"}},{"name":"surveyCodes","in":"query","required":false,"description":"Des codes de donnée technique, séparés par des virgules : la valeur saisie sur chaque relevé (avec « releves=1 »).","schema":{"type":"string"}},{"name":"photoCategories","in":"query","required":false,"description":"Des catégories de photo, séparées par des virgules, ou « * » pour toutes : l’adresse de la plus récente de chacune.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","description":"Les équipements demandés qui sont dans vos agences, chacun lu en entier comme par GET /equipment/{id}. Un identifiant hors de vos agences est absent de la liste.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["string","null"],"description":"Le numéro de l’équipement dans l’agence (le `equipment_number` de la V1).","examples":["53 A 00068 01"]},"serialNumber":{"type":["string","null"],"description":"Le numéro de série du constructeur."},"type":{"type":["string","null"],"description":"Le type d’équipement.","enum":["ascenseur","monte_charge","monte_voiture","elevateur","porte_fermeture","niveleur_de_quai","range_voiture","autre",null]},"subtype":{"type":["string","null"],"description":"La précision du type, en texte libre."},"location":{"type":["string","null"],"description":"Où il est dans l’immeuble (« Tour Sud », « Bât. B »)."},"maintenanceContract":{"type":["string","null"],"description":"`parc` : au contrat d’entretien de l’agence ; `hors_parc` : non ; `null` : on ne sait pas.","enum":["parc","hors_parc",null]},"contractNumber":{"type":["string","null"],"description":"Le numéro du contrat d’entretien."},"maintainer":{"type":["string","null"],"description":"La société qui l’entretient, quand ce n’est pas l’agence."},"building":{"type":["object","null"],"description":"L’immeuble où il se trouve, avec son propriétaire et son gestionnaire.","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Le nom de l’immeuble. Près d’un immeuble sur quatre n’en a pas."},"address":{"type":["string","null"],"description":"L’adresse de l’immeuble."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"owner":{"type":["object","null"],"description":"Le propriétaire de l’immeuble.","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Le nom du client propriétaire."}},"required":["id","name"],"additionalProperties":false},"manager":{"type":["object","null"],"description":"Le gestionnaire de l’immeuble.","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Le nom du client gestionnaire."}},"required":["id","name"],"additionalProperties":false}},"required":["id","name","address","link","url","owner","manager"],"additionalProperties":false},"client":{"type":["object","null"],"description":"Le client de l’immeuble.","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Le nom du client."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","name","link","url"],"additionalProperties":false},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"data":{"type":"array","description":"Toutes ses données techniques relevées, rangées par composant. Une donnée jamais relevée est ABSENTE de la liste : sa présence dit qu’on la connaît.","items":{"type":"object","properties":{"code":{"type":"string","description":"Le code de la donnée au catalogue des données techniques. C’est lui qu’on envoie pour la corriger.","examples":["charge-utile"]},"label":{"type":["string","null"],"description":"Le nom de la donnée, tel qu’il se lit dans Arquos.","examples":["Charge utile"]},"value":{"type":["string","number","boolean","array","null"],"description":"La valeur relevée : un nombre pour une mesure, un texte pour un choix, une liste pour un choix multiple.","examples":[630]},"unit":{"type":["string","null"],"description":"L’unité de la valeur (mm, kg, m/s…), quand elle en a une.","examples":["kg"]},"component":{"type":["string","null"],"description":"Le composant décrit (`car_door`, `machine`, `controller`…), ou `null` pour une donnée de l’équipement lui-même.","examples":["machine"]}},"required":["code","label","value","unit","component"],"additionalProperties":false}},"surveys":{"type":"array","description":"Avec « releves=1 » : ses relevés, du plus ancien au plus récent.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["string","null"],"description":"Le numéro du relevé."},"status":{"type":["string","null"],"description":"Le statut du relevé, en clair."},"type":{"type":["string","null"],"description":"Le type de relevé, en clair."},"date":{"type":["string","null"],"description":"La date qui situe le relevé : relevé le, à défaut validé le, à défaut créé le (AAAA-MM-JJ)."},"values":{"type":"object","description":"Les valeurs saisies sur ce relevé pour les codes demandés (codesDuReleve), par code.","additionalProperties":true}},"required":["id","number","status","type","date"],"additionalProperties":false}},"photos":{"type":"object","description":"Avec « categoriesPhoto » : pour chaque catégorie demandée qui a une photo, l’adresse de la plus récente.","additionalProperties":{"type":"string"}}},"required":["id","number","serialNumber","type","subtype","location","maintenanceContract","contractNumber","maintainer","building","client","link","url","data"],"additionalProperties":false}}},"required":["results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/equipment/{id}":{"get":{"tags":["Équipements"],"summary":"Lire un équipement et ses données techniques","description":"L’identité de l’équipement, son immeuble et son client, et toutes ses données techniques relevées. Une donnée jamais relevée est absente de la liste.","operationId":"getEquipmentId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["string","null"],"description":"Le numéro de l’équipement dans l’agence (le `equipment_number` de la V1).","examples":["53 A 00068 01"]},"serialNumber":{"type":["string","null"],"description":"Le numéro de série du constructeur."},"type":{"type":["string","null"],"description":"Le type d’équipement.","enum":["ascenseur","monte_charge","monte_voiture","elevateur","porte_fermeture","niveleur_de_quai","range_voiture","autre",null]},"subtype":{"type":["string","null"],"description":"La précision du type, en texte libre."},"location":{"type":["string","null"],"description":"Où il est dans l’immeuble (« Tour Sud », « Bât. B »)."},"maintenanceContract":{"type":["string","null"],"description":"`parc` : au contrat d’entretien de l’agence ; `hors_parc` : non ; `null` : on ne sait pas.","enum":["parc","hors_parc",null]},"contractNumber":{"type":["string","null"],"description":"Le numéro du contrat d’entretien."},"maintainer":{"type":["string","null"],"description":"La société qui l’entretient, quand ce n’est pas l’agence."},"building":{"type":["object","null"],"description":"L’immeuble où il se trouve.","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Le nom de l’immeuble. Près d’un immeuble sur quatre n’en a pas."},"address":{"type":["string","null"],"description":"L’adresse de l’immeuble."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","name","address","link","url"],"additionalProperties":false},"client":{"type":["object","null"],"description":"Le client de l’immeuble.","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Le nom du client."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","name","link","url"],"additionalProperties":false},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"data":{"type":"array","description":"Toutes ses données techniques relevées, rangées par composant. Une donnée jamais relevée est ABSENTE de la liste : sa présence dit qu’on la connaît.","items":{"type":"object","properties":{"code":{"type":"string","description":"Le code de la donnée au catalogue des données techniques. C’est lui qu’on envoie pour la corriger.","examples":["charge-utile"]},"label":{"type":["string","null"],"description":"Le nom de la donnée, tel qu’il se lit dans Arquos.","examples":["Charge utile"]},"value":{"type":["string","number","boolean","array","null"],"description":"La valeur relevée : un nombre pour une mesure, un texte pour un choix, une liste pour un choix multiple.","examples":[630]},"unit":{"type":["string","null"],"description":"L’unité de la valeur (mm, kg, m/s…), quand elle en a une.","examples":["kg"]},"component":{"type":["string","null"],"description":"Le composant décrit (`car_door`, `machine`, `controller`…), ou `null` pour une donnée de l’équipement lui-même.","examples":["machine"]}},"required":["code","label","value","unit","component"],"additionalProperties":false}}},"required":["id","number","serialNumber","type","subtype","location","maintenanceContract","contractNumber","maintainer","building","client","link","url","data"],"additionalProperties":false},"example":{"id":"0b6f0e0c-2c55-4a4c-9a0e-6f0a3b6f2b1d","number":"53 A 00068 01","serialNumber":"040D45A","type":"ascenseur","subtype":null,"location":"Tour Sud","maintenanceContract":"parc","contractNumber":"C-2024-118","maintainer":null,"building":{"id":"ad48d3ca-e5d3-46fc-9b12-eb8942ba95da","name":"Les Jardins Saint-Nicolas","address":"26 Rue du Port, 14000 Caen","link":"/buildings/ad48d3ca-e5d3-46fc-9b12-eb8942ba95da","url":"https://app.arquos.eu/buildings/ad48d3ca-e5d3-46fc-9b12-eb8942ba95da"},"client":{"id":"74484d22-a117-4113-b6bd-b1f98c506725","name":"Cabinet Beauséjour","link":"/clients/74484d22-a117-4113-b6bd-b1f98c506725","url":"https://app.arquos.eu/clients/74484d22-a117-4113-b6bd-b1f98c506725"},"link":"/equipment/0b6f0e0c-2c55-4a4c-9a0e-6f0a3b6f2b1d","url":"https://app.arquos.eu/equipment/0b6f0e0c-2c55-4a4c-9a0e-6f0a3b6f2b1d","data":[{"code":"charge-utile","label":"Charge utile","value":630,"unit":"kg","component":null},{"code":"nombre-niveaux","label":"Nombre de niveaux","value":7,"unit":null,"component":null},{"code":"marque-machine","label":"Marque","value":"Otis","unit":null,"component":"machine"}]}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Équipements"],"summary":"Corriger les données techniques d’un équipement","description":"Par code de donnée technique (voir la lecture de l’équipement, ou la recherche au catalogue des données techniques). Chaque valeur est vérifiée contre le catalogue (type, bornes, choix) ; une seule refusée et rien n’est écrit. Une valeur vide efface.","operationId":"patchEquipmentId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : une seule valeur refusée et rien n’est écrit, la réponse est alors un 422."},"values":{"type":"object","description":"Les valeurs écrites, par code, telles qu’Arquos les a gardées (un nombre pour une mesure).","additionalProperties":true},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","values","link","url"],"additionalProperties":false},"example":{"id":"0b6f0e0c-2c55-4a4c-9a0e-6f0a3b6f2b1d","ok":true,"values":{"charge-utile":630},"link":"/equipment/0b6f0e0c-2c55-4a4c-9a0e-6f0a3b6f2b1d","url":"https://app.arquos.eu/equipment/0b6f0e0c-2c55-4a4c-9a0e-6f0a3b6f2b1d"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"values":{"type":"object","description":"Les nouvelles valeurs, par code de donnée technique.","additionalProperties":{"type":"string"}}},"required":["values"],"additionalProperties":false}}}}}},"/equipment/{id}/maintenance":{"get":{"tags":["Équipements"],"summary":"La maintenance d’un équipement","description":"Son contrat, son plan de maintenance (dû, en retard), son carnet d’entretien récent, ses appels et ses réserves.","operationId":"getEquipmentIdMaintenance","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"maintained":{"type":"boolean","description":"L’équipement est au parc entretenu par l’agence."},"pairedReason":{"type":["string","null"],"description":"Pourquoi une intervention y demande deux techniciens, ou `null`."},"state":{"type":"string","description":"Son état en ce moment.","enum":["en_service","en_panne","a_l_arret"]},"call":{"type":["object","null"],"description":"L’appel en cours, ou `null`.","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"type":{"type":"string","description":"Le motif de l’appel.","enum":["personne_bloquee","panne","vandalisme","bruit","arret_client","telealarme"]},"status":{"type":"string","description":"Où en est l’intervention.","enum":["ouverte","en_route","sur_place","resolue","a_l_arret"]},"receivedAt":{"type":"string","description":"Quand l’appel a été reçu.","format":"date-time"},"detail":{"type":["string","null"],"description":"Le motif d’arrêt ou ce que l’appelant a dit."},"restartPlannedOn":{"type":["string","null"],"description":"La remise en service prévue. Au format AAAA-MM-JJ.","format":"date"}},"required":["id","type","status","receivedAt","detail","restartPlannedOn"],"additionalProperties":false},"lastMaintenanceVisit":{"type":["string","null"],"description":"La dernière visite d’entretien faite. Au format AAAA-MM-JJ.","format":"date"},"deadline":{"type":["string","null"],"description":"La date à laquelle la prochaine visite est due. Au format AAAA-MM-JJ.","format":"date"},"next":{"type":["object","null"],"description":"La prochaine visite planifiée, ou `null`.","properties":{"day":{"type":"string","description":"Le jour planifié, AAAA-MM-JJ.","format":"date"},"technician":{"type":["string","null"],"description":"Le technicien planifié."}},"required":["day","technician"],"additionalProperties":false},"sectorTechnician":{"type":["string","null"],"description":"Le technicien du secteur de l’équipement."},"contract":{"type":["object","null"],"description":"Le contrat d’entretien, ou `null`.","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["string","null"],"description":"Son numéro."},"plan":{"type":["string","null"],"description":"Sa formule.","enum":["minimal","etendu",null]}},"required":["id","number","plan"],"additionalProperties":false},"breakdowns30Days":{"type":"integer","description":"Les pannes sur trente jours (hors bruit et arrêt demandé)."},"breakdowns12Months":{"type":"integer","description":"Les pannes sur douze mois."},"logbook":{"type":"array","description":"Le carnet d’entretien récent.","items":{"type":"object","description":"Un passage du carnet d’entretien : visite, dépannage ou contrôle, avec sa date, son technicien et ce qui a été fait."}},"totalVisits":{"type":"integer","description":"Le nombre de passages au carnet."},"inspection":{"type":["object","null"],"description":"Le dernier contrôle technique : sa date, l’organisme, et ses réserves."},"announcedInspection":{"type":["object","null"],"description":"Le prochain contrôle annoncé, et les techniciens qui peuvent l’accompagner."},"technicians":{"type":"array","description":"Les techniciens de l’agence, pour planifier ou affecter.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":"string","description":"Son nom."}},"required":["id","name"],"additionalProperties":false}},"reserves":{"type":"array","description":"Les réserves ouvertes.","items":{"type":"object","description":"Une réserve à lever : son libellé, sa gravité, son échéance."}},"emergencyPhone":{"type":["object","null"],"description":"La téléalarme de la cabine : son opérateur, son dernier essai, son état."},"quotes":{"type":"array","description":"Les devis de l’équipement.","items":{"type":"object","description":"Un devis de l’équipement : numéro, objet, statut, montant."}},"partRequests":{"type":"array","description":"Les pièces demandées ou commandées.","items":{"type":"object","description":"Une demande de pièce encore ouverte : la pièce, la quantité, si elle est urgente, son statut."}},"availability":{"type":["object","null"],"description":"La disponibilité, celle du rapport ; `null` hors du parc suivi.","properties":{"rate":{"type":"number","description":"Le taux de disponibilité sur douze mois, en pourcentage."},"downtimeHours":{"type":"number","description":"Les heures d’arrêt sur douze mois."}},"required":["rate","downtimeHours"],"additionalProperties":false},"maintenancePlan":{"type":"array","description":"Le plan de maintenance de l’équipement.","items":{"type":"object","description":"Une opération du plan de maintenance de l’équipement : ce qu’il faut faire, à quelle fréquence, et quand elle est due."}}},"required":["maintained","pairedReason","state","call","lastMaintenanceVisit","deadline","next","sectorTechnician","contract","breakdowns30Days","breakdowns12Months","logbook","totalVisits","inspection","announcedInspection","technicians","reserves","emergencyPhone","quotes","partRequests","availability","maintenancePlan"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/technical-fields":{"get":{"tags":["Équipements"],"summary":"Chercher une donnée technique au catalogue","description":"Les codes des données techniques qui répondent à un terme (« charge », « vitesse », « course »), avec la valeur relevée sur un équipement.","operationId":"getTechnicalFields","parameters":[{"name":"equipment","in":"query","required":true,"description":"L’identifiant de l’équipement.","schema":{"type":"string"}},{"name":"q","in":"query","required":true,"description":"Le terme cherché.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"array","description":"Les données du catalogue qui répondent au terme, avec leur valeur sur l’équipement.","items":{"type":"object","properties":{"code":{"type":"string","description":"Le code de la donnée au catalogue.","examples":["charge-utile"]},"field":{"type":"string","description":"Son nom, tel qu’il se lit dans Arquos.","examples":["Charge utile"]},"component":{"type":["string","null"],"description":"Le composant décrit, ou `null` pour l’équipement lui-même."},"value":{"type":["string","number","boolean","array","null"],"description":"La valeur relevée sur l’équipement, ou `null` si elle ne l’a jamais été."},"unit":{"type":["string","null"],"description":"L’unité, quand elle en a une."}},"required":["code","field","component","value","unit"],"additionalProperties":false}},"example":[{"code":"charge-utile","field":"Charge utile","component":null,"value":630,"unit":"kg"},{"code":"surcharge-cabine","field":"Surcharge cabine","component":"car","value":null,"unit":null}]}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/equipment/{id}/surveys":{"get":{"tags":["Relevés"],"summary":"Les relevés d’un équipement","description":"Du plus récent au plus ancien : numéro, motif, statut, date du relevé et échéance.","operationId":"getEquipmentIdSurveys","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de relevés de l’équipement."},"surveys":{"type":"array","description":"Du plus récent au plus ancien.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["string","null"],"description":"Le numéro du relevé.","examples":["R-2026-020449"]},"reason":{"type":["string","null"],"description":"Le code du motif (voir GET /survey-types)."},"reasonLabel":{"type":["string","null"],"description":"Le motif, tel qu’il se lit."},"status":{"type":["string","null"],"description":"Le code du statut (`relev_s_assign_s`, `relev_s_en_cours`, `relev_s_termin_s`…)."},"statusLabel":{"type":["string","null"],"description":"Le statut, tel qu’il se lit (« Assigné », « En cours », « Terminé »)."},"surveyedOn":{"type":["string","null"],"description":"Le jour du relevé. Au format AAAA-MM-JJ.","format":"date"},"dueOn":{"type":["string","null"],"description":"L’échéance du relevé. Au format AAAA-MM-JJ.","format":"date"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","number","reason","reasonLabel","status","statusLabel","surveyedOn","dueOn","link","url"],"additionalProperties":false}}},"required":["total","surveys"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/surveys/{id}/data":{"get":{"tags":["Relevés"],"summary":"Les données d’un relevé, par composant","description":"Le relevé, son équipement, et les données relevées de l’équipement rangées par composant (porte cabine, machine, armoire…). Une donnée jamais relevée est absente. Chaque donnée dit aussi son nom dans l’API V1 (champV1 : table et champ), pour qui migre une intégration.","operationId":"getSurveysIdData","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["string","null"],"description":"Le numéro du relevé."},"equipment":{"type":"object","description":"L’équipement relevé.","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","link","url"],"additionalProperties":false},"agency":{"type":"string","description":"L’agence du relevé.","format":"uuid"},"reason":{"type":["string","null"],"description":"Le motif, tel qu’il se lit."},"status":{"type":["string","null"],"description":"Le statut, tel qu’il se lit."},"surveyedOn":{"type":["string","null"],"description":"Le jour du relevé. Au format AAAA-MM-JJ.","format":"date"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"deals":{"type":"array","description":"Les affaires auxquelles le relevé appartient.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"nature":{"type":["string","null"],"description":"Le code de la nature de l’affaire."},"natureLabel":{"type":["string","null"],"description":"La nature, telle qu’elle se lit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","nature","natureLabel","link","url"],"additionalProperties":false}},"components":{"type":"object","description":"Les données relevées, rangées par composant (`equipment` pour l’équipement lui-même, puis `car_door`, `machine`, `controller`…). Une donnée jamais relevée est absente. Chaque donnée : `code`, `libelle`, `valeur`, `unite`, et `champV1` (`table` et `champ` de l’API V1, pour qui migre une intégration).","additionalProperties":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Le code de la donnée au catalogue."},"label":{"type":["string","null"],"description":"Son nom ; `null` si le catalogue ne l’a pas encore nommée."},"value":{"type":["string","number","boolean","array","null"],"description":"La valeur relevée."},"unit":{"type":["string","null"],"description":"Son unité."},"v1Field":{"type":["object","null"],"description":"Son nom dans l’API V1.","properties":{"table":{"type":"string","description":"La table V1 (`survey_car_door`…)."},"field":{"type":"string","description":"Le champ V1."}},"required":["table","field"],"additionalProperties":false}},"required":["code","label","value","unit","v1Field"],"additionalProperties":false}}}},"required":["id","number","equipment","agency","reason","status","surveyedOn","link","url","deals","components"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Relevés"],"summary":"Corriger les données d’un relevé","description":"Par code de donnée technique (la lecture des noms V1 des données techniques donne le code de chaque colonne V1). Les valeurs vont dans le RELEVÉ, et passent sur l’équipement à sa validation. Chaque valeur est vérifiée contre le catalogue ; ce qui est refusé revient dans `ignores` avec sa raison. Une valeur vide efface. Un relevé validé ou archivé ne se modifie plus (409).","operationId":"patchSurveysIdData","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"written":{"type":"integer","description":"Le nombre de valeurs écrites dans le relevé."},"ignored":{"type":"array","description":"Les valeurs refusées par le catalogue (code inconnu, type, bornes, choix) ; les autres sont écrites.","items":{"type":"object","properties":{"code":{"type":"string","description":"Le code refusé."},"reason":{"type":"string","description":"Pourquoi le catalogue l’a refusé."}},"required":["code","reason"],"additionalProperties":false}}},"required":["written","ignored"],"additionalProperties":false},"example":{"written":1,"ignored":[{"code":"code-inconnu","reason":"Champ inconnu."}]}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"values":{"type":"object","additionalProperties":{"type":"string"},"description":"Les valeurs, par code de donnée technique."}},"required":["values"],"additionalProperties":false}}}}}},"/surveys/{id}/photos":{"get":{"tags":["Relevés"],"summary":"Les photos d’un relevé","description":"Chaque photo prise sur ce relevé : sa catégorie (code et libellé, ceux du catalogue des photos), l’adresse de son fichier, et qui l’a rangée (technicien ou IA). Une adresse qui commence par « / » se lit sur le serveur d’Arquos.","operationId":"getSurveysIdPhotos","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de photos."},"photos":{"type":"array","description":"Dans l’ordre du catalogue.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"category":{"type":["string","null"],"description":"Le code de l’emplacement au catalogue des photos ; `null` pour une photo en vrac, pas encore rangée."},"label":{"type":["string","null"],"description":"L’emplacement, tel qu’il se lit (« Plaque moteur »)."},"file":{"type":"string","description":"L’adresse du fichier. Une adresse qui commence par « / » se lit sur le serveur d’Arquos, avec le même jeton."},"sortedBy":{"type":"string","description":"Qui l’a rangée : le technicien, l’IA, ou une correction après coup.","enum":["technicien","ia","recategorisation"]},"takenAt":{"type":["string","null"],"description":"Quand elle a été prise, AAAA-MM-JJTHH:MM:SS."}},"required":["id","category","label","file","sortedBy","takenAt"],"additionalProperties":false}}},"required":["total","photos"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"post":{"tags":["Relevés"],"summary":"Déposer une photo sur un relevé","description":"Comme le téléphone : la photo (JPEG, PNG, WebP ou HEIC, 10 Mo au plus) est posée en vrac, à ranger ; avec `categorie` (le libellé d’un emplacement du catalogue), elle prend cet emplacement et en chasse la précédente ; avec `complementaire`, elle s’ajoute aux photos complémentaires. `parIA` dit que le moteur IA l’a rangée. Le relevé doit être en cours.","operationId":"postSurveysIdPhotos","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de la photo ; absent quand la photo prend un emplacement (elle remplace la précédente).","format":"uuid"},"file":{"type":"string","description":"L’adresse de la photo, à lire sur le serveur d’Arquos."},"category":{"type":"string","description":"L’emplacement pris, quand une catégorie a été donnée."}},"required":["file"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"photo":{"type":"string","description":"Le fichier, en base64."},"category":{"type":"string","description":"Le libellé de l’emplacement, par exemple « Plaque moteur »."},"additional":{"type":"boolean","description":"Une photo complémentaire, hors des emplacements."},"byAi":{"type":"boolean","description":"Rangée par le moteur IA plutôt que par une personne."}},"required":["photo"],"additionalProperties":false}}}}}},"/surveys/{id}/photos/remove":{"post":{"tags":["Relevés"],"summary":"Retirer des photos en vrac d’un relevé","description":"Les photos encore à ranger, désignées par l’adresse de leur fichier (celle que rend la lecture des photos) : une fois rangées par ailleurs, l’original en vrac n’a plus lieu d’être. Une photo déjà rangée ne se retire pas ainsi. Rejoué, le geste répond pareil. Le relevé doit être en cours.","operationId":"postSurveysIdPhotosRemove","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un code d’erreur et sa raison."}},"required":["ok"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"files":{"type":"array","items":{"type":"string"},"description":"Les adresses des photos à retirer, 200 au plus."}},"required":["files"],"additionalProperties":false}}}}}},"/contracts/price-variations":{"get":{"tags":["Contrats"],"summary":"Les variations de prix des contrats","description":"Ce qui fait varier le prix d’un contrat dans vos agences : les options, et les données techniques dont la valeur relevée change le prix (avec la donnée, son code et son nom V1). Filtrer par `agence` et par `nature` (option ou champ_technique).","operationId":"getContractsPriceVariations","parameters":[{"name":"agency","in":"query","required":false,"description":"L’identifiant d’une agence.","schema":{"type":"string"}},{"name":"nature","in":"query","required":false,"description":"« option » ou « champ_technique ».","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de variations de prix."},"variations":{"type":"array","description":"Le barème des contrats de vos agences.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"agency":{"type":"string","description":"L’agence qui la règle.","format":"uuid"},"nature":{"type":["string","null"],"description":"Une option du contrat, ou une variation selon une donnée technique."},"label":{"type":["string","null"],"description":"Son nom."},"field":{"type":["object","null"],"description":"La donnée technique qui fait varier le prix, ou `null` pour une option.","properties":{"code":{"type":"string","description":"Le code de la donnée technique."},"label":{"type":["string","null"],"description":"Son nom."},"table":{"type":["string","null"],"description":"Sa table en V1."},"field":{"type":["string","null"],"description":"Son champ en V1."}},"required":["code","label","table","field"],"additionalProperties":false}},"required":["id","agency","nature","label","field"],"additionalProperties":false}}},"required":["total","variations"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/equipment/{id}/landings":{"post":{"tags":["Équipements"],"summary":"Créer les étages d’un équipement","description":"Crée les étages qui manquent, du niveau 1 au nombre de niveaux donné (comme create_landings en V1). Un étage existant n’est jamais effacé, même au-delà de ce nombre : il peut porter des cotes relevées.","operationId":"postEquipmentIdLandings","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"created":{"type":"integer","description":"Le nombre d’étages créés ; 0 si l’équipement les avait déjà."}},"required":["created"],"additionalProperties":false},"example":{"created":3}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"floorCount":{"type":"integer","description":"Le nombre de niveaux desservis, de 1 à 200."}},"required":["floorCount"],"additionalProperties":false}}}}}},"/surveys/{id}/documents":{"post":{"tags":["Relevés"],"summary":"Déposer un document PDF sur un relevé","description":"Un PDF de 20 Mo au plus, rangé parmi les documents du relevé avec son titre et son type (« logs_ia » pour le journal du moteur IA, comme create_ai_logs_pdf en V1). Le fichier se lit ensuite sur la fiche du relevé.","operationId":"postSurveysIdDocuments","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"file":{"type":"string","description":"L’adresse du PDF déposé, à lire sur le serveur d’Arquos avec le même jeton."}},"required":["id","file"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Le titre du document."},"file":{"type":"string","description":"Le PDF, en base64."},"type":{"type":"string","description":"Le type de document, « logs_ia » par défaut."}},"required":["title","file"],"additionalProperties":false}}}}}},"/surveys/{id}/validate":{"post":{"tags":["Relevés"],"summary":"Valider un relevé (équipe Arquos)","description":"Réservé à l’équipe Arquos : le moteur IA et le back office. Les valeurs du relevé passent sur l’équipement, la validation se date et se trace, les affaires du relevé avancent, et le releveur est prévenu. Seul un relevé soumis se valide ; rejouée, la validation ne refait rien (`deja`). Tout autre compte reçoit 403.","operationId":"postSurveysIdValidate","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"alreadyValidated":{"type":"boolean","description":"`true` si le relevé était déjà validé : rien n’a été refait."},"values":{"type":"integer","description":"Le nombre de valeurs du relevé passées sur l’équipement."},"deals":{"type":"array","description":"Les affaires du relevé dont le statut a avancé.","items":{"type":"string","description":"L’identifiant d’une affaire avancée.","format":"uuid"}}},"required":["alreadyValidated","values","deals"],"additionalProperties":false},"example":{"alreadyValidated":false,"values":42,"deals":["879399e6-064d-45ca-9279-3e84364b8a21"]}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/surveys/{id}/needs":{"get":{"tags":["Relevés"],"summary":"Lire les besoins d’un relevé","description":"Ce que le relevé demande de remplacer ou de fournir, composant par composant : chaque donnée avec son libellé, sa valeur, et son nom dans l’API V1 (les types need_* de Bubble). Un besoin jamais exprimé est absent.","operationId":"getSurveysIdNeeds","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/surveys/{id}/photos/{photo}":{"patch":{"tags":["Relevés"],"summary":"Déplacer une photo (équipe Arquos)","description":"Réservé à l’équipe Arquos, jusqu’à la validation du relevé : la photo prend l’emplacement nommé par `categorie` (libellé du catalogue), dont l’occupante devient une photo complémentaire ; sans `categorie`, elle devient elle-même complémentaire. Tout autre compte reçoit 403.","operationId":"patchSurveysIdPhotosPhoto","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"name":"photo","in":"path","required":true,"description":"L’identifiant de la photo.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":["string","null"],"description":"Le libellé de l’emplacement, ou null pour les complémentaires."}}}}}}}},"/surveys/{id}/photos/{photo}/remove":{"post":{"tags":["Relevés"],"summary":"Retirer une photo complémentaire (équipe Arquos)","description":"Réservé à l’équipe Arquos, jusqu’à la validation du relevé : la photo complémentaire part, fichier compris. Rejoué, le geste répond pareil. Tout autre compte reçoit 403.","operationId":"postSurveysIdPhotosPhotoRemove","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"name":"photo","in":"path","required":true,"description":"L’identifiant de la photo.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/technical-fields/v1":{"get":{"tags":["Relevés"],"summary":"Les noms V1 des données techniques","description":"Le catalogue entier des données relevées, avec pour chacune son nom dans l’API V1 (table et champ de Bubble) : de quoi écrire par PATCH /equipment/{id} une donnée qu’une intégration V1 nommait autrement, même jamais relevée.","operationId":"getTechnicalFieldsV1","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de données qui ont un nom en V1."},"fields":{"type":"array","description":"La correspondance entre les noms V1 et les codes V2, pour migrer une intégration.","items":{"type":"object","properties":{"code":{"type":"string","description":"Le code V2 de la donnée."},"label":{"type":["string","null"],"description":"Son nom ; `null` pour une donnée que le catalogue n’a pas encore nommée."},"component":{"type":["string","null"],"description":"Le composant décrit, ou `null`."},"table":{"type":"string","description":"La table de la V1."},"field":{"type":"string","description":"Le champ de la V1."},"choices":{"type":["array","null"],"items":{"type":"string"},"description":"Les choix que myArquos propose au relevé, ou `null` pour une donnée saisie librement."}},"required":["code","label","component","table","field","choices"],"additionalProperties":false}}},"required":["total","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/survey-types":{"get":{"tags":["Relevés"],"summary":"Les motifs de relevé","description":"Les codes à donner pour créer un relevé.","operationId":"getSurveyTypes","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"reasons":{"type":"array","description":"Les motifs de relevé, dans l’ordre de l’écran.","items":{"type":"object","properties":{"code":{"type":"string","description":"Le code du motif, à envoyer à la création d’un relevé.","examples":["relev__contrat"]},"label":{"type":"string","description":"Le motif, tel qu’il se lit.","examples":["Contrat"]}},"required":["code","label"],"additionalProperties":false}}},"required":["reasons"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/surveys":{"post":{"tags":["Relevés"],"summary":"Créer un relevé sur des équipements","description":"Un relevé par équipement, avec son motif (voir les motifs de relevé), sans affaire. Pour une affaire et ses relevés, créer une affaire.","operationId":"postSurveys","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un code d’erreur et sa raison."},"created":{"type":"integer","description":"Le nombre de relevés créés (un par équipement)."},"numbers":{"type":"array","description":"Les numéros des relevés créés.","items":{"type":"string","description":"Le numéro d’un relevé créé."}},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["ok","created","numbers","link","url"],"additionalProperties":false},"example":{"ok":true,"created":1,"numbers":["R-2026-020464"],"link":"/surveys","url":"https://app.arquos.eu/surveys"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"equipmentIds":{"type":"array","items":{"type":"string"},"description":"Les identifiants des équipements."},"reason":{"type":"string","description":"Le code du motif du relevé (_tat_des_lieux, relev__contrat, relev__r_paration…)."}},"required":["equipmentIds","reason"],"additionalProperties":false}}}}},"get":{"tags":["Relevés"],"summary":"Lister les relevés","description":"Les relevés de vos agences, cherchés sur numero. Chaque ligne porte son lien.","operationId":"getSurveys","parameters":[{"name":"q","in":"query","required":false,"description":"Ce qu’on cherche (numero).","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Le code du statut du relevé.","schema":{"type":"string"}},{"name":"equipment","in":"query","required":false,"description":"L’identifiant de l’équipement.","schema":{"type":"string"}},{"name":"agency","in":"query","required":false,"description":"L’identifiant de l’agence, parmi celles du jeton.","schema":{"type":"string"}},{"name":"modifiedSince","in":"query","required":false,"description":"Modifiés à partir de ce jour, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"ids","in":"query","required":false,"description":"Des identifiants séparés par des virgules, 100 au plus : une lecture par lot.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Combien de lignes, 50 par défaut, 200 au plus.","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"La page, à partir de 1.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de lignes qui répondent, toutes pages confondues."},"page":{"type":"integer","description":"La page rendue, à partir de 1."},"limit":{"type":"integer","description":"Le nombre de lignes par page (50 par défaut, 200 au plus)."},"results":{"type":"array","description":"Les lignes de la page.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["string","null"],"description":"Numéro. Un texte."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","number","link","url"],"additionalProperties":false}}},"required":["total","page","limit","results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/imports/formats":{"get":{"tags":["Import"],"summary":"Ce qui s’importe, et ses colonnes","description":"Les objets importables et les en-têtes de colonne qu’Arquos lit, obligatoires ou non. Un en-tête différent se fait correspondre à la vérification.","operationId":"getImportsFormats","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"formats":{"type":"array","description":"Un format par objet importable.","items":{"type":"object","properties":{"object":{"type":"string","description":"Ce que le fichier crée (`clients`, `buildings`, `equipment`…)."},"columns":{"type":"array","description":"Les colonnes du fichier.","items":{"type":"object","properties":{"column":{"type":"string","description":"L’en-tête de colonne attendu, à la lettre."},"required":{"type":"boolean","description":"Sans elle, la ligne est refusée."}},"required":["column","required"],"additionalProperties":false}}},"required":["object","columns"],"additionalProperties":false}}},"required":["formats"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/imports/files":{"post":{"tags":["Import"],"summary":"Déposer un tableau à importer","description":"Un .csv ou un .xlsx, son contenu encodé en base64. Rend l’identifiant du fichier, ses colonnes et son nombre de lignes. Rien n’est encore importé.","operationId":"postImportsFiles","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string","description":"L’identifiant du fichier déposé, à passer à la vérification puis à l’import."},"name":{"type":"string","description":"Le nom du fichier."},"columns":{"type":"array","description":"Les en-têtes lus dans le fichier.","items":{"type":"string","description":"Un en-tête de colonne."}},"rows":{"type":"integer","description":"Le nombre de lignes de données."}},"required":["fileId","name","columns","rows"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Le nom du fichier, avec son extension (.csv ou .xlsx)."},"content":{"type":"string","description":"Le contenu du fichier, en base64."}},"required":["name","content"],"additionalProperties":false}}}}}},"/imports/check":{"post":{"tags":["Import"],"summary":"Vérifier un import, sans rien écrire","description":"La correspondance proposée entre les colonnes du fichier et celles d’Arquos, le nombre de lignes prêtes et les lignes à corriger. Une correspondance donnée remplace la proposée.","operationId":"postImportsCheck","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"Le nom du fichier vérifié."},"mapping":{"type":"object","description":"Pour chaque colonne d’Arquos, la colonne du fichier qui la remplit.","additionalProperties":{"type":"string"}},"arquosColumns":{"type":"array","description":"Les colonnes du format.","items":{"type":"object","properties":{"column":{"type":"string","description":"L’en-tête attendu."},"required":{"type":"boolean","description":"Sans elle, la ligne est refusée."}},"required":["column","required"],"additionalProperties":false}},"rows":{"type":"integer","description":"Le nombre de lignes lues."},"ready":{"type":"integer","description":"Celles qui s’importeront telles quelles."},"toFix":{"type":"array","description":"Les lignes à corriger. L’import n’écrit rien tant qu’il en reste une.","items":{"type":"object","description":"Une ligne refusée : son numéro et ce qui ne va pas."}}},"required":["file","mapping","arquosColumns","rows","ready","toFix"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string","description":"L’identifiant du fichier joint."},"object":{"type":"string","enum":["clients","buildings","contacts","equipment"],"description":"Ce que le tableau contient : clients, immeubles (buildings), contacts ou équipements (equipment)."},"mapping":{"type":"object","additionalProperties":{"type":["string","null"]},"description":"Facultatif : colonne du fichier → colonne d’Arquos."}},"required":["fileId","object"],"additionalProperties":false}}}}}},"/imports":{"post":{"tags":["Import"],"summary":"Importer un tableau déposé","description":"Dans l’agence de l’en-tête X-Arquos-Agency, tout ou rien : une ligne fausse, et rien n’est créé. Vérifier d’abord.","operationId":"postImports","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"created":{"type":"integer","description":"Le nombre d’objets créés."},"updated":{"type":"integer","description":"Le nombre d’objets existants mis à jour."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["created","updated","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string","description":"L’identifiant du fichier joint."},"object":{"type":"string","enum":["clients","buildings","contacts","equipment"],"description":"Ce que le tableau contient."},"mapping":{"type":"object","additionalProperties":{"type":["string","null"]},"description":"Facultatif : la correspondance vérifiée."}},"required":["fileId","object"],"additionalProperties":false}}}}}},"/webhooks":{"get":{"tags":["Webhooks"],"summary":"Les abonnements aux événements","description":"Les adresses que vos agences préviennent, et à quels événements : appel.clos, releve.termine, devis.accepte.","operationId":"getWebhooks","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","description":"Les événements disponibles.","items":{"type":"string","description":"Un événement auquel on peut s’abonner.","enum":["appel.clos","releve.termine","devis.accepte"]}},"subscriptions":{"type":"array","description":"Vos abonnements, les plus récents d’abord.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"url":{"type":"string","description":"L’adresse qui reçoit les événements.","format":"uri"},"events":{"type":"array","description":"Les événements suivis.","items":{"type":"string","description":"Un événement suivi."}},"createdAt":{"type":["string","null"],"description":"Le jour de sa création. Au format AAAA-MM-JJ.","format":"date"},"revokedAt":{"type":["string","null"],"description":"Le jour de sa révocation ; `null` tant qu’il est actif. Au format AAAA-MM-JJ.","format":"date"}},"required":["id","url","events","createdAt","revokedAt"],"additionalProperties":false}}},"required":["events","subscriptions"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"post":{"tags":["Webhooks"],"summary":"S’abonner à des événements","description":"Arquos POSTE chaque événement de l’agence à cette adresse, signé par l’en-tête X-Arquos-Signature (t=<secondes>,v1=<HMAC-SHA256 hexadécimal de « secondes.corps »>), et relance en cas d’échec (1 min, 5 min, 30 min, 2 h, 12 h). Le secret de signature n’est rendu qu’ici. Réservé à un administrateur.","operationId":"postWebhooks","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"secret":{"type":"string","description":"Le secret qui signe chaque envoi (en-tête X-Arquos-Signature). Il n’est rendu qu’ici, une seule fois."}},"required":["id","secret"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"L’adresse qui reçoit, en https."},"events":{"type":"array","items":{"type":"string","enum":["appel.clos","releve.termine","devis.accepte"]},"description":"Les événements à recevoir."}},"required":["url","events"],"additionalProperties":false}}}}}},"/webhooks/{id}/revoke":{"post":{"tags":["Webhooks"],"summary":"Retirer un abonnement","description":"Les livraisons en attente ne partent plus. Réservé à un administrateur.","operationId":"postWebhooksIdRevoke","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un code d’erreur et sa raison."}},"required":["ok"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/webhooks/{id}/test":{"post":{"tags":["Webhooks"],"summary":"Éprouver un abonnement","description":"Envoie tout de suite un événement « ping » signé, et rend ce que l’adresse a répondu.","operationId":"postWebhooksIdTest","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"delivery":{"type":"string","description":"L’identifiant de la livraison d’essai.","format":"uuid"},"status":{"type":"string","description":"Ce qu’il est advenu de l’envoi.","enum":["en_attente","livre","echec","retenu"]},"response":{"type":["integer","null"],"description":"Le code HTTP rendu par votre adresse."},"error":{"type":["string","null"],"description":"Ce qui a empêché l’envoi."}},"required":["delivery","status","response","error"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/webhooks/{id}/deliveries":{"get":{"tags":["Webhooks"],"summary":"Les dernières livraisons d’un abonnement","description":"Les cinquante dernières : événement, statut (en_attente, livre, echec, retenu), essais, réponse reçue.","operationId":"getWebhooksIdDeliveries","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"deliveries":{"type":"array","description":"Les dernières livraisons de cet abonnement.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"event":{"type":"string","description":"L’événement envoyé."},"status":{"type":"string","description":"`en_attente` : à livrer ; `livre` : reçu (2xx) ; `echec` : six essais sans succès ; `retenu` : adresse refusée hors production.","enum":["en_attente","livre","echec","retenu"]},"attempts":{"type":"integer","description":"Le nombre d’envois tentés."},"response":{"type":["integer","null"],"description":"Le code HTTP de la dernière réponse."},"error":{"type":["string","null"],"description":"La dernière erreur, s’il y en a eu une."},"createdAt":{"type":"string","description":"Quand l’événement a eu lieu, AAAA-MM-JJTHH:MM:SS."},"deliveredAt":{"type":["string","null"],"description":"Quand il a été reçu."}},"required":["id","event","status","attempts","response","error","createdAt","deliveredAt"],"additionalProperties":false}}},"required":["deliveries"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/brands":{"get":{"tags":["Référentiels"],"summary":"Les marques d’équipement","description":"Les marques que la donnée « Marque équipement » admet, par ordre alphabétique.","operationId":"getBrands","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"brands":{"type":"array","description":"Les marques admises par la donnée « Marque équipement », par ordre alphabétique.","items":{"type":"string","description":"Une marque."}}},"required":["brands"],"additionalProperties":false},"example":{"brands":["Kone","Orona","Otis","Schindler","Thyssenkrupp"]}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/deals":{"post":{"tags":["Affaires"],"summary":"Créer une affaire et ses relevés","description":"Comme l’écran « Nouvelle affaire » : un relevé par équipement, et ses contrats seulement si elle en comporte. C’est la création de relevé de la V1 (create_survey).","operationId":"postDeals","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’affaire créée.","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un code d’erreur et sa raison."},"externalId":{"type":["string","null"],"description":"L’identifiant de l’affaire dans votre CRM, tel que vous l’avez donné ; `null` sans lui."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","externalId","link","url"],"additionalProperties":false},"example":{"id":"e8afaf6a-edae-4843-b37d-1833931864b8","ok":true,"externalId":null,"link":"/deals/e8afaf6a-edae-4843-b37d-1833931864b8","url":"https://app.arquos.eu/deals/e8afaf6a-edae-4843-b37d-1833931864b8"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["contrat","reparation","modernisation","remplacement"],"description":"contrat = Contrat d’entretien ; reparation = Réparation ; modernisation = Modernisation ; remplacement = Remplacement complet"},"purpose":{"type":"string","enum":["chiffrer","commander"],"description":"Pour une modernisation ou un remplacement complet : chiffrer (devis) ou commander les travaux."},"withSecondDocument":{"type":"boolean","description":"Le second document : un devis en plus d’un contrat d’entretien, ou un contrat en plus d’un devis."},"equipmentIds":{"type":"array","items":{"type":"string"},"description":"Les identifiants des équipements, tous dans la même agence."},"collectionMode":{"type":"string","enum":["sur_site","donnees_existantes","entree_directe"],"description":"Relevé sur site (par défaut), données existantes, ou entrée directe."},"deadline":{"type":"string","description":"Date limite du relevé, AAAA-MM-JJ."},"instructions":{"type":"string","description":"Les consignes pour le releveur (accès, clés, contact)."},"name":{"type":"string","description":"Le nom de l’affaire ; à défaut, la rue de l’immeuble."},"externalId":{"type":"string","description":"L’identifiant de l’affaire dans votre CRM (l’opportunité Salesforce), rendu avec l’affaire."}},"required":["kind","equipmentIds"],"additionalProperties":false}}}}}},"/deals/with-surveys":{"get":{"tags":["Affaires"],"summary":"Les affaires d’une agence avec leurs relevés","description":"Par agence et type d’affaire (son libellé, « Modernisation pour devis », ou son code), ou par identifiants : chaque affaire avec son client, ses releveurs et ses relevés. Cinq cents affaires au plus, les plus récemment modifiées d’abord.","operationId":"getDealsWithSurveys","parameters":[{"name":"agency","in":"query","required":false,"description":"L’identifiant de l’agence, parmi celles du jeton.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Le type d’affaire : son libellé ou son code.","schema":{"type":"string"}},{"name":"survey","in":"query","required":false,"description":"Ou les affaires qui portent ce relevé.","schema":{"type":"string"}},{"name":"ids","in":"query","required":false,"description":"Des identifiants séparés par des virgules, 100 au plus : une lecture par lot.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","description":"Les affaires, les plus récemment modifiées d’abord.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Le nom de l’affaire."},"type":{"type":["string","null"],"description":"Le type d’affaire, en clair."},"status":{"type":["string","null"],"description":"Le statut de l’affaire, en clair."},"category":{"type":["string","null"],"description":"La catégorie de l’affaire (en retard, gagnée…), en clair."},"client":{"type":["string","null"],"description":"Le nom du client."},"surveyors":{"type":["string","null"],"description":"Les releveurs de ses relevés, séparés par des virgules."},"modifiedOn":{"type":"string","description":"La date de sa dernière modification (AAAA-MM-JJ)."},"surveys":{"type":"array","description":"Ses relevés.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["string","null"],"description":"Le numéro du relevé."}},"required":["id","number"],"additionalProperties":false}}},"required":["id","name","type","status","category","client","surveyors","modifiedOn","surveys"],"additionalProperties":false}}},"required":["results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/deals/stats":{"get":{"tags":["Affaires"],"summary":"Compter les affaires","description":"Le nombre d’affaires de vos agences, par type et par issue, entre deux dates de création.","operationId":"getDealsStats","parameters":[{"name":"since","in":"query","required":false,"description":"Créées à partir de ce jour, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"until","in":"query","required":false,"description":"Créées jusqu’à ce jour inclus, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Le code du type d’affaire.","schema":{"type":"string"}},{"name":"outcome","in":"query","required":false,"description":"Le code de l’issue : ouverte, en_attente, en_retard, gagnee, perdue, annulee, fermee.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre d’affaires comptées."},"breakdown":{"type":"array","description":"Par type et par issue. C’est le get_opportunities_stats de la V1.","items":{"type":"object","properties":{"type":{"type":["string","null"],"description":"Le code du type d’affaire."},"typeLabel":{"type":["string","null"],"description":"Le type, tel qu’il se lit."},"outcome":{"type":["string","null"],"description":"Le code de l’issue (`ouverte`, `en_attente`, `en_retard`, `gagnee`, `perdue`, `annulee`, `fermee`)."},"outcomeLabel":{"type":["string","null"],"description":"L’issue, telle qu’elle se lit."},"count":{"type":"integer","description":"Le nombre d’affaires de ce type et de cette issue."}},"required":["type","typeLabel","outcome","outcomeLabel","count"],"additionalProperties":false}}},"required":["total","breakdown"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/calls/open":{"get":{"tags":["Appels"],"summary":"Les appels en cours","description":"Les appels de dépannage non clos : équipement, immeuble, type, statut, heure de réception, technicien.","operationId":"getCallsOpen","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre d’appels en cours dans vos agences."},"shown":{"type":"integer","description":"Le nombre rendu ici (les plus urgents d’abord)."},"calls":{"type":"array","description":"Les appels, les plus urgents d’abord.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"equipmentId":{"type":["string","null"],"description":"L’équipement de l’appel.","format":"uuid"},"number":{"type":["string","null"],"description":"Le numéro de l’équipement."},"building":{"type":["string","null"],"description":"Le nom de l’immeuble."},"address":{"type":["string","null"],"description":"L’adresse de l’immeuble."},"type":{"type":["string","null"],"description":"Le motif de l’appel.","enum":["personne_bloquee","panne","vandalisme","bruit","arret_client","telealarme",null]},"status":{"type":["string","null"],"description":"Où en est l’intervention.","enum":["ouverte","en_route","sur_place","resolue","a_l_arret",null]},"receivedAt":{"type":["string","null"],"description":"Quand l’appel a été reçu (ISO 8601).","format":"date-time"},"caller":{"type":["string","null"],"description":"Qui a appelé."},"description":{"type":["string","null"],"description":"Ce que l’appelant a dit."},"technician":{"type":["string","null"],"description":"Le technicien affecté ; vide s’il n’y en a pas encore."},"stopReason":{"type":["string","null"],"description":"Pourquoi l’équipement est à l’arrêt, s’il l’est."},"restartExpected":{"type":["string","null"],"description":"La date de remise en service prévue."},"released":{"type":"boolean","description":"Pour une personne bloquée : elle a été libérée."},"dueOn":{"type":["string","null"],"description":"L’heure limite d’intervention (ISO 8601).","format":"date-time"},"deadlineAt":{"type":["string","null"],"description":"La fin du délai garanti au contrat (ISO 8601).","format":"date-time"},"breakdowns30Days":{"type":"integer","description":"Le nombre de pannes de l’équipement sur trente jours."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","equipmentId","number","building","address","type","status","receivedAt","caller","description","technician","stopReason","restartExpected","released","dueOn","deadlineAt","breakdowns30Days","link","url"],"additionalProperties":false}}},"required":["total","shown","calls"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/calls":{"post":{"tags":["Appels"],"summary":"Ouvrir un appel de dépannage","description":"Sur un équipement, avec son type, l’appelant et ce qu’il signale. Pour un centre d’appels sans compte Arquos, voir POST /api/partners/calls.","operationId":"postCalls","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’appel ouvert.","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un code d’erreur et sa raison."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false},"example":{"id":"e8afaf6a-edae-4843-b37d-1833931864b8","ok":true,"link":"/calls/e8afaf6a-edae-4843-b37d-1833931864b8","url":"https://app.arquos.eu/calls/e8afaf6a-edae-4843-b37d-1833931864b8"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"equipmentId":{"type":"string","description":"L’identifiant de l’équipement."},"type":{"type":"string","enum":["personne_bloquee","panne","vandalisme","bruit","arret_client","telealarme"],"description":"personne_bloquee = Personne bloquée ; panne = Panne ; vandalisme = Vandalisme ; bruit = Bruit ou gêne ; arret_client = Arrêt demandé ; telealarme = Téléalarme en défaut"},"caller":{"type":"string","description":"Qui appelle (nom, ou « gardien », « syndic »…)."},"description":{"type":"string","description":"Ce que l’appelant signale, en une phrase."},"technicianId":{"type":"string","description":"L’identifiant du technicien, si l’utilisateur en désigne un."}},"required":["equipmentId","type","caller","description"],"additionalProperties":false}}}}},"get":{"tags":["Appels"],"summary":"Lister les appels","description":"Les appels de vos agences, cherchés sur description, appelant. Chaque ligne porte son lien.","operationId":"getCalls","parameters":[{"name":"q","in":"query","required":false,"description":"Ce qu’on cherche (description, appelant).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Combien de lignes, 50 par défaut, 200 au plus.","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"La page, à partir de 1.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de lignes qui répondent, toutes pages confondues."},"page":{"type":"integer","description":"La page rendue, à partir de 1."},"limit":{"type":"integer","description":"Le nombre de lignes par page (50 par défaut, 200 au plus)."},"results":{"type":"array","description":"Les lignes de la page.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"description":{"type":["string","null"],"description":"Ce qui est signalé. Un texte."},"caller":{"type":["string","null"],"description":"Appelant. Un texte."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","description","caller","link","url"],"additionalProperties":false}}},"required":["total","page","limit","results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/calls/{id}/assign":{"post":{"tags":["Appels"],"summary":"Affecter un appel à un technicien","operationId":"postCallsIdAssign","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’appel affecté.","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un code d’erreur et sa raison."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false},"example":{"id":"e8afaf6a-edae-4843-b37d-1833931864b8","ok":true,"link":"/calls/e8afaf6a-edae-4843-b37d-1833931864b8","url":"https://app.arquos.eu/calls/e8afaf6a-edae-4843-b37d-1833931864b8"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"technicianId":{"type":"string"}},"required":["technicianId"],"additionalProperties":false}}}}}},"/visits/due":{"get":{"tags":["Visites"],"summary":"Les visites d’entretien dues ou en retard","operationId":"getVisitsDue","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre d’équipements dont la visite d’entretien est due."},"late":{"type":"integer","description":"Combien ont dépassé leur date limite."},"shown":{"type":"integer","description":"Le nombre rendu ici."},"visits":{"type":"array","description":"Les plus pressées d’abord.","items":{"type":"object","properties":{"equipmentId":{"type":["string","null"],"description":"L’équipement à visiter.","format":"uuid"},"number":{"type":["string","null"],"description":"Son numéro."},"building":{"type":["string","null"],"description":"Le nom de l’immeuble."},"sector":{"type":["string","null"],"description":"Le secteur de l’équipement."},"technician":{"type":["string","null"],"description":"Le technicien du secteur."},"lastVisitOn":{"type":["string","null"],"description":"Le jour de la dernière visite faite. Au format AAAA-MM-JJ.","format":"date"},"deadline":{"type":["string","null"],"description":"La date à laquelle la prochaine visite est due, d’après le plan de maintenance. Au format AAAA-MM-JJ.","format":"date"},"plannedFor":{"type":["string","null"],"description":"Le jour où elle est planifiée, si elle l’est. Au format AAAA-MM-JJ.","format":"date"},"daysLeft":{"type":["integer","null"],"description":"Les jours avant la date limite ; négatif en retard."}},"required":["equipmentId","number","building","sector","technician","lastVisitOn","deadline","plannedFor","daysLeft"],"additionalProperties":false}}},"required":["total","late","shown","visits"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/planning":{"get":{"tags":["Visites"],"summary":"Le planning des visites d’une semaine","operationId":"getPlanning","parameters":[{"name":"day","in":"query","required":false,"description":"Un jour de la semaine voulue, AAAA-MM-JJ ; la semaine en cours par défaut.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"array","description":"Les visites de la semaine du jour demandé (la semaine en cours par défaut).","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"technicianId":{"type":["string","null"],"description":"Le technicien de la visite.","format":"uuid"},"day":{"type":["string","null"],"description":"Le jour de la visite (le jour où elle a été faite, pour une visite faite). Au format AAAA-MM-JJ.","format":"date"},"status":{"type":["string","null"],"description":"Le statut de la visite (`planifiee`, `faite`…)."},"equipmentId":{"type":["string","null"],"description":"L’équipement visité.","format":"uuid"},"number":{"type":["string","null"],"description":"Son numéro."},"building":{"type":["string","null"],"description":"Le nom de l’immeuble."},"address":{"type":["string","null"],"description":"L’adresse de l’immeuble."},"deadline":{"type":["string","null"],"description":"La date limite de la visite d’après le plan de maintenance. Au format AAAA-MM-JJ.","format":"date"},"overdue":{"type":["boolean","null"],"description":"Planifiée après sa date limite."}},"required":["id","technicianId","day","status","equipmentId","number","building","address","deadline","overdue"],"additionalProperties":false}}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/visits/{id}/move":{"post":{"tags":["Visites"],"summary":"Déplacer une visite","operationId":"postVisitsIdMove","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un code d’erreur et sa raison."},"link":{"type":"string","description":"Le chemin du planning, où la visite se lit à son nouveau jour."},"url":{"type":"string","description":"L’adresse complète du planning.","format":"uri"}},"required":["ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"day":{"type":"string","description":"Le nouveau jour, AAAA-MM-JJ."},"technicianId":{"type":"string","description":"Le technicien qui la fera (le même si inchangé)."}},"required":["day","technicianId"],"additionalProperties":false}}}}}},"/technicians":{"get":{"tags":["Techniciens"],"summary":"Les techniciens","description":"Avec leurs secteurs, leur charge, s’ils sont d’astreinte, absents ou au repos.","operationId":"getTechnicians","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"array","description":"Les techniciens de vos agences, pour affecter un appel.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Le nom du technicien."},"sectors":{"type":["string","null"],"description":"Ses secteurs, séparés par des virgules."},"openCalls":{"type":"integer","description":"Le nombre d’appels en cours qui lui sont affectés."},"onCall":{"type":"boolean","description":"Il est d’astreinte en ce moment."},"absentUntil":{"type":["string","null"],"description":"S’il est absent, jusqu’à quand. Au format AAAA-MM-JJ.","format":"date"},"offUntil":{"type":["string","null"],"description":"S’il est en repos de sécurité après une astreinte, jusqu’à quand."}},"required":["id","name","sectors","openCalls","onCall","absentUntil","offUntil"],"additionalProperties":false}}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/part-requests":{"post":{"tags":["Pièces"],"summary":"Demander une pièce à l’agence","operationId":"postPartRequests","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un code d’erreur et sa raison."},"link":{"type":"string","description":"Le chemin de la liste des demandes de pièces."},"url":{"type":"string","description":"L’adresse complète de cette liste.","format":"uri"}},"required":["ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"equipmentId":{"type":"string","description":"L’identifiant de l’équipement."},"part":{"type":"string","description":"La pièce, par son nom ou sa référence."},"quantity":{"type":"number","description":"Combien, 1 par défaut."},"urgent":{"type":"boolean","description":"Vrai si l’équipement attend la pièce pour repartir."},"rating":{"type":"string","description":"Pourquoi, où, pour quand : ce que le technicien précise."},"visitId":{"type":"string","description":"La visite en cours, si on la connaît."},"callId":{"type":"string","description":"L’appel de dépannage en cours, si on le connaît."}},"required":["equipmentId","part"],"additionalProperties":false}}}}}},"/quotes":{"post":{"tags":["Devis"],"summary":"Préparer un devis en brouillon","description":"Sur un équipement, avec son origine, son objet et ses lignes (libellé, quantité, prix unitaire HT).","operationId":"postQuotes","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du devis préparé, en brouillon.","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un code d’erreur et sa raison."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false},"example":{"id":"e8afaf6a-edae-4843-b37d-1833931864b8","ok":true,"link":"/quotes/e8afaf6a-edae-4843-b37d-1833931864b8","url":"https://app.arquos.eu/quotes/e8afaf6a-edae-4843-b37d-1833931864b8"}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"equipmentId":{"type":"string","description":"L’identifiant de l’équipement."},"origin":{"type":"string","enum":["reserve","panne","technicien","client"],"description":"reserve = Réserve du contrôle technique ; panne = Panne ; technicien = Demande du technicien ; client = Demande du client"},"object":{"type":"string","description":"L’objet du devis, en une phrase."},"rows":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"quantity":{"type":"number"},"unitPrice":{"type":"number","description":"Prix unitaire HT, en euros."}},"required":["label","quantity","unitPrice"],"additionalProperties":false}}},"required":["equipmentId","origin","object","rows"],"additionalProperties":false}}}}},"get":{"tags":["Devis"],"summary":"Lister les devis","description":"Numéro, objet, statut, origine (affaire, réserve, panne…), équipement, et ses dates.","operationId":"getQuotes","parameters":[{"name":"equipment","in":"query","required":false,"description":"L’identifiant de l’équipement.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Le code du statut.","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"Créés à partir de ce jour, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"until","in":"query","required":false,"description":"Créés jusqu’à ce jour inclus, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Combien de lignes, 50 par défaut, 200 au plus.","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"La page, à partir de 1.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de lignes qui répondent, toutes pages confondues."},"page":{"type":"integer","description":"La page rendue, à partir de 1."},"limit":{"type":"integer","description":"Le nombre de lignes par page (50 par défaut, 200 au plus)."},"results":{"type":"array","description":"Les lignes de la page.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["integer","null"],"description":"Le numéro du devis, un entier qui se suit dans l’agence."},"object":{"type":["string","null"],"description":"L’objet du devis."},"status":{"type":["string","null"],"description":"Le code du statut (`brouillon`, `envoye`, `accepte`, `refuse`…)."},"origin":{"type":["string","null"],"description":"D’où vient le devis.","enum":["affaire","reserve","panne","technicien","client",null]},"equipment":{"type":["string","null"],"description":"L’équipement concerné.","format":"uuid"},"deal":{"type":["string","null"],"description":"L’affaire d’origine, s’il en vient d’une.","format":"uuid"},"sentAt":{"type":["string","null"],"description":"Le jour de son envoi au client. Au format AAAA-MM-JJ.","format":"date"},"decidedAt":{"type":["string","null"],"description":"Le jour où le client a accepté ou refusé. Au format AAAA-MM-JJ.","format":"date"},"createdAt":{"type":["string","null"],"description":"Le jour de sa création. Au format AAAA-MM-JJ.","format":"date"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","number","object","status","origin","equipment","deal","sentAt","decidedAt","createdAt","link","url"],"additionalProperties":false}}},"required":["total","page","limit","results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/notes":{"post":{"tags":["Notes"],"summary":"Ajouter une note","description":"Sur équipements, affaires, immeubles, clients, relevés, fournisseurs, appels.","operationId":"postNotes","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de la note créée.","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un code d’erreur et sa raison."},"link":{"type":"string","description":"Le chemin de la fiche où la note se lit (celle de l’objet annoté)."},"url":{"type":"string","description":"L’adresse complète de cette fiche.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["equipment","buildings","clients","contacts","surveys","campaigns","calls","visits","inspections","discrepancies","technicians","sectors","deals","requests","contracts","quotes","invoices","suppliers"],"description":"Le type de l’objet qui porte la note."},"id":{"type":"string","description":"L’identifiant de l’objet."},"title":{"type":"string","description":"Le titre de la note, court."},"text":{"type":"string","description":"Le texte de la note, 1 500 caractères au plus : la carte à confirmer le montre en entier."}},"required":["object","id","title","text"],"additionalProperties":false}}}}}},"/discrepancies":{"get":{"tags":["Écarts et réserves"],"summary":"Lister les écarts et les réserves","description":"Les plus récents d’abord : constat, composant, action décidée, statut, gravité, échéance et levée.","operationId":"getDiscrepancies","parameters":[{"name":"equipment","in":"query","required":false,"description":"L’identifiant de l’équipement.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Le statut de l’écart.","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"Créés à partir de ce jour, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"until","in":"query","required":false,"description":"Créés jusqu’à ce jour inclus, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Combien de lignes, 50 par défaut, 200 au plus.","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"La page, à partir de 1.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de lignes qui répondent, toutes pages confondues."},"page":{"type":"integer","description":"La page rendue, à partir de 1."},"limit":{"type":"integer","description":"Le nombre de lignes par page (50 par défaut, 200 au plus)."},"results":{"type":"array","description":"Les lignes de la page.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"equipment":{"type":["string","null"],"description":"L’équipement concerné.","format":"uuid"},"survey":{"type":["string","null"],"description":"Le relevé où l’écart a été constaté, s’il vient d’un relevé.","format":"uuid"},"component":{"type":["string","null"],"description":"Le composant en cause (`car_door`, `machine`…), ou `null`."},"finding":{"type":["string","null"],"description":"Ce qui a été constaté."},"action":{"type":["string","null"],"description":"L’action décidée (une des actions de l’agence, ou un texte libre), ou `null` tant que l’écart n’est pas qualifié."},"status":{"type":["string","null"],"description":"`ouvert` ou `resolu`.","enum":["ouvert","resolu",null]},"severity":{"type":["string","null"],"description":"Pour une réserve de contrôle technique : `danger_grave` (7 jours), `a_corriger` (90 jours) ou `observation` (365 jours).","enum":["danger_grave","a_corriger","observation",null]},"origin":{"type":["string","null"],"description":"D’où vient l’écart : un relevé, un contrôle technique (une réserve), un technicien, une réception.","enum":["releve","controle","technicien","reception",null]},"dueOn":{"type":["string","null"],"description":"La date limite pour le lever. Au format AAAA-MM-JJ.","format":"date"},"liftedOn":{"type":["string","null"],"description":"Le jour où il a été levé. Au format AAAA-MM-JJ.","format":"date"},"createdAt":{"type":["string","null"],"description":"Le jour de sa création. Au format AAAA-MM-JJ.","format":"date"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","equipment","survey","component","finding","action","status","severity","origin","dueOn","liftedOn","createdAt","link","url"],"additionalProperties":false}}},"required":["total","page","limit","results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"post":{"tags":["Écarts et réserves"],"summary":"Signaler un écart","description":"Sur un équipement, rattaché à un de ses relevés, et éventuellement à un composant.","operationId":"postDiscrepancies","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’écart signalé.","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un code d’erreur et sa raison."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"equipmentId":{"type":"string","description":"L’identifiant de l’équipement."},"surveyId":{"type":"string","description":"L’identifiant du relevé de cet équipement."},"component":{"type":"string","description":"La clé du composant (car_door, machine…) ; absent pour l’équipement entier."},"finding":{"type":"string","description":"Ce qui a été constaté, en une ou deux phrases."}},"required":["equipmentId","surveyId","finding"],"additionalProperties":false}}}}}},"/contracts":{"get":{"tags":["Contrats"],"summary":"Lister les contrats","description":"Numéro, formule, client, statut, date d’effet, durée, reconduction et prix.","operationId":"getContracts","parameters":[{"name":"client","in":"query","required":false,"description":"L’identifiant du client.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Le code du statut (en_vigueur…).","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"Créés à partir de ce jour, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"until","in":"query","required":false,"description":"Créés jusqu’à ce jour inclus, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Combien de lignes, 50 par défaut, 200 au plus.","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"La page, à partir de 1.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de lignes qui répondent, toutes pages confondues."},"page":{"type":"integer","description":"La page rendue, à partir de 1."},"limit":{"type":"integer","description":"Le nombre de lignes par page (50 par défaut, 200 au plus)."},"results":{"type":"array","description":"Les lignes de la page.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["string","null"],"description":"Le numéro du contrat."},"plan":{"type":["string","null"],"description":"La formule : `minimal` ou `etendu`.","enum":["minimal","etendu",null]},"client":{"type":["string","null"],"description":"Le client du contrat.","format":"uuid"},"clientName":{"type":["string","null"],"description":"Le nom du client."},"status":{"type":["string","null"],"description":"Le code du statut (`en_vigueur`, `resilie`…)."},"effectiveOn":{"type":["string","null"],"description":"La date d’effet. Au format AAAA-MM-JJ.","format":"date"},"durationMonths":{"type":["integer","null"],"description":"La durée, en mois."},"renewal":{"type":["boolean","null"],"description":"Reconduit tacitement à son terme."},"annualPrice":{"type":["number","null"],"description":"Le prix annuel convenu, en euros HT."},"totalExclTax":{"type":["number","null"],"description":"Le total calculé du contrat, en euros HT."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","number","plan","client","clientName","status","effectiveOn","durationMonths","renewal","annualPrice","totalExclTax","link","url"],"additionalProperties":false}}},"required":["total","page","limit","results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"post":{"tags":["Contrats"],"summary":"Créer un contrat","description":"Dans l’agence de l’en-tête X-Arquos-Agency. Voir GET /contracts/creation pour les champs.","operationId":"postContracts","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du nouvel objet (contrat).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les valeurs, par identifiant de champ (voir champs_de_creation).","additionalProperties":{"type":"string"}},"parentId":{"type":"string","description":"L’identifiant de l’objet parent, quand le type en demande un."}},"required":["fields"],"additionalProperties":false}}}}}},"/invoices":{"get":{"tags":["Factures"],"summary":"Lister les factures et les avoirs","description":"Numéro, nature, statut, client, dates d’émission, d’échéance et de paiement, montants.","operationId":"getInvoices","parameters":[{"name":"client","in":"query","required":false,"description":"L’identifiant du client.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Le statut de la facture.","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"Créés à partir de ce jour, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"until","in":"query","required":false,"description":"Créés jusqu’à ce jour inclus, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Combien de lignes, 50 par défaut, 200 au plus.","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"La page, à partir de 1.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de lignes qui répondent, toutes pages confondues."},"page":{"type":"integer","description":"La page rendue, à partir de 1."},"limit":{"type":"integer","description":"Le nombre de lignes par page (50 par défaut, 200 au plus)."},"results":{"type":"array","description":"Les lignes de la page.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["string","null"],"description":"Le numéro de la facture ; `null` tant qu’elle est en brouillon."},"nature":{"type":"string","description":"`facture` ou `avoir`.","enum":["facture","avoir"]},"status":{"type":"string","description":"Où elle en est.","enum":["brouillon","emise","envoyee","payee"]},"client":{"type":["string","null"],"description":"Le client facturé.","format":"uuid"},"buyer":{"type":["string","null"],"description":"Le nom de l’acheteur tel qu’il figure sur la facture."},"issuedOn":{"type":["string","null"],"description":"Sa date d’émission. Au format AAAA-MM-JJ.","format":"date"},"dueOn":{"type":["string","null"],"description":"Sa date d’échéance. Au format AAAA-MM-JJ.","format":"date"},"paidOn":{"type":["string","null"],"description":"Le jour de son paiement. Au format AAAA-MM-JJ.","format":"date"},"totalExclTax":{"type":["number","null"],"description":"Le total hors taxes, en euros."},"totalInclTax":{"type":["number","null"],"description":"Le total toutes taxes, en euros."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","number","nature","status","client","buyer","issuedOn","dueOn","paidOn","totalExclTax","totalInclTax","link","url"],"additionalProperties":false}}},"required":["total","page","limit","results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/clients/creation":{"get":{"tags":["Clients"],"summary":"Ce qu’il faut pour créer un client","description":"Les champs (obligatoires ou non, valeurs admises) et l’objet parent que la création demande.","operationId":"getClientsCreation","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["client"]},"parent":{"type":["object","null"],"description":"L’objet auquel il faut le rattacher (`parentId` à la création), ou `null`.","properties":{"label":{"type":"string","description":"Le nom du champ parent (« Immeuble », « Client »…)."},"object":{"type":"string","description":"Le type de l’objet parent, tel que la recherche le rend."},"required":{"type":"boolean","description":"Toujours `true` : sans parent, la création est refusée."}},"required":["label","object","required"],"additionalProperties":false},"fields":{"type":"array","description":"Les champs qu’on peut remplir à la création.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du champ, la clé à envoyer dans `champs` à la création."},"label":{"type":"string","description":"Son libellé, tel qu’il se lit dans Arquos."},"required":{"type":"boolean","description":"Sans lui, la création est refusée (422)."},"type":{"type":"string","description":"Le genre de valeur attendue.","enum":["text","number","choice","multi","email","date"]},"values":{"type":["array","null"],"items":{"type":"string"},"description":"Les valeurs admises pour un choix ; `null` sinon."}},"required":["id","label","required","type","values"],"additionalProperties":false}}},"required":["type","parent","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/clients":{"post":{"tags":["Clients"],"summary":"Créer un client","description":"Dans l’agence de l’en-tête X-Arquos-Agency. Voir GET /clients/creation pour les champs.","operationId":"postClients","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du nouvel objet (client).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les valeurs, par identifiant de champ (voir champs_de_creation).","additionalProperties":{"type":"string"}},"parentId":{"type":"string","description":"L’identifiant de l’objet parent, quand le type en demande un."}},"required":["fields"],"additionalProperties":false}}}}},"get":{"tags":["Clients"],"summary":"Lister les clients","description":"Les clients de vos agences, cherchés sur nom, numeroClient. Chaque ligne porte son lien.","operationId":"getClients","parameters":[{"name":"q","in":"query","required":false,"description":"Ce qu’on cherche (nom, numeroClient).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Combien de lignes, 50 par défaut, 200 au plus.","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"La page, à partir de 1.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de lignes qui répondent, toutes pages confondues."},"page":{"type":"integer","description":"La page rendue, à partir de 1."},"limit":{"type":"integer","description":"Le nombre de lignes par page (50 par défaut, 200 au plus)."},"results":{"type":"array","description":"Les lignes de la page.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Nom. Un texte."},"clientNumber":{"type":["string","null"],"description":"N° de client. Un texte."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","name","clientNumber","link","url"],"additionalProperties":false}}},"required":["total","page","limit","results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/buildings/creation":{"get":{"tags":["Immeubles"],"summary":"Ce qu’il faut pour créer un immeuble","description":"Les champs (obligatoires ou non, valeurs admises) et l’objet parent que la création demande.","operationId":"getBuildingsCreation","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["immeuble"]},"parent":{"type":["object","null"],"description":"L’objet auquel il faut le rattacher (`parentId` à la création), ou `null`.","properties":{"label":{"type":"string","description":"Le nom du champ parent (« Immeuble », « Client »…)."},"object":{"type":"string","description":"Le type de l’objet parent, tel que la recherche le rend."},"required":{"type":"boolean","description":"Toujours `true` : sans parent, la création est refusée."}},"required":["label","object","required"],"additionalProperties":false},"fields":{"type":"array","description":"Les champs qu’on peut remplir à la création.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du champ, la clé à envoyer dans `champs` à la création."},"label":{"type":"string","description":"Son libellé, tel qu’il se lit dans Arquos."},"required":{"type":"boolean","description":"Sans lui, la création est refusée (422)."},"type":{"type":"string","description":"Le genre de valeur attendue.","enum":["text","number","choice","multi","email","date"]},"values":{"type":["array","null"],"items":{"type":"string"},"description":"Les valeurs admises pour un choix ; `null` sinon."}},"required":["id","label","required","type","values"],"additionalProperties":false}}},"required":["type","parent","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/buildings":{"post":{"tags":["Immeubles"],"summary":"Créer un immeuble","description":"Dans l’agence de l’en-tête X-Arquos-Agency. Voir GET /buildings/creation pour les champs.","operationId":"postBuildings","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du nouvel objet (immeuble).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les valeurs, par identifiant de champ (voir champs_de_creation).","additionalProperties":{"type":"string"}},"parentId":{"type":"string","description":"L’identifiant de l’objet parent, quand le type en demande un."}},"required":["fields"],"additionalProperties":false}}}}},"get":{"tags":["Immeubles"],"summary":"Lister les immeubles","description":"Les immeubles de vos agences, cherchés sur nom, adresse. Chaque ligne porte son lien.","operationId":"getBuildings","parameters":[{"name":"q","in":"query","required":false,"description":"Ce qu’on cherche (nom, adresse).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Combien de lignes, 50 par défaut, 200 au plus.","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"La page, à partir de 1.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de lignes qui répondent, toutes pages confondues."},"page":{"type":"integer","description":"La page rendue, à partir de 1."},"limit":{"type":"integer","description":"Le nombre de lignes par page (50 par défaut, 200 au plus)."},"results":{"type":"array","description":"Les lignes de la page.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Nom. Un texte."},"address":{"type":["string","null"],"description":"Adresse. Un texte."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","name","address","link","url"],"additionalProperties":false}}},"required":["total","page","limit","results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/contacts/creation":{"get":{"tags":["Contacts"],"summary":"Ce qu’il faut pour créer un contact","description":"Les champs (obligatoires ou non, valeurs admises) et l’objet parent que la création demande.","operationId":"getContactsCreation","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["contact"]},"parent":{"type":["object","null"],"description":"L’objet auquel il faut le rattacher (`parentId` à la création), ou `null`.","properties":{"label":{"type":"string","description":"Le nom du champ parent (« Immeuble », « Client »…)."},"object":{"type":"string","description":"Le type de l’objet parent, tel que la recherche le rend."},"required":{"type":"boolean","description":"Toujours `true` : sans parent, la création est refusée."}},"required":["label","object","required"],"additionalProperties":false},"fields":{"type":"array","description":"Les champs qu’on peut remplir à la création.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du champ, la clé à envoyer dans `champs` à la création."},"label":{"type":"string","description":"Son libellé, tel qu’il se lit dans Arquos."},"required":{"type":"boolean","description":"Sans lui, la création est refusée (422)."},"type":{"type":"string","description":"Le genre de valeur attendue.","enum":["text","number","choice","multi","email","date"]},"values":{"type":["array","null"],"items":{"type":"string"},"description":"Les valeurs admises pour un choix ; `null` sinon."}},"required":["id","label","required","type","values"],"additionalProperties":false}}},"required":["type","parent","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/contacts":{"post":{"tags":["Contacts"],"summary":"Créer un contact","description":"Dans l’agence de l’en-tête X-Arquos-Agency. Voir GET /contacts/creation pour les champs.","operationId":"postContacts","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du nouvel objet (contact).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les valeurs, par identifiant de champ (voir champs_de_creation).","additionalProperties":{"type":"string"}},"parentId":{"type":"string","description":"L’identifiant de l’objet parent, quand le type en demande un."}},"required":["fields"],"additionalProperties":false}}}}},"get":{"tags":["Contacts"],"summary":"Lister les contacts","description":"Les contacts de vos agences, cherchés sur nom, email. Chaque ligne porte son lien.","operationId":"getContacts","parameters":[{"name":"q","in":"query","required":false,"description":"Ce qu’on cherche (nom, email).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Combien de lignes, 50 par défaut, 200 au plus.","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"La page, à partir de 1.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de lignes qui répondent, toutes pages confondues."},"page":{"type":"integer","description":"La page rendue, à partir de 1."},"limit":{"type":"integer","description":"Le nombre de lignes par page (50 par défaut, 200 au plus)."},"results":{"type":"array","description":"Les lignes de la page.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"name":{"type":["string","null"],"description":"Nom. Un texte."},"email":{"type":["string","null"],"description":"Email. Une adresse email."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","name","email","link","url"],"additionalProperties":false}}},"required":["total","page","limit","results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/sectors/creation":{"get":{"tags":["Secteurs"],"summary":"Ce qu’il faut pour créer un secteur","description":"Les champs (obligatoires ou non, valeurs admises) et l’objet parent que la création demande.","operationId":"getSectorsCreation","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["secteur"]},"parent":{"type":["object","null"],"description":"L’objet auquel il faut le rattacher (`parentId` à la création), ou `null`.","properties":{"label":{"type":"string","description":"Le nom du champ parent (« Immeuble », « Client »…)."},"object":{"type":"string","description":"Le type de l’objet parent, tel que la recherche le rend."},"required":{"type":"boolean","description":"Toujours `true` : sans parent, la création est refusée."}},"required":["label","object","required"],"additionalProperties":false},"fields":{"type":"array","description":"Les champs qu’on peut remplir à la création.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du champ, la clé à envoyer dans `champs` à la création."},"label":{"type":"string","description":"Son libellé, tel qu’il se lit dans Arquos."},"required":{"type":"boolean","description":"Sans lui, la création est refusée (422)."},"type":{"type":"string","description":"Le genre de valeur attendue.","enum":["text","number","choice","multi","email","date"]},"values":{"type":["array","null"],"items":{"type":"string"},"description":"Les valeurs admises pour un choix ; `null` sinon."}},"required":["id","label","required","type","values"],"additionalProperties":false}}},"required":["type","parent","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/sectors":{"post":{"tags":["Secteurs"],"summary":"Créer un secteur","description":"Dans l’agence de l’en-tête X-Arquos-Agency. Voir GET /sectors/creation pour les champs.","operationId":"postSectors","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"201":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du nouvel objet (secteur).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les valeurs, par identifiant de champ (voir champs_de_creation).","additionalProperties":{"type":"string"}},"parentId":{"type":"string","description":"L’identifiant de l’objet parent, quand le type en demande un."}},"required":["fields"],"additionalProperties":false}}}}}},"/contracts/creation":{"get":{"tags":["Contrats"],"summary":"Ce qu’il faut pour créer un contrat","description":"Les champs (obligatoires ou non, valeurs admises) et l’objet parent que la création demande.","operationId":"getContractsCreation","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["contrat"]},"parent":{"type":["object","null"],"description":"L’objet auquel il faut le rattacher (`parentId` à la création), ou `null`.","properties":{"label":{"type":"string","description":"Le nom du champ parent (« Immeuble », « Client »…)."},"object":{"type":"string","description":"Le type de l’objet parent, tel que la recherche le rend."},"required":{"type":"boolean","description":"Toujours `true` : sans parent, la création est refusée."}},"required":["label","object","required"],"additionalProperties":false},"fields":{"type":"array","description":"Les champs qu’on peut remplir à la création.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du champ, la clé à envoyer dans `champs` à la création."},"label":{"type":"string","description":"Son libellé, tel qu’il se lit dans Arquos."},"required":{"type":"boolean","description":"Sans lui, la création est refusée (422)."},"type":{"type":"string","description":"Le genre de valeur attendue.","enum":["text","number","choice","multi","email","date"]},"values":{"type":["array","null"],"items":{"type":"string"},"description":"Les valeurs admises pour un choix ; `null` sinon."}},"required":["id","label","required","type","values"],"additionalProperties":false}}},"required":["type","parent","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/calls/creation":{"get":{"tags":["Appels"],"summary":"Ce qu’il faut pour créer un appel","description":"Les champs (obligatoires ou non, valeurs admises) et l’objet parent que la création demande.","operationId":"getCallsCreation","parameters":[{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["appel"]},"parent":{"type":["object","null"],"description":"L’objet auquel il faut le rattacher (`parentId` à la création), ou `null`.","properties":{"label":{"type":"string","description":"Le nom du champ parent (« Immeuble », « Client »…)."},"object":{"type":"string","description":"Le type de l’objet parent, tel que la recherche le rend."},"required":{"type":"boolean","description":"Toujours `true` : sans parent, la création est refusée."}},"required":["label","object","required"],"additionalProperties":false},"fields":{"type":"array","description":"Les champs qu’on peut remplir à la création.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant du champ, la clé à envoyer dans `champs` à la création."},"label":{"type":"string","description":"Son libellé, tel qu’il se lit dans Arquos."},"required":{"type":"boolean","description":"Sans lui, la création est refusée (422)."},"type":{"type":"string","description":"Le genre de valeur attendue.","enum":["text","number","choice","multi","email","date"]},"values":{"type":["array","null"],"items":{"type":"string"},"description":"Les valeurs admises pour un choix ; `null` sinon."}},"required":["id","label","required","type","values"],"additionalProperties":false}}},"required":["type","parent","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/equipment":{"get":{"tags":["Équipements"],"summary":"Lister les équipements","description":"Les équipements de vos agences, cherchés sur numero, numeroDeSerie. Chaque ligne porte son lien.","operationId":"getEquipment","parameters":[{"name":"q","in":"query","required":false,"description":"Ce qu’on cherche (numero, numeroDeSerie).","schema":{"type":"string"}},{"name":"agency","in":"query","required":false,"description":"L’identifiant de l’agence, parmi celles du jeton.","schema":{"type":"string"}},{"name":"contract","in":"query","required":false,"description":"Le contrat d’entretien : parc ou hors_parc.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Le type d’équipement (ascenseur, monte_charge…).","schema":{"type":"string"}},{"name":"building","in":"query","required":false,"description":"L’identifiant de l’immeuble.","schema":{"type":"string"}},{"name":"modifiedSince","in":"query","required":false,"description":"Modifiés à partir de ce jour, AAAA-MM-JJ.","schema":{"type":"string"}},{"name":"ids","in":"query","required":false,"description":"Des identifiants séparés par des virgules, 100 au plus : une lecture par lot.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Combien de lignes, 50 par défaut, 200 au plus.","schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"description":"La page, à partir de 1.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer","description":"Le nombre de lignes qui répondent, toutes pages confondues."},"page":{"type":"integer","description":"La page rendue, à partir de 1."},"limit":{"type":"integer","description":"Le nombre de lignes par page (50 par défaut, 200 au plus)."},"results":{"type":"array","description":"Les lignes de la page.","items":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"number":{"type":["string","null"],"description":"La colonne equipment_number."},"serialNumber":{"type":["string","null"],"description":"La colonne serial_number."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","number","serialNumber","link","url"],"additionalProperties":false}}},"required":["total","page","limit","results"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}}},"/buildings/{id}":{"get":{"tags":["Immeubles"],"summary":"Lire un immeuble","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getBuildingsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["immeuble"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"name":{"type":["string","null"],"description":"Nom. Un texte."},"address":{"type":["string","null"],"description":"Adresse. Un texte."},"type":{"type":["string","null"],"description":"Type. Valeurs possibles : `residentiel` (Résidentiel), `tertiaire` (Tertiaire), `hotel` (Hôtel), `hopital` (Hôpital), `autre` (Autre)."},"typeOther":{"type":["string","null"],"description":"Type, précisé. Un texte."},"ownerType":{"type":["string","null"],"description":"Type de propriétaire. Valeurs possibles : `sdc` (Syndicat de copropriété), `autre` (Autre)."},"accessCode":{"type":["string","null"],"description":"Code d'accès. Un texte."},"keySafeType":{"type":["string","null"],"description":"Type de coffre à clé. Un texte."},"accessOther":{"type":["string","null"],"description":"Autre consigne. Un texte."},"contract":{"type":["string","null"],"description":"Contrat de maintenance. Valeurs possibles : `parc` (Parc), `hors_parc` (Hors parc)."}},"required":["name","address","type","typeOther","ownerType","accessCode","keySafeType","accessOther","contract"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Immeubles"],"summary":"Modifier un immeuble","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchBuildingsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (immeuble).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/clients/{id}":{"get":{"tags":["Clients"],"summary":"Lire un client","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getClientsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["client"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"name":{"type":["string","null"],"description":"Nom. Un texte."},"status":{"type":["string","null"],"description":"Statut. Valeurs possibles : `client` (Client), `prospect` (Prospect)."},"clientNumber":{"type":["string","null"],"description":"N° de client. Un texte."},"clientType":{"type":["string","null"],"description":"Type. Valeurs possibles : `syndic` (Syndic), `bailleur_social` (Bailleur social), `bailleur_prive` (Bailleur privé), `copropriete` (Copropriété), `collectivite` (Collectivité), `entreprise` (Société), `particulier` (Particulier), `autre` (Autre)."},"address":{"type":["string","null"],"description":"Adresse. Un texte."},"address2":{"type":["string","null"],"description":"Complément d'adresse. Un texte."},"phone":{"type":["string","null"],"description":"Téléphone. Un texte."},"email":{"type":["string","null"],"description":"Email. Une adresse email."},"siren":{"type":["string","null"],"description":"SIREN. Un texte."},"siret":{"type":["string","null"],"description":"SIRET. Un texte."}},"required":["name","status","clientNumber","clientType","address","address2","phone","email","siren","siret"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Clients"],"summary":"Modifier un client","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchClientsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (client).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/contacts/{id}":{"get":{"tags":["Contacts"],"summary":"Lire un contact","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getContactsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["contact"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"fullName":{"type":["string","null"],"description":"Nom. Un texte."},"role":{"type":["string","null"],"description":"Rôle. Un texte."},"email":{"type":["string","null"],"description":"Email. Une adresse email."},"phone":{"type":["string","null"],"description":"Téléphone. Un texte."}},"required":["fullName","role","email","phone"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Contacts"],"summary":"Modifier un contact","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchContactsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (contact).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/surveys/{id}":{"get":{"tags":["Relevés"],"summary":"Lire un relevé","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getSurveysId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["relevé"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"number":{"type":["string","null"],"description":"Numéro. Un texte."},"status":{"type":["string","null"],"description":"Statut. Un texte."},"type":{"type":["string","null"],"description":"Type. Un texte."},"surveyedOn":{"type":["string","null"],"description":"Relevé le. Une date, au format JJ/MM/AAAA."},"dueOn":{"type":["string","null"],"description":"Échéance. Une date, au format JJ/MM/AAAA."},"fieldCount":{"type":["string","null"],"description":"Champs relevés. Un texte."},"photoCount":{"type":["string","null"],"description":"Photos prises. Un texte."}},"required":["number","status","type","surveyedOn","dueOn","fieldCount","photoCount"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Relevés"],"summary":"Modifier un relevé","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchSurveysId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (relevé).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/campaigns/{id}":{"get":{"tags":["Campagnes"],"summary":"Lire une campagne","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getCampaignsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["campagne"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"name":{"type":["string","null"],"description":"Nom. Un texte."},"kind":{"type":["string","null"],"description":"Type. Valeurs possibles : `releve` (Relevé), `remplacement` (Remplacement)."},"status":{"type":["string","null"],"description":"État. Valeurs possibles : `brouillon` (Brouillon), `en_cours` (En cours), `terminee` (Terminée)."},"intention":{"type":["string","null"],"description":"Ce qu’on cherche. Un texte."}},"required":["name","kind","status","intention"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Campagnes"],"summary":"Modifier une campagne","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchCampaignsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (campagne).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/calls/{id}":{"get":{"tags":["Appels"],"summary":"Lire un appel","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getCallsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["appel"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"kind":{"type":["string","null"],"description":"Type. Valeurs possibles : `personne_bloquee` (Personne bloquée), `panne` (Panne), `vandalisme` (Vandalisme), `bruit` (Bruit ou gêne), `arret_client` (Arrêt demandé), `telealarme` (Téléalarme en défaut)."},"description":{"type":["string","null"],"description":"Ce qui est signalé. Un texte."},"caller":{"type":["string","null"],"description":"Appelant. Un texte."},"receivedAt":{"type":["string","null"],"description":"Reçu le. Une date et une heure, au format JJ/MM/AAAA HH:MM."},"status":{"type":["string","null"],"description":"Statut. Valeurs possibles : `ouverte` (Non affecté), `en_route` (En route), `sur_place` (Sur place), `a_l_arret` (À l’arrêt), `resolue` (Résolu)."},"dispatchedAt":{"type":["string","null"],"description":"Pris en charge à. Une date et une heure, au format JJ/MM/AAAA HH:MM."},"arrivedAt":{"type":["string","null"],"description":"Arrivée sur place. Une date et une heure, au format JJ/MM/AAAA HH:MM."},"releasedAt":{"type":["string","null"],"description":"Personne libérée à. Une date et une heure, au format JJ/MM/AAAA HH:MM."},"resolvedAt":{"type":["string","null"],"description":"Remis en service le. Une date et une heure, au format JJ/MM/AAAA HH:MM."},"cause":{"type":["string","null"],"description":"Cause. Un texte."},"component":{"type":["string","null"],"description":"Composant. Un texte."},"workDone":{"type":["string","null"],"description":"Travaux réalisés. Un texte."},"signedBy":{"type":["string","null"],"description":"Signé par. Un texte."},"stoppedReason":{"type":["string","null"],"description":"Motif de l’arrêt. Un texte."},"restartExpected":{"type":["string","null"],"description":"Remise en service prévue. Une date, au format JJ/MM/AAAA."}},"required":["kind","description","caller","receivedAt","status","dispatchedAt","arrivedAt","releasedAt","resolvedAt","cause","component","workDone","signedBy","stoppedReason","restartExpected"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Appels"],"summary":"Modifier un appel","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchCallsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (appel).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/visits/{id}":{"get":{"tags":["Visites"],"summary":"Lire une visite","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getVisitsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["visite"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"plannedFor":{"type":["string","null"],"description":"Prévue le. Une date, au format JJ/MM/AAAA."},"status":{"type":["string","null"],"description":"Statut. Valeurs possibles : `planifiee` (Planifiée), `en_cours` (En cours), `faite` (Faite)."},"arrivedAt":{"type":["string","null"],"description":"Arrivée. Une date et une heure, au format JJ/MM/AAAA HH:MM."},"leftAt":{"type":["string","null"],"description":"Départ. Une date et une heure, au format JJ/MM/AAAA HH:MM."},"signedBy":{"type":["string","null"],"description":"Signé par. Un texte."},"observations":{"type":["string","null"],"description":"Observations. Un texte."}},"required":["plannedFor","status","arrivedAt","leftAt","signedBy","observations"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Visites"],"summary":"Modifier une visite","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchVisitsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (visite).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/inspections/{id}":{"get":{"tags":["Contrôles techniques"],"summary":"Lire un contrôle technique","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getInspectionsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["contrôle technique"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"performedOn":{"type":["string","null"],"description":"Réalisé le. Une date, au format JJ/MM/AAAA."},"inspector":{"type":["string","null"],"description":"Organisme. Un texte."},"reportFilename":{"type":["string","null"],"description":"Rapport. Un texte."}},"required":["performedOn","inspector","reportFilename"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Contrôles techniques"],"summary":"Modifier un contrôle technique","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchInspectionsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (contrôle technique).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/discrepancies/{id}":{"get":{"tags":["Écarts et réserves"],"summary":"Lire un écart","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getDiscrepanciesId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["écart"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"note":{"type":["string","null"],"description":"Saisi sur place. Un texte."},"origin":{"type":["string","null"],"description":"Origine. Valeurs possibles : `releve` (Relevé), `controle` (Contrôle technique), `technicien` (Technicien), `reception` (Réception des travaux)."},"source":{"type":["string","null"],"description":"Source. Valeurs possibles : `constate` (Constaté au relevé), `detecte` (Détecté par une règle)."},"observedOn":{"type":["string","null"],"description":"Constaté le. Une date, au format JJ/MM/AAAA."},"severity":{"type":["string","null"],"description":"Gravité. Valeurs possibles : `danger_grave` (Danger grave), `a_corriger` (À corriger), `observation` (Observation)."},"dueOn":{"type":["string","null"],"description":"À lever avant le. Une date, au format JJ/MM/AAAA."},"liftedOn":{"type":["string","null"],"description":"Levé le. Une date, au format JJ/MM/AAAA."},"liftedBy":{"type":["string","null"],"description":"Par. Un texte."},"proof":{"type":["string","null"],"description":"Ce qui a été fait. Un texte."},"action":{"type":["string","null"],"description":"À faire. Un texte."},"status":{"type":["string","null"],"description":"Statut. Valeurs possibles : `ouvert` (Ouvert), `resolu` (Résolu)."},"qualifiedAt":{"type":["string","null"],"description":"Qualifié le. Une date, au format JJ/MM/AAAA."}},"required":["note","origin","source","observedOn","severity","dueOn","liftedOn","liftedBy","proof","action","status","qualifiedAt"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Écarts et réserves"],"summary":"Modifier un écart","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchDiscrepanciesId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (écart).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/sectors/{id}":{"get":{"tags":["Secteurs"],"summary":"Lire un secteur","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getSectorsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["secteur"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"code":{"type":["string","null"],"description":"Code. Un texte."},"label":{"type":["string","null"],"description":"Libellé. Un texte."}},"required":["code","label"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Secteurs"],"summary":"Modifier un secteur","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchSectorsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (secteur).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/deals/{id}":{"get":{"tags":["Affaires"],"summary":"Lire une affaire","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getDealsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["affaire"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"name":{"type":["string","null"],"description":"Nom. Un texte."},"type":{"type":["string","null"],"description":"Type. Un texte."},"withQuote":{"type":["string","null"],"description":"Un devis. `Oui` ou `Non`."},"withContract":{"type":["string","null"],"description":"Un contrat. `Oui` ou `Non`."},"collectionMode":{"type":["string","null"],"description":"Collecte. Valeurs possibles : `sur_site` (Relevé sur site), `donnees_existantes` (Données existantes), `entree_directe` (Entrée directe)."},"supplierSolicitation":{"type":["string","null"],"description":"Sollicitation des fournisseurs. `Oui` ou `Non`."},"needOwner":{"type":["string","null"],"description":"Personne en charge du besoin. Un texte."},"stage":{"type":["string","null"],"description":"Étape. Un texte."},"status":{"type":["string","null"],"description":"Avancement du travail. Un texte."},"category":{"type":["string","null"],"description":"Statut de l’affaire. Un texte."},"amount":{"type":["string","null"],"description":"Montant estimé HT. Un montant en euros, mis en forme à la française (« 2 872,68 € »)."},"surveyDeadline":{"type":["string","null"],"description":"Relevé attendu. Une date, au format JJ/MM/AAAA."},"supplierReplyDueOn":{"type":["string","null"],"description":"Réponse fournisseur attendue. Une date, au format JJ/MM/AAAA."},"offerSubmissionOn":{"type":["string","null"],"description":"Offre remise le. Une date, au format JJ/MM/AAAA."},"decisionOn":{"type":["string","null"],"description":"Décision le. Une date, au format JJ/MM/AAAA."},"signatureOn":{"type":["string","null"],"description":"Signée le. Une date, au format JJ/MM/AAAA."},"contractStartOn":{"type":["string","null"],"description":"Contrat démarré le. Une date, au format JJ/MM/AAAA."}},"required":["name","type","withQuote","withContract","collectionMode","supplierSolicitation","needOwner","stage","status","category","amount","surveyDeadline","supplierReplyDueOn","offerSubmissionOn","decisionOn","signatureOn","contractStartOn"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Affaires"],"summary":"Modifier une affaire","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchDealsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (affaire).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/requests/{id}":{"get":{"tags":["Sollicitations"],"summary":"Lire une sollicitation","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getRequestsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["sollicitation"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"status":{"type":["string","null"],"description":"Statut. Un texte."},"sentAt":{"type":["string","null"],"description":"Envoyée le. Une date, au format JJ/MM/AAAA."},"quoteDueOn":{"type":["string","null"],"description":"Devis attendu pour. Une date, au format JJ/MM/AAAA."},"responseDays":{"type":["string","null"],"description":"Délai laissé (jours). Un texte."},"declinedReason":{"type":["string","null"],"description":"Motif du refus. Un texte."},"validatedAt":{"type":["string","null"],"description":"Validée le. Une date, au format JJ/MM/AAAA."}},"required":["status","sentAt","quoteDueOn","responseDays","declinedReason","validatedAt"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Sollicitations"],"summary":"Modifier une sollicitation","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchRequestsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (sollicitation).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/contracts/{id}":{"get":{"tags":["Contrats"],"summary":"Lire un contrat","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getContractsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["contrat"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"number":{"type":["string","null"],"description":"Numéro. Un texte."},"type":{"type":["string","null"],"description":"Formule. Valeurs possibles : `minimal` (Minimale), `etendu` (Étendue), `complet` (Garantie totale)."},"equipmentSubtype":{"type":["string","null"],"description":"Type d’équipement couvert. Un texte."},"sdcName":{"type":["string","null"],"description":"Syndicat de copropriété. Un texte."},"status":{"type":["string","null"],"description":"Statut. Un texte."},"effectiveOn":{"type":["string","null"],"description":"Date d’effet. Une date, au format JJ/MM/AAAA."},"durationMonths":{"type":["string","null"],"description":"Durée (mois). Un nombre, mis en forme à la française (virgule décimale)."},"tacitRenewal":{"type":["string","null"],"description":"Reconduction tacite. Valeurs possibles : `true` (Oui), `false` (Non)."},"noticeMonths":{"type":["string","null"],"description":"Préavis (mois). Un nombre, mis en forme à la française (virgule décimale)."},"visitEveryWeeks":{"type":["string","null"],"description":"Visites d’entretien. Valeurs possibles : `4` (Toutes les 4 semaines), `6` (Toutes les 6 semaines), `8` (Toutes les 8 semaines), `13` (Tous les 3 mois), `26` (Tous les 6 mois), `52` (Une fois par an)."},"terminatedOn":{"type":["string","null"],"description":"Résilié le. Une date, au format JJ/MM/AAAA."},"terminationReason":{"type":["string","null"],"description":"Motif de résiliation. Valeurs possibles : `echeance` (À l’échéance, dans le délai de préavis), `manquement_grave` (Manquement grave prévu au contrat), `travaux_importants` (Travaux importants confiés à un autre ascensoriste), `defaut_avis_chatel` (Reconduction sans avis de la loi Chatel)."},"terminationNote":{"type":["string","null"],"description":"Précision. Un texte."},"billingGroup":{"type":["string","null"],"description":"Groupe de facturation. Un texte."},"warrantyUntil":{"type":["string","null"],"description":"Fin de garantie. Une date, au format JJ/MM/AAAA."},"previousProvider":{"type":["string","null"],"description":"Prestataire précédent. Un texte."},"nextProvider":{"type":["string","null"],"description":"Prestataire suivant. Un texte."},"annualPrice":{"type":["string","null"],"description":"Prix annuel HT. Un montant en euros, mis en forme à la française (« 2 872,68 € »)."},"priceRevision":{"type":["string","null"],"description":"Révision du prix. Un texte."},"chatelLetterSentOn":{"type":["string","null"],"description":"Courrier Chatel envoyé le. Une date, au format JJ/MM/AAAA."},"chatelLetterForTerm":{"type":["string","null"],"description":"Pour l’échéance du. Une date, au format JJ/MM/AAAA."},"partsReplacementDays":{"type":["string","null"],"description":"Délai garanti des petites pièces (jours ouvrés). Un nombre, mis en forme à la française (virgule décimale)."},"insurer":{"type":["string","null"],"description":"Assureur (responsabilité civile). Un texte."},"insurancePolicy":{"type":["string","null"],"description":"N° de police. Un texte."},"disputeClause":{"type":["string","null"],"description":"Règlement des litiges. Un texte."},"subcontractingAllowed":{"type":["string","null"],"description":"Sous-traitance permise. Valeurs possibles : `true` (Oui), `false` (Non)."},"subcontractorName":{"type":["string","null"],"description":"Sous-traitant. Un texte."},"subcontractingOwnerAgreed":{"type":["string","null"],"description":"Accord écrit du propriétaire. Valeurs possibles : `true` (Oui), `false` (Non)."},"amendmentsClause":{"type":["string","null"],"description":"Modification par avenant. Valeurs possibles : `true` (Prévue), `false` (Absente)."},"ownerVisitsClause":{"type":["string","null"],"description":"Présence du propriétaire aux visites. Valeurs possibles : `true` (Prévue), `false` (Absente)."},"inspectorClause":{"type":["string","null"],"description":"Accompagnement du contrôleur technique. Valeurs possibles : `true` (Prévu), `false` (Absent)."},"basePrice":{"type":["string","null"],"description":"Prix de base. Un montant en euros, mis en forme à la française (« 2 872,68 € »)."},"coefficient":{"type":["string","null"],"description":"Coefficient. Un nombre, mis en forme à la française (virgule décimale)."},"discount":{"type":["string","null"],"description":"Remise. Un pourcentage, mis en forme à la française (« 82 % »)."},"subtotal":{"type":["string","null"],"description":"Sous-total. Un montant en euros, mis en forme à la française (« 2 872,68 € »)."},"optionTotalExclTax":{"type":["string","null"],"description":"Options HT. Un montant en euros, mis en forme à la française (« 2 872,68 € »)."},"optionTotalInclTax":{"type":["string","null"],"description":"Options TTC. Un montant en euros, mis en forme à la française (« 2 872,68 € »)."},"totalExclTax":{"type":["string","null"],"description":"Contrat HT. Un montant en euros, mis en forme à la française (« 2 872,68 € »)."},"totalInclTax":{"type":["string","null"],"description":"Contrat TTC. Un montant en euros, mis en forme à la française (« 2 872,68 € »)."},"vat":{"type":["string","null"],"description":"TVA. Valeurs possibles : `vat_0` (0 %), `vat_5_5` (5,5 %), `vat_10` (10 %), `vat_20` (20 %)."}},"required":["number","type","equipmentSubtype","sdcName","status","effectiveOn","durationMonths","tacitRenewal","noticeMonths","visitEveryWeeks","terminatedOn","terminationReason","terminationNote","billingGroup","warrantyUntil","previousProvider","nextProvider","annualPrice","priceRevision","chatelLetterSentOn","chatelLetterForTerm","partsReplacementDays","insurer","insurancePolicy","disputeClause","subcontractingAllowed","subcontractorName","subcontractingOwnerAgreed","amendmentsClause","ownerVisitsClause","inspectorClause","basePrice","coefficient","discount","subtotal","optionTotalExclTax","optionTotalInclTax","totalExclTax","totalInclTax","vat"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Contrats"],"summary":"Modifier un contrat","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchContractsId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (contrat).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/quotes/{id}":{"get":{"tags":["Devis"],"summary":"Lire un devis","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getQuotesId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["devis"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"number":{"type":["string","null"],"description":"Numéro. Un texte."},"discount":{"type":["string","null"],"description":"Remise. Un pourcentage, mis en forme à la française (« 82 % »)."},"worksLeadWeeks":{"type":["string","null"],"description":"Délai de réalisation (semaines). Un nombre, mis en forme à la française (virgule décimale)."},"validityDays":{"type":["string","null"],"description":"Validité de l’offre (jours). Un nombre, mis en forme à la française (virgule décimale)."},"title":{"type":["string","null"],"description":"Objet. Un texte."},"status":{"type":["string","null"],"description":"Statut. Un texte."},"origin":{"type":["string","null"],"description":"Origine. Un texte."},"sentOn":{"type":["string","null"],"description":"Envoyé le. Une date, au format JJ/MM/AAAA."},"generalMeetingOn":{"type":["string","null"],"description":"Assemblée générale. Une date, au format JJ/MM/AAAA."},"decidedOn":{"type":["string","null"],"description":"Décidé le. Une date, au format JJ/MM/AAAA."}},"required":["number","discount","worksLeadWeeks","validityDays","title","status","origin","sentOn","generalMeetingOn","decidedOn"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Devis"],"summary":"Modifier un devis","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchQuotesId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (devis).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}},"/invoices/{id}":{"get":{"tags":["Factures"],"summary":"Lire une facture","description":"Les informations déclarées de la fiche, par identifiant d’attribut, et son lien.","operationId":"getInvoicesId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Le type de l’objet, au singulier.","examples":["facture"]},"id":{"type":"string","description":"L’identifiant Arquos.","format":"uuid"},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"},"fields":{"type":"object","description":"Les informations de la fiche, par identifiant d’attribut. Toutes sont présentes ; une information non renseignée vaut `null`.","properties":{"number":{"type":["string","null"],"description":"Numéro. Un texte."},"kind":{"type":["string","null"],"description":"Type. Valeurs possibles : `facture` (Facture), `avoir` (Avoir)."},"status":{"type":["string","null"],"description":"Statut. Valeurs possibles : `brouillon` (Brouillon), `emise` (Émise), `envoyee` (Envoyée), `payee` (Payée)."},"issuedOn":{"type":["string","null"],"description":"Émise le. Une date, au format JJ/MM/AAAA."},"dueOn":{"type":["string","null"],"description":"À payer avant le. Une date, au format JJ/MM/AAAA."},"sentOn":{"type":["string","null"],"description":"Envoyée le. Une date, au format JJ/MM/AAAA."},"paidOn":{"type":["string","null"],"description":"Payée le. Une date, au format JJ/MM/AAAA."},"buyerName":{"type":["string","null"],"description":"Nom. Un texte."},"buyerSiren":{"type":["string","null"],"description":"SIREN. Un texte."},"buyerAddress":{"type":["string","null"],"description":"Adresse. Un texte."}},"required":["number","kind","status","issuedOn","dueOn","sentOn","paidOn","buyerName","buyerSiren","buyerAddress"],"additionalProperties":false}},"required":["type","id","link","url","fields"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}}},"patch":{"tags":["Factures"],"summary":"Modifier une facture","description":"Corrige des informations de la fiche, désignées par leur identifiant d’attribut (celui que la lecture rend). Une valeur vide efface.","operationId":"patchInvoicesId","parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de l’objet.","schema":{"type":"string"}},{"$ref":"#/components/parameters/Agence"}],"responses":{"200":{"description":"Réussi.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’objet corrigé (facture).","format":"uuid"},"ok":{"type":"boolean","description":"Toujours `true` : un refus rend un 422 avec sa raison, et rien n’est écrit."},"link":{"type":"string","description":"Le chemin de la fiche dans Arquos.","examples":["/equipment/3f1c…"]},"url":{"type":"string","description":"L’adresse complète de la fiche, à ouvrir dans un navigateur.","format":"uri"}},"required":["id","ok","link","url"],"additionalProperties":false}}}},"400":{"description":"Requête mal formée ou champ obligatoire manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"401":{"description":"Jeton absent, inconnu ou révoqué.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"403":{"description":"Agence hors de votre portée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"404":{"description":"Objet introuvable dans vos agences.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"422":{"description":"Saisie refusée par Arquos (champ obligatoire, valeur hors bornes, choix inconnu).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}},"429":{"description":"Trop d’appels : réessayez après le délai de l’en-tête Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Ce qui ne va pas, en français."}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"object","description":"Les nouvelles valeurs, par identifiant d’attribut, celui que la lecture de la fiche rend.","additionalProperties":{"type":"string"}}},"required":["fields"],"additionalProperties":false}}}}}}}}