View Categories

Lister les relevé d’heures GET /api/v1/timesheets

Cette route permet de lister l’ensemble des relevés d’heures d’un client pour la semaine en cours. Elle offre également la possibilité de filtrer les relevés selon divers paramètres.

Le résultat est limité à 50 relevés avec une pagination.

Paramètres :

  • sitesPeopulseId (identifiants Peopulse des sites)
  • agencies (UUID des agences)
  • agenciesPeopulseId (identifiants Peopulse des agences)
  • weeks (semaines au format 2025W52)
  • status (statuts autorisés dans l’enum du champ status – cf documentation détail d’un timesheet)
  • orderByField (champ par lequel ordonner le résultat, par défaut worker.lastName – non implémenté à date)
  • orderByDirection (sens dans lequel ordonner le résultat, DESC (par défaut) ou ASC – non implémenté à date)
  • workerSearchPattern (chaîne de caractère à rechercher parmi nom, prénom ou matricule EU de l’intérimaire)
  • workerId (UUID de l’intérimaire)
  • shiftWorkTeamId (identifiant numérique de l’équipe)
  • qualificationId (identifiant numérique de la qualification)
  • customerId (identifiant Peopulse du client – obligatoire pour une ETT)

Champs de la réponse :

ChampTypeObligatoireDescriptionNotes
idstringUUID du relevé d’heuresUUID
weekstringSemaine concernéeFormat ISO 8601 Exemple : 2025W52
workerobjectIntérimaire 
└ idstringIdentifiant de l’intérimaireID numérique
└ uuidstringUUID de l’intérimaireUUID
└ lastNamestringNom de l’intérimaire 
└ firstNamestringPrénom de l’intérimaire 
└ customerSerialNumberstringMatricule EU de l’intérimaire 
customerSiteobjectSite client 
└ peopulseIdstringIdentifiant site clientID Peopulse (15 caractères)
└ labelstringLibellé du site client 
agencyobjectAgence ETT 
└ idstringIdentifiant de l’agenceID numérique
└ peopulseIdstringIdentifiant Peopulse agenceID Peopulse (15 caractères)
└ labelstringNom de l’agence 
missions[]arrayListe des missions du relevé 
└ idstringIdentifiant missionIdentifiant numérique
└ missionNumberstringNuméro de missionIdentique au numéro de contrat ou au format Cmd D-M (avec D identifiant demande, et M identifiant mission)
qualificationobjectQualification de la missionEn cas d’avenant en cours de semaine, la qualification en fin de semaine est considérée
   └ idstringIdentifiant qualificationIdentifiant numérique
   └ codestringCode qualification 
   └ labelstringLibellé qualification 
lastShiftWorkTeamobjectEquipe horaireEn cas d’avenant en cours de semaine, l’éqiupe en fin de semaine est considérée
   └ codestringCode équipe 
   └ labelstringLibellé équipe 
analyticobjectAnalytique 
   └ idstringIdentifiant analytiqueID numérique
   └ codestringCode analytique 
   └ labelstringLibellé analytique 
   └ subAnalyticobjectSous-analytiquenull si pas de sous-analytique
     └ idstringIdentifiant sous-analytiqueID numérique
     └ codestringCode sous-analytique 
     └ labelstringLibellé sous-analytique 
└ startMissionDatestringDate de début de la missionFormat ISO 8601 (AAAA-MM-JJ)
└ endMissionDatestringDate de fin prévueFormat ISO 8601 (AAAA-MM-JJ)
└ actualEndMissionDatestringDate de fin réelleFormat ISO 8601 (AAAA-MM-JJ)
└ flexibilityEndMissionDatestringDate de souplesse plusFormat ISO 8601 (AAAA-MM-JJ)
status[]arrayStatuts du relevé d’heures2 occurences si semaine à cheval (une par période)
└ periodstring | nullPériode (mois)Format ISO 8601Exemple : 2025-12
└ valueenumStatut : IN_PROGRESS┃FILLED┃SENT┃SENT_AND_APPROVED┃IN_DISPUTEEn cours de saisie / à envoyer / envoyé, envoyé et approuvé / en litige
└ sentAtstring | nullDate d’envoi à l’agenceFormat ISO 8601 (AAAA-MM-JJ)
└ acceptedAtstring | nullDate d’approbation par l’agenceFormat ISO 8601 (AAAA-MM-JJ)
totalTimeslotsnumberTotal d’heuresCumul des heures enregistrées

Exemple :

