Lire l'historique d'un parcours
Ce qui est arrivé à un parcours et qui l'a fait — sa création, ses modifications, chaque signature, validation ou refus —, de la plus récente activité à la plus ancienne.
L'historique d'un parcours rend ses activités, de la plus récente à la plus ancienne : sa création et ses modifications, et les gestes de ses participants — une signature, une validation, un refus —, sur le parcours lui-même ou sur l'un de ses éléments (un participant, un document, une action).
GET https://staging-api.docage.com/Transactions/History/cccccccc-0000-4000-8000-000000000003?skip=0&take=50
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…curl "https://staging-api.docage.com/Transactions/History/cccccccc-0000-4000-8000-000000000003?skip=0&take=50" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…"using HttpClient client = new();
using HttpRequestMessage request = new(HttpMethod.Get, "https://staging-api.docage.com/Transactions/History/cccccccc-0000-4000-8000-000000000003?skip=0&take=50");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
using HttpResponseMessage response = await client.SendAsync(request);
string result = await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)
throw new HttpRequestException(result);const response = await fetch("https://staging-api.docage.com/Transactions/History/cccccccc-0000-4000-8000-000000000003?skip=0&take=50", {
headers: {
Authorization: `Bearer ${token}`
}
});
const text = await response.text();
if (!response.ok) throw new Error(text);
const result = text ? JSON.parse(text) : null;{
"Entries": [
{
"Id": "dddddddd-0000-4000-8000-000000000002",
"CreationDate": "2026-11-10T09:42:00.000Z",
"Action": 10,
"Severity": 1,
"SubjectTypeName": "TransactionAction",
"SubjectId": "dddddddd-0000-4000-8000-000000000010",
"SubjectDisplayName": null,
"SubjectTypeDisplayName": "Action de parcours",
"SubjectDefinitionName": null,
"AuthorId": null,
"AuthorName": "Claire Martin",
"AuthorIsParticipant": true,
"AuthorIsRecipient": false,
"DoneByServer": false,
"Details": null,
"ClientKind": null,
"IpAddress": null,
"ErrorId": null,
"ErrorDetails": null
},
{
"Id": "dddddddd-0000-4000-8000-000000000001",
"CreationDate": "2026-11-10T08:15:00.000Z",
"Action": 1,
"Severity": 1,
"SubjectTypeName": "Transaction",
"SubjectId": "cccccccc-0000-4000-8000-000000000003",
"SubjectDisplayName": null,
"SubjectTypeDisplayName": "Parcours",
"SubjectDefinitionName": null,
"AuthorId": "aaaaaaaa-0000-4000-8000-000000000001",
"AuthorName": "Camille Durand",
"AuthorIsParticipant": false,
"AuthorIsRecipient": false,
"DoneByServer": false,
"Details": null,
"ClientKind": null,
"IpAddress": null,
"ErrorId": null,
"ErrorDetails": null
}
],
"TotalCount": 2
}Ici, le parcours a été créé par une utilisatrice, puis signé par son participant.
Ce que dit chaque activité
| Propriété | Ce qu'elle dit |
|---|---|
CreationDate |
Quand, en UTC. |
Action |
Quoi, en nombre : 1 création, 2 modification, 9 refus, 10 signature, 11 validation, 12 mise à la corbeille, 13 restauration, 40 formulaire envoyé… La liste complète est celle de LogAction, dans la référence. |
SubjectTypeName et SubjectId |
Sur quoi : le parcours lui-même (Transaction), ou l'un de ses éléments — un participant (TransactionMember), un document (TransactionFile), une action (TransactionAction). |
AuthorName |
Qui : un utilisateur (AuthorId), ou un participant (AuthorIsParticipant), sous le nom qu'il avait au moment du geste. DoneByServer à true : la plateforme elle-même, pour une échéance ou une tâche automatique. |
Details |
Un complément quand l'activité en porte un, comme le motif d'un refus. |
Severity |
Son importance, pour la mettre en valeur : 0 information, 1 succès, 2 avertissement, 3 erreur, 4 suppression. |
Une activité ne porte aucune phrase toute faite : composez-la dans la langue de votre lecteur, à partir de sa nature, de son sujet et
de son auteur. Une valeur d'Action que vous ne connaissez pas encore se lit comme une activité sans nom particulier.
Paginer
skip passe des activités, take en rend au plus 50 d'office, 200 au plus. TotalCount donne leur nombre en tout : avancez
de page en page (skip = 0, 50, 100…) jusqu'à l'atteindre.
Toute fiche a son historique
La même route existe pour chaque type de fiche, à l'adresse de son type : GET https://staging-api.docage.com/Contacts/History/{id},
GET https://staging-api.docage.com/PipelineItems/History/{id}, GET https://staging-api.docage.com/Documents/History/{id}… Elle rend les activités que la fiche a portées, à qui la
voit.
Sur la fiche d'un utilisateur, scope choisit ce qui est rendu : 0 ce qui lui est arrivé (d'office), 1 ce qu'il a fait, 2
ses sessions, avec leur type de connexion (ClientKind) et leur adresse IP (IpAddress). Ces deux dernières portées ne sont servies
qu'à l'utilisateur lui-même et à qui a le droit de l'administrer :
GET https://staging-api.docage.com/DocageUsers/History/aaaaaaaa-0000-4000-8000-000000000001?scope=2
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…curl "https://staging-api.docage.com/DocageUsers/History/aaaaaaaa-0000-4000-8000-000000000001?scope=2" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…"using HttpClient client = new();
using HttpRequestMessage request = new(HttpMethod.Get, "https://staging-api.docage.com/DocageUsers/History/aaaaaaaa-0000-4000-8000-000000000001?scope=2");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
using HttpResponseMessage response = await client.SendAsync(request);
string result = await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)
throw new HttpRequestException(result);const response = await fetch("https://staging-api.docage.com/DocageUsers/History/aaaaaaaa-0000-4000-8000-000000000001?scope=2", {
headers: {
Authorization: `Bearer ${token}`
}
});
const text = await response.text();
if (!response.ok) throw new Error(text);
const result = text ? JSON.parse(text) : null;Les refus
| Code | Ce qu'il dit |
|---|---|
400 |
« Portée de l'historique inconnue », ou « Cette portée de l'historique ne vaut que pour la fiche d'un utilisateur » : scope à 1 ou 2 sur une autre fiche. |
403 |
« Seuls l'utilisateur et qui peut l'administrer lisent ce qu'il a fait et ses sessions » : vous voyez l'utilisateur sans avoir le droit de l'administrer. |
404 |
Le parcours est introuvable, ou vous ne le voyez pas : la même réponse dans les deux cas. |
Les pièges
- Le nom d'un sujet n'est retenu que pour une suppression (
SubjectDisplayName) ; pour toute autre activité, lisez la fiche par son identifiant. - Plutôt que de relire l'historique, faites-vous prévenir : voir Être prévenu quand un parcours est signé.