Cette opération permet d’ajouter des rubriques manuellement, ou bien de modifier des valeurs pour certaines rubriques générées automatiquement.
La modification est autorisée selon les conditions suivantes :
- les quantités journalières de rubriques sont modifiables sur :
- les rubriques ajoutées manuellement
- les rubriques déclenchées qui ne représentent pas du temps de travail
- les éléments de valorisation sont modifiables sur toutes les rubriques
Paramètres :
- id (identifiant du relevé d’heures)
Payload par use case :
Use case : ajout de rubrique
| Champ | Type | Obligatoire | Description | Notes |
|---|---|---|---|---|
| wageTypes[] | array | ✅ | Rubriques de rémunération | |
| └ code | string | ✅ | Code rubrique | |
| └ missionId | string | ✅ | Mission associée | ID numérique |
| └ analyticId | string | null | ✅ | Identifiant analytique | ID numérique |
| └ subAnalyticId | string | null | ✅ | Identifiant sous-analytique | ID numérique |
| └ percentage | number | null | ✅ | Taux de la rubrique en pourcent | Exemple : 25 |
| └ paidRate | number | null | ✅ | Taux payé de la rubrique | Exemple : 12.78 |
| └ coefficient | number | null | ✅ | Coefficient de la rubrique | Exemple : 1.234 |
| └ billedRate | number | null | ✅ | Taux facturé de la rubrique | Exemple : 13.89 |
| └ days[] | array | ✅ | Jours sur lesquels la rubrique est ajoutée | |
| └ date | string | ✅ | Date du jour | Format ISO 8601 (AAAA-MM-JJ) |
| └ quantity | number | ✅ | Quantité de la rubrique | Exemple : 7.33 |
Pour connaître les éléments de rémunération (percentage, paidRate, coefficient, billedRate) d’une rubrique, l’opération GET /api/v1/timesheets/{id}/financialItems permet de renvoyer pour le relevé concerné ces informations pour une rubrique donnée pour chaque jour de mission.
Use case : modification de rubrique
| Champ | Type | Obligatoire | Description | Notes |
|---|---|---|---|---|
| wageTypes[] | array | ✅ | Rubriques de rémunération | |
| └ code | string | ✅ | Code rubrique | |
| └ missionId | string | ✅ | Mission associée | ID numérique |
| └ analyticId | string | null | ✅ | Identifiant analytique | ID numérique |
| └ subAnalyticId | string | null | ✅ | Identifiant sous-analytique | ID numérique |
| └ percentage | number | null | ✅ | Taux de la rubrique en pourcent | Exemple : 25 |
| └ paidRate | number | null | ✅ | Taux payé de la rubrique | Exemple : 12.78 |
| └ coefficient | number | null | ✅ | Coefficient de la rubrique | Exemple : 1.234 |
| └ billedRate | number | null | ✅ | Taux facturé de la rubrique | Exemple : 13.89 |
| └ days[] | array | ✅ | Jours sur lesquels la rubrique est ajoutée | |
| └ date | string | ✅ | Date du jour | Format ISO 8601 (AAAA-MM-JJ) |
| └ quantity | number | ✅ | Quantité de la rubrique | Exemple : 7.33 |
Exemple :
curl -X PATCH "https://api.dev.peopulse.com/api/v1/timesheets/f1659ebd-0811-4170-a19b-cedf2f18029e%2F/wageTypes" \
-H 'accept: application/json'\
-H 'authorization: Bearer XXX'\
-H 'content-type: application/json' \
-d '{"wageTypes":[{"id":"f1659ebd-0811-4170-a19b-cedf2f18029e","code":"0203","days":[{"id":"598cd0c3-aaa7-4166-994b-e90d4590e2b6","date":"2025-08-22","quantity":0}]},{"id":"d73cabe6-7b80-4344-8e03-05cdd36fb837","code":"1125","percentage":125,"paidRate":13.5,"coefficient":1,"billedRate":13.5,"missionId":"5457"},{"code":"1099","percentage":0,"paidRate":12,"coefficient":1,"billedRate":12,"missionId":"5457","analyticId":"1","subAnalyticId":"877","days":[{"date":"2025-08-18","quantity":1},{"date":"2025-08-19","quantity":1},{"date":"2025-08-20","quantity":1}]}]}'
{
"wageTypes": [
{
"id": "f1659ebd-0811-4170-a19b-cedf2f18029e",
"days": [
{
"id": "598cd0c3-aaa7-4166-994b-e90d4590e2b6",
"date": "2025-08-22",
"quantity": 0
}
]
},
{
"id": "d73cabe6-7b80-4344-8e03-05cdd36fb837",
"code": "1125",
"percentage": 125,
"paidRate": 13.5,
"coefficient": 1,
"billedRate": 13.5,
"missionId": "5457"
},
{
"code": "1099",
"percentage": 0,
"paidRate": 12,
"coefficient": 1,
"billedRate": 12,
"missionId": "5457",
"analyticId": "1",
"subAnalyticId": "877",
"days": [
{
"date": "2025-08-18",
"quantity": 1
},
{
"date": "2025-08-19",
"quantity": 1
},
{
"date": "2025-08-20",
"quantity": 1
}
]
}
]
}
Champs de la réponse :
| Champ | Type | Obligatoire | Description | Notes |
|---|---|---|---|---|
| wageTypes[] | array | ✅ | Rubriques de rémunération | |
| └ id | string | ✅ | Identifiant | UUID |
| └ code | string | ✅ | Code rubrique | |
| └ name | string | ✅ | Nom rubrique | |
| └ activityPeriod | string | ✅ | Période d’activité | Format ISO 8601 Exemple : 2025-12 |
| └ missionId | string | ✅ | Mission associée | ID numérique |
| └ 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 | |
| └ category | enum | ✅ | Catégorie de rubrique triggered┃quickEntry┃manualEntry | Déclenchée / intégrée à la saisie rapide / ajoutée “manuellement” |
| └ valuationMode | enum | ✅ | Mode de valorisation de la rubriquePAID┃PAID_BILLED┃BILLED | Payée / payée facturée / facturée |
| └ booleanInput | boolean | ✅ | Saisie booléenne de rubrique | Dans le cas de la saisie rapide, indication si la rubrique est une case à cocher |
| └ readonly | boolean | ✅ | Rubrique en lecture seule | Toute rubrique représentant du temps de travail ne peut pas être modifiée (c’est la saisie qui doit être modifiée). |
| └ percentage | number | null | ✅ | Taux de la rubrique en pourcent | Exemple : 25 |
| └ paidRate | number | null | ✅ | Taux payé de la rubrique | Exemple : 12.78 |
| └ coefficient | number | null | ✅ | Coefficient de la rubrique | Exemple : 1.234 |
| └ billedRate | number | null | ✅ | Taux facturé de la rubrique | Exemple : 13.89 |
| └ days[] | array | ✅ | Jours sur lesquels la rubrique est générée | |
| └ id | string | ✅ | Identifiant du jour pour la rubrique | UUID |
| └ date | string | ✅ | Date du jour | Format ISO 8601 (AAAA-MM-JJ) |
| └ quantity | number | ✅ | Quantité de la rubrique | Exemple : 7.33 |
| └ dispute[] | array | ❌ | Litiges éventuels | null si aucun litige n’a été ouvert |
| └ id | string | ✅ | Identifiant du litige | UUID |
| └ isDisputeAccepted | boolean | ✅ | Acceptation du litige | Format ISO 8601 (AAAA-MM-JJ)Un litige accepté est conservé dans l’ historique.Si solvedDisputeDate est renseigné :si isDisputeAccepted est à false : le litige a été refusé, on le garde en historiquesi isDisputeAccepted est à true : le litige a été accepté, ses valeurs ont déjà été remplacées, on garde en historique le fait que la rubrique est issue d’un litigeSinon : le litige n’a pas encore été traité. |
| └ solvedDisputeDate | string | ❌ | Date de résolution du litige | |
| └ days[] | array | ✅ | Jours sur lesquels il y a litige | |
| └ id | string | ✅ | Identifiant du jour pour le litige | UUID |
| └ date | string | ✅ | Date du jour | Format ISO 8601 (AAAA-MM-JJ) |
| └ quantity | number | ✅ | Quantité proposée pour correction | |
| └ preinvoice | array | ❌ | Préfacture éventuelles | null si la rubrique n’a pas encore été envoyée |
| └ id | string | ✅ | Identifiant de préfacture | UUID |
| └ number | string | ✅ | Numéro de préfacture |