curl -X GET "https://api.dev.peopulse.com/api/v1/timesheets?sitesPeopulseId%5B%5D=SUPPORT00000001&agenciesPeopulseId%5B%5D=RHXNETT00000005&weeks%5B%5D=2025W34&weeks%5B%5D=2025W35&status%5B%5D=IN_PROGRESS&shiftWorkTeamId=17" \
-H 'accept: application/json'\
-H 'authorization: Bearer XXX'
{
"meta": {
"pagination": {
"maxPage": 1,
"page": 1,
"total": 3,
"limit": 50
}
},
"data": [
{
"id": "f0bdf1ab-fc22-4e73-a7ff-49a3be9728ba",
"week": "2025W34",
"worker": {
"id": "226",
"uuid": "01951d99-1f9f-7dfe-a0da-c4904338f440",
"lastName": "AGGOUNI",
"firstName": "SONIA",
"customerSerialNumber": "123665"
},
"customerSite": {
"peopulseId": "SUPPORT00000001",
"label": "SITE INDUSTRIE ROUEN"
},
"agency": {
"id": "2",
"peopulseId": "RHXNETT00000005",
"label": "INTERIM ROUEN"
},
"entryCapability": [],
"missions": [
{
"id": "5857",
"missionNumber": "Cmd 5510-5857",
"qualification": {
"id": "329",
"code": "67",
"label": "CARISTE"
},
"lastShiftWorkTeam": {
"code": "200",
"label": "EQUIPE AM"
},
"analytic": {
"id": "2",
"code": "002",
"label": "ATELIER 2",
"subAnalytic": null
},
"startMissionDate": "2025-07-31",
"endMissionDate": "2025-09-07",
"actualEndMissionDate": null,
"flexibilityMissionDate": "2025-09-12",
"days": []
}
],
"wageTypes": [],
"status": [
{
"period": "2025-08",
"value": "IN_PROGRESS",
"sentAt": null,
"acceptedAt": null
}
],
"totalTimeslots": 20
},
{
"id": "94ba56e7-33aa-474e-9cf5-f717be73d5e0",
"week": "2025W35",
"worker": {
"id": "226",
"uuid": "01951d99-1f9f-7dfe-a0da-c4904338f440",
"lastName": "AGGOUNI",
"firstName": "SONIA",
"customerSerialNumber": "123665"
},
"customerSite": {
"peopulseId": "SUPPORT00000001",
"label": "SITE INDUSTRIE ROUEN"
},
"agency": {
"id": "2",
"peopulseId": "RHXNETT00000005",
"label": "INTERIM ROUEN"
},
"entryCapability": [],
"missions": [
{
"id": "5857",
"missionNumber": "Cmd 5510-5857",
"qualification": {
"id": "329",
"code": "67",
"label": "CARISTE"
},
"lastShiftWorkTeam": {
"code": "200",
"label": "EQUIPE AM"
},
"analytic": {
"id": "2",
"code": "002",
"label": "ATELIER 2",
"subAnalytic": null
},
"startMissionDate": "2025-07-31",
"endMissionDate": "2025-09-07",
"actualEndMissionDate": null,
"flexibilityMissionDate": "2025-09-12",
"days": []
}
],
"wageTypes": [],
"status": [
{
"period": "2025-08",
"value": "IN_PROGRESS",
"sentAt": null,
"acceptedAt": null
}
],
"totalTimeslots": 43.17
},
{
"id": "d0e9f18e-9a67-49d9-94ed-84805600a9fd",
"week": "2025W34",
"worker": {
"id": "2178",
"uuid": "0198516d-d0e7-771c-892e-e2c1fb85666b",
"lastName": "tesst",
"firstName": "testlv",
"customerSerialNumber": "INT0002178"
},
"customerSite": {
"peopulseId": "SUPPORT00000001",
"label": "SITE INDUSTRIE ROUEN"
},
"agency": {
"id": "2",
"peopulseId": "RHXNETT00000005",
"label": "INTERIM ROUEN"
},
"entryCapability": [],
"missions": [
{
"id": "5770",
"missionNumber": "Cmd 5477-5770",
"qualification": {
"id": "329",
"code": "67",
"label": "CARISTE"
},
"lastShiftWorkTeam": {
"code": "200",
"label": "EQUIPE AM"
},
"analytic": {
"id": "2",
"code": "002",
"label": "ATELIER 2",
"subAnalytic": null
},
"startMissionDate": "2025-07-29",
"endMissionDate": "2025-08-31",
"actualEndMissionDate": null,
"flexibilityMissionDate": "2025-09-04",
"days": []
}
],
"wageTypes": [],
"status": [
{
"period": "2025-08",
"value": "IN_PROGRESS",
"sentAt": null,
"acceptedAt": null
}
],
"totalTimeslots": 43.17
}
]
}