{"components":{"schemas":{"DemiJournee":{"description":"Moiti\u00e9 de journ\u00e9e r\u00e9solue. \u00ab saisi \u00bb \u00e0 false signifie \u00ab d\u00e9duit, pas stock\u00e9 \u00bb : jour ouvr\u00e9 sans saisie, ou moiti\u00e9 compl\u00e9mentaire d'une demi-journ\u00e9e.","properties":{"code":{"description":"Code de statut. Vocabulaire courant : P = Pr\u00e9sent ; TT = T\u00e9l\u00e9travail ; CP = Cong\u00e9 pay\u00e9 ; CSS = Cong\u00e9 sans solde ; AT = Arr\u00eat travail ; D = D\u00e9placement ; E = \u00c9cole / Formation ; NT = Ne travaille pas ; CC = Convention collective ; MAT = Maternit\u00e9 / Paternit\u00e9 ; DEA = Demande en attente. La liste n'est pas ferm\u00e9e : un code historique hors vocabulaire est relay\u00e9 tel quel, son libell\u00e9 valant alors le code.","examples":["P","TT","CP","CSS","AT","D","E","NT","CC","MAT","DEA"],"type":"string"},"libelle":{"description":"Libell\u00e9 lisible du code, ou le code lui-m\u00eame s'il est hors vocabulaire.","type":"string"},"saisi":{"type":"boolean"}},"required":["code","libelle","saisi"],"type":"object","x-codes-statut":{"AT":"Arr\u00eat travail","CC":"Convention collective","CP":"Cong\u00e9 pay\u00e9","CSS":"Cong\u00e9 sans solde","D":"D\u00e9placement","DEA":"Demande en attente","E":"\u00c9cole / Formation","MAT":"Maternit\u00e9 / Paternit\u00e9","NT":"Ne travaille pas","P":"Pr\u00e9sent","TT":"T\u00e9l\u00e9travail"}},"Employe":{"description":"L'employ\u00e9 auquel se rapporte ce planning.","properties":{"code":{"type":"string"},"nom":{"type":"string"},"service":{"type":["string","null"]}},"required":["code","nom","service"],"type":"object"},"Erreur":{"properties":{"error":{"properties":{"code":{"enum":["aucun_employe_lie","compte_inactif","date_invalide","erreur_http","erreur_interne","parametre_manquant","plage_invalide","plage_trop_longue","token_absent","token_expire","token_invalide","token_revoque","trop_de_requetes"],"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"}},"required":["error"],"type":"object"},"Jour":{"properties":{"apres_midi":{"anyOf":[{"$ref":"#/components/schemas/DemiJournee"},{"type":"null"}],"description":"null seulement sur un jour non ouvr\u00e9 SANS saisie ; une saisie pos\u00e9e un week-end ou un f\u00e9ri\u00e9 est restitu\u00e9e."},"date":{"format":"date","type":"string"},"ferie":{"description":"Jour f\u00e9ri\u00e9 fran\u00e7ais.","type":"boolean"},"jour_semaine":{"description":"ISO : 1 = lundi \u2026 7 = dimanche.","maximum":7,"minimum":1,"type":"integer"},"matin":{"anyOf":[{"$ref":"#/components/schemas/DemiJournee"},{"type":"null"}],"description":"null seulement sur un jour non ouvr\u00e9 SANS saisie ; une saisie pos\u00e9e un week-end ou un f\u00e9ri\u00e9 est restitu\u00e9e."},"modifie_le":{"description":"UTC, suffix\u00e9 Z. null si jamais saisi.","format":"date-time","type":["string","null"]},"note":{"type":"string"},"ouvre":{"description":"Jour ouvr\u00e9 : ni week-end ni jour f\u00e9ri\u00e9.","type":"boolean"}},"required":["date","jour_semaine","ouvre","ferie","matin","apres_midi","note","modifie_le"],"type":"object"},"PlanningJours":{"properties":{"debut":{"format":"date","type":"string"},"employe":{"$ref":"#/components/schemas/Employe"},"fin":{"format":"date","type":"string"},"jours":{"items":{"$ref":"#/components/schemas/Jour"},"type":"array"}},"required":["employe","debut","fin","jours"],"type":"object"}},"securitySchemes":{"jetonPersonnel":{"description":"Jeton personnel cr\u00e9\u00e9 depuis \u00ab Mon profil \u2192 Acc\u00e8s API \u00bb de l'application. Pr\u00e9fix\u00e9 \u00ab elpk_ \u00bb.","scheme":"bearer","type":"http"}}},"info":{"description":"Consultation de votre planning jour par jour. Lecture seule, p\u00e9rim\u00e8tre limit\u00e9 \u00e0 l'employ\u00e9 li\u00e9 \u00e0 votre compte.","title":"E-LOGIK Planning RH \u2014 API de lecture seule","version":"1.0.0"},"openapi":"3.1.0","paths":{"/planning/jours":{"get":{"description":"Renvoie tous les jours de la plage, bornes incluses \u2014 week-ends, jours f\u00e9ri\u00e9s et jours sans saisie compris \u2014 afin de livrer un calendrier continu. Chaque jour ouvr\u00e9 est d\u00e9cod\u00e9 en une moiti\u00e9 matin et une moiti\u00e9 apr\u00e8s-midi. La plage ne peut pas d\u00e9passer 366 jours.","operationId":"planningJours","parameters":[{"description":"Premi\u00e8re date, incluse. Format AAAA-MM-JJ.","in":"query","name":"debut","required":true,"schema":{"format":"date","type":"string"}},{"description":"Derni\u00e8re date, incluse. Format AAAA-MM-JJ.","in":"query","name":"fin","required":true,"schema":{"format":"date","type":"string"}},{"description":"Codes s\u00e9par\u00e9s par des virgules, ex. \u00ab TT,CP \u00bb. Ne garde que les jours dont au moins une moiti\u00e9 porte un de ces codes. S'applique aux codes r\u00e9solus, d\u00e9duits compris. Un jour non ouvr\u00e9 n'est retenu que s'il porte une saisie.","in":"query","name":"statuts","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanningJours"}}},"description":"Planning de la plage demand\u00e9e."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}},"description":"Param\u00e8tres invalides."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}},"description":"Jeton absent, invalide, expir\u00e9 ou r\u00e9voqu\u00e9."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}},"description":"Compte d\u00e9sactiv\u00e9 ou non li\u00e9 \u00e0 un employ\u00e9."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}},"description":"Limite de d\u00e9bit atteinte pour ce jeton."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}},"description":"Toute autre erreur prend la m\u00eame forme (panne inattendue c\u00f4t\u00e9 serveur, etc.)."}},"summary":"Planning jour par jour sur une plage de dates.","x-exemple-reponse":{"debut":"2026-09-03","employe":{"code":"EXE","nom":"Camille Exemple","service":"Exploitation"},"fin":"2026-09-06","jours":[{"apres_midi":{"code":"TT","libelle":"T\u00e9l\u00e9travail","saisi":true},"date":"2026-09-03","ferie":false,"jour_semaine":4,"matin":{"code":"CP","libelle":"Cong\u00e9 pay\u00e9","saisi":true},"modifie_le":"2026-08-28T09:12:04Z","note":"","ouvre":true},{"apres_midi":{"code":"P","libelle":"Pr\u00e9sent","saisi":false},"date":"2026-09-04","ferie":false,"jour_semaine":5,"matin":{"code":"P","libelle":"Pr\u00e9sent","saisi":false},"modifie_le":null,"note":"","ouvre":true},{"apres_midi":null,"date":"2026-09-05","ferie":false,"jour_semaine":6,"matin":null,"modifie_le":null,"note":"","ouvre":false},{"apres_midi":{"code":"D","libelle":"D\u00e9placement","saisi":true},"date":"2026-09-06","ferie":false,"jour_semaine":7,"matin":{"code":"D","libelle":"D\u00e9placement","saisi":true},"modifie_le":"2026-09-01T16:40:00Z","note":"salon professionnel","ouvre":false}]},"x-exemple-requete":"curl -s 'https://planning.e-logik.fr/api/v1/planning/jours?debut=2026-09-01&fin=2026-09-30' \\\n  -H 'Authorization: Bearer elpk_votre_jeton'"}}},"security":[{"jetonPersonnel":[]}],"servers":[{"url":"/api/v1"}],"x-regles-decodage":["Un jour ouvr\u00e9 sans saisie vaut \u00ab pr\u00e9sent au bureau \u00bb : l'API renvoie alors P avec saisi: false.","Une saisie pos\u00e9e un week-end ou un jour f\u00e9ri\u00e9 est restitu\u00e9e comme les autres : \u00ab ouvre \u00bb reste \u00e0 false, mais les moiti\u00e9s portent le statut stock\u00e9. Les moiti\u00e9s ne valent null que sur un jour non ouvr\u00e9 SANS aucune saisie.","Sur une demi-journ\u00e9e, \u00ab periode \u00bb vaut \u00ab am \u00bb pour le matin ; toute autre valeur \u2014 \u00ab pm \u00bb, colonne vide ou non renseign\u00e9e \u2014 d\u00e9signe l'apr\u00e8s-midi. C'est la convention de l'application, et la colonne est absente des donn\u00e9es charg\u00e9es par l'import : le repli apr\u00e8s-midi est donc le cas courant, pas une exception.","Sur une demi-journ\u00e9e combin\u00e9e, l'ordre encode les moiti\u00e9s : le premier terme est le matin.","Un code hors de la liste publi\u00e9e est relay\u00e9 tel quel, son libell\u00e9 valant alors le code."]}
