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
idstring❌UUID du relevé d’heuresUUID
weekstring✅Semaine concernéeFormat ISO 8601 Exemple : 2025W52
workerobject✅Intérimaire 
└ idstring✅Identifiant de l’intérimaireID numérique
└ uuidstring✅UUID de l’intérimaireUUID
└ lastNamestring✅Nom de l’intérimaire 
└ firstNamestring✅Prénom de l’intérimaire 
└ customerSerialNumberstring✅Matricule EU de l’intérimaire 
customerSiteobject✅Site client 
└ peopulseIdstring✅Identifiant site clientID Peopulse (15 caractères)
└ labelstring✅Libellé du site client 
agencyobject✅Agence ETT 
└ idstring❌Identifiant de l’agenceID numérique
└ peopulseIdstring✅Identifiant Peopulse agenceID Peopulse (15 caractères)
└ labelstring✅Nom de l’agence 
missions[]array✅Liste des missions du relevé 
└ idstring✅Identifiant missionIdentifiant numérique
└ missionNumberstring✅Numéro de missionIdentique au numéro de contrat ou au format Cmd D-M (avec D identifiant demande, et M identifiant mission)
└ qualificationobject✅Qualification de la missionEn cas d’avenant en cours de semaine, la qualification en fin de semaine est considérée
   └ idstring✅Identifiant qualificationIdentifiant numérique
   └ codestring✅Code qualification 
   └ labelstring✅Libellé qualification 
└ lastShiftWorkTeamobject✅Equipe horaireEn cas d’avenant en cours de semaine, l’éqiupe en fin de semaine est considérée
   └ codestring❌Code équipe 
   └ labelstring✅Libellé équipe 
└ analyticobject✅Analytique 
   └ idstring✅Identifiant analytiqueID numérique
   └ codestring✅Code analytique 
   └ labelstring✅Libellé analytique 
   └ subAnalyticobject❌Sous-analytiquenull si pas de sous-analytique
     └ idstring✅Identifiant sous-analytiqueID numérique
     └ codestring✅Code sous-analytique 
     └ labelstring✅Libellé sous-analytique 
└ startMissionDatestring✅Date de début de la missionFormat ISO 8601 (AAAA-MM-JJ)
└ endMissionDatestring✅Date de fin prévueFormat ISO 8601 (AAAA-MM-JJ)
└ actualEndMissionDatestring❌Date de fin réelleFormat ISO 8601 (AAAA-MM-JJ)
└ flexibilityEndMissionDatestring❌Date de souplesse plusFormat ISO 8601 (AAAA-MM-JJ)
status[]array✅Statuts du relevé d’heures2 occurences si semaine à cheval (une par période)
└ periodstring | null❌Période (mois)Format ISO 8601Exemple : 2025-12
└ valueenum✅Statut : IN_PROGRESS┃FILLED┃SENT┃SENT_AND_APPROVED┃IN_DISPUTEEn cours de saisie / à envoyer / envoyé, envoyé et approuvé / en litige
└ sentAtstring | null❌Date d’envoi à l’agenceFormat ISO 8601 (AAAA-MM-JJ)
└ acceptedAtstring | null❌Date d’approbation par l’agenceFormat ISO 8601 (AAAA-MM-JJ)
totalTimeslotsnumber✅Total 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
}
]
}