E-LOGIK Planning RH — API de lecture seule v1.0.0
Consultation de votre planning jour par jour. Lecture seule, périmètre limité à l'employé lié à votre compte.
Authentification
Jeton personnel créé depuis « Mon profil → Accès API » de l'application. Préfixé « elpk_ ».
Envoyez-le sur chaque requête :
Authorization: Bearer elpk_votre_jeton
Le jeton n'est affiché qu'une seule fois, à sa création : conservez-le comme un mot de passe, et révoquez-le depuis l'application si vous le pensez compromis.
GET /api/v1/planning/jours
Planning jour par jour sur une plage de dates.
Renvoie tous les jours de la plage, bornes incluses — week-ends, jours fériés et jours sans saisie compris — afin de livrer un calendrier continu. Chaque jour ouvré est décodé en une moitié matin et une moitié après-midi. La plage ne peut pas dépasser 366 jours.
Paramètres
| Nom | Requis | Description |
|---|---|---|
debut | oui | Première date, incluse. Format AAAA-MM-JJ. |
fin | oui | Dernière date, incluse. Format AAAA-MM-JJ. |
statuts | non | Codes séparés par des virgules, ex. « TT,CP ». Ne garde que les jours dont au moins une moitié porte un de ces codes. S'applique aux codes résolus, déduits compris. Un jour non ouvré n'est retenu que s'il porte une saisie. |
Exemple d'appel
curl -s 'https://planning.e-logik.fr/api/v1/planning/jours?debut=2026-09-01&fin=2026-09-30' \ -H 'Authorization: Bearer elpk_votre_jeton'
Exemple de réponse
{
"employe": {
"code": "EXE",
"nom": "Camille Exemple",
"service": "Exploitation"
},
"debut": "2026-09-03",
"fin": "2026-09-06",
"jours": [
{
"date": "2026-09-03",
"jour_semaine": 4,
"ouvre": true,
"ferie": false,
"matin": {
"code": "CP",
"libelle": "Congé payé",
"saisi": true
},
"apres_midi": {
"code": "TT",
"libelle": "Télétravail",
"saisi": true
},
"note": "",
"modifie_le": "2026-08-28T09:12:04Z"
},
{
"date": "2026-09-04",
"jour_semaine": 5,
"ouvre": true,
"ferie": false,
"matin": {
"code": "P",
"libelle": "Présent",
"saisi": false
},
"apres_midi": {
"code": "P",
"libelle": "Présent",
"saisi": false
},
"note": "",
"modifie_le": null
},
{
"date": "2026-09-05",
"jour_semaine": 6,
"ouvre": false,
"ferie": false,
"matin": null,
"apres_midi": null,
"note": "",
"modifie_le": null
},
{
"date": "2026-09-06",
"jour_semaine": 7,
"ouvre": false,
"ferie": false,
"matin": {
"code": "D",
"libelle": "Déplacement",
"saisi": true
},
"apres_midi": {
"code": "D",
"libelle": "Déplacement",
"saisi": true
},
"note": "salon professionnel",
"modifie_le": "2026-09-01T16:40:00Z"
}
]
}Codes de statut du planning
- Un jour ouvré sans saisie vaut « présent au bureau » : l'API renvoie alors P avec saisi: false.
- Une saisie posée un week-end ou un jour férié est restituée comme les autres : « ouvre » reste à false, mais les moitiés portent le statut stocké. Les moitiés ne valent null que sur un jour non ouvré SANS aucune saisie.
- Sur une demi-journée, « periode » vaut « am » pour le matin ; toute autre valeur — « pm », colonne vide ou non renseignée — désigne l'après-midi. C'est la convention de l'application, et la colonne est absente des données chargées par l'import : le repli après-midi est donc le cas courant, pas une exception.
- Sur une demi-journée combinée, l'ordre encode les moitiés : le premier terme est le matin.
- Un code hors de la liste publiée est relayé tel quel, son libellé valant alors le code.
| Code | Signification |
|---|---|
P | Présent |
TT | Télétravail |
CP | Congé payé |
CSS | Congé sans solde |
AT | Arrêt travail |
D | Déplacement |
E | École / Formation |
NT | Ne travaille pas |
CC | Convention collective |
MAT | Maternité / Paternité |
DEA | Demande en attente |
Codes d'erreur
Toutes les erreurs ont la même forme : {"error":{"code":…,"message":…}}.
| HTTP | Code | Situation |
|---|---|---|
| 400 | parametre_manquant | « debut » ou « fin » absent |
| 400 | date_invalide | Format autre que AAAA-MM-JJ, ou date inexistante |
| 400 | plage_invalide | « fin » antérieure à « debut » |
| 400 | plage_trop_longue | Plus de 366 jours demandés |
| 401 | token_absent | En-tête « Authorization: Bearer » absent ou mal formé |
| 401 | token_invalide | Jeton inconnu |
| 401 | token_expire | Jeton authentique mais expiré |
| 401 | token_revoque | Jeton authentique mais révoqué |
| 403 | compte_inactif | Compte désactivé |
| 403 | aucun_employe_lie | Compte non lié à un employé : aucune donnée à lire |
| 429 | trop_de_requetes | Plus de 60 requêtes par minute pour ce jeton |
| 500 | erreur_interne | Panne inattendue côté serveur |
| variable | erreur_http | Autre erreur HTTP sous /api/v1, relayée avec son code d'origine : URL inconnue → 404, verbe non autorisé sur une route existante (l'API est en lecture seule) → 405 |
Contrat machine
La spec OpenAPI 3.1 est servie sur /api/v1/openapi.json : importable dans Postman, Insomnia ou Bruno, ou utilisable pour générer un client.