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 :
| Champ | Type | Obligatoire | Description | Notes |
| id | string | ❌ | UUID du relevé d’heures | UUID |
| week | string | ✅ | Semaine concernée | Format ISO 8601 Exemple : 2025W52 |
| worker | object | ✅ | Intérimaire | |
| └ id | string | ✅ | Identifiant de l’intérimaire | ID numérique |
| └ uuid | string | ✅ | UUID de l’intérimaire | UUID |
| └ lastName | string | ✅ | Nom de l’intérimaire | |
| └ firstName | string | ✅ | Prénom de l’intérimaire | |
| └ customerSerialNumber | string | ✅ | Matricule EU de l’intérimaire | |
| customerSite | object | ✅ | Site client | |
| └ peopulseId | string | ✅ | Identifiant site client | ID Peopulse (15 caractères) |
| └ label | string | ✅ | Libellé du site client | |
| agency | object | ✅ | Agence ETT | |
| └ id | string | ❌ | Identifiant de l’agence | ID numérique |
| └ peopulseId | string | ✅ | Identifiant Peopulse agence | ID Peopulse (15 caractères) |
| └ label | string | ✅ | Nom de l’agence | |
| missions[] | array | ✅ | Liste des missions du relevé | |
| └ id | string | ✅ | Identifiant mission | Identifiant numérique |
| └ missionNumber | string | ✅ | Numéro de mission | Identique au numéro de contrat ou au format Cmd D-M (avec D identifiant demande, et M identifiant mission) |
| └ qualification | object | ✅ | Qualification de la mission | En cas d’avenant en cours de semaine, la qualification en fin de semaine est considérée |
| └ id | string | ✅ | Identifiant qualification | Identifiant numérique |
| └ code | string | ✅ | Code qualification | |
| └ label | string | ✅ | Libellé qualification | |
| └ lastShiftWorkTeam | object | ✅ | Equipe horaire | En cas d’avenant en cours de semaine, l’éqiupe en fin de semaine est considérée |
| └ code | string | ❌ | Code équipe | |
| └ label | string | ✅ | Libellé équipe | |
| └ analytic | object | ✅ | Analytique | |
| └ id | string | ✅ | Identifiant analytique | ID numérique |
| └ code | string | ✅ | Code analytique | |
| └ label | string | ✅ | Libellé analytique | |
| └ subAnalytic | object | ❌ | Sous-analytique | null si pas de sous-analytique |
| └ id | string | ✅ | Identifiant sous-analytique | ID numérique |
| └ code | string | ✅ | Code sous-analytique | |
| └ label | string | ✅ | Libellé sous-analytique | |
| └ startMissionDate | string | ✅ | Date de début de la mission | Format ISO 8601 (AAAA-MM-JJ) |
| └ endMissionDate | string | ✅ | Date de fin prévue | Format ISO 8601 (AAAA-MM-JJ) |
| └ actualEndMissionDate | string | ❌ | Date de fin réelle | Format ISO 8601 (AAAA-MM-JJ) |
| └ flexibilityEndMissionDate | string | ❌ | Date de souplesse plus | Format ISO 8601 (AAAA-MM-JJ) |
| status[] | array | ✅ | Statuts du relevé d’heures | 2 occurences si semaine à cheval (une par période) |
| └ period | string | null | ❌ | Période (mois) | Format ISO 8601Exemple : 2025-12 |
| └ value | enum | ✅ | Statut : IN_PROGRESS┃FILLED┃SENT┃SENT_AND_APPROVED┃IN_DISPUTE | En cours de saisie / à envoyer / envoyé, envoyé et approuvé / en litige |
| └ sentAt | string | null | ❌ | Date d’envoi à l’agence | Format ISO 8601 (AAAA-MM-JJ) |
| └ acceptedAt | string | null | ❌ | Date d’approbation par l’agence | Format ISO 8601 (AAAA-MM-JJ) |
| totalTimeslots | number | ✅ | Total d’heures | Cumul 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
}
]
}