Lire le statut d'un parcours
Savoir où en est un parcours — en cours, terminé, refusé, expiré, annulé — et ce que chaque participant a fait.
Trois lectures, de la plus courte à la plus complète.
1Le statut d'un parcours, en un mot
GET https://staging-api.docage.com/Transactions/Status/cccccccc-0000-4000-8000-000000000003curl "https://staging-api.docage.com/Transactions/Status/cccccccc-0000-4000-8000-000000000003"using HttpClient client = new();
using HttpRequestMessage request = new(HttpMethod.Get, "https://staging-api.docage.com/Transactions/Status/cccccccc-0000-4000-8000-000000000003");
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/Status/cccccccc-0000-4000-8000-000000000003");
const text = await response.text();
if (!response.ok) throw new Error(text);
const result = text ? JSON.parse(text) : null;"Done"| Réponse | Le parcours |
|---|---|
"Draft" |
est en brouillon. |
"Scheduled" |
attend son heure d'envoi. |
"Active" |
est en cours. |
"Done" |
est terminé : tous ont agi. |
"Refused" |
a été refusé par un participant. |
"Expired" |
a expiré avant la fin. |
"Aborted" |
a été annulé. |
"Deleted" |
a été supprimé définitivement. |
Cette route ne demande pas d'authentification : elle ne rend que ce mot. Un identifiant inconnu répond 404.
2Le statut de plusieurs parcours
POST https://staging-api.docage.com/Transactions/Statuses
Content-Type: application/json
["cccccccc-0000-4000-8000-000000000003", "cccccccc-0000-4000-8000-000000000013"]curl -X POST "https://staging-api.docage.com/Transactions/Statuses" \
-H "Content-Type: application/json" \
-d '["cccccccc-0000-4000-8000-000000000003", "cccccccc-0000-4000-8000-000000000013"]'using HttpClient client = new();
using HttpRequestMessage request = new(HttpMethod.Post, "https://staging-api.docage.com/Transactions/Statuses");
request.Content = new StringContent("""
[
"cccccccc-0000-4000-8000-000000000003",
"cccccccc-0000-4000-8000-000000000013"
]
""", Encoding.UTF8, "application/json");
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/Statuses", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(["cccccccc-0000-4000-8000-000000000003", "cccccccc-0000-4000-8000-000000000013"])
});
const text = await response.text();
if (!response.ok) throw new Error(text);
const result = text ? JSON.parse(text) : null;[
{ "Id": "cccccccc-0000-4000-8000-000000000003", "Status": 3 },
{ "Id": "cccccccc-0000-4000-8000-000000000013", "Status": 2 }
]Status est le GlobalStatus du parcours, en nombre (ci-dessous). 100 identifiants au plus par requête, 30 requêtes par minute ; un
identifiant inconnu est omis de la réponse, et l'ordre n'est pas garanti.
3Le parcours et ses participants
GET https://staging-api.docage.com/Transactions/cccccccc-0000-4000-8000-000000000003
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…curl "https://staging-api.docage.com/Transactions/cccccccc-0000-4000-8000-000000000003" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…"using HttpClient client = new();
using HttpRequestMessage request = new(HttpMethod.Get, "https://staging-api.docage.com/Transactions/cccccccc-0000-4000-8000-000000000003");
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/cccccccc-0000-4000-8000-000000000003", {
headers: {
Authorization: `Bearer ${token}`
}
});
const text = await response.text();
if (!response.ok) throw new Error(text);
const result = text ? JSON.parse(text) : null;GlobalStatus |
Statut |
|---|---|
0 |
Brouillon |
1 |
Programmé |
2 |
En cours |
3 |
Terminé |
4 |
Refusé |
5 |
Expiré |
6 |
Annulé |
-10 |
Erreur |
Chaque participant (TransactionMembers[]) a son GlobalStatus — 2 il a une action en cours, 3 il a tout fait, 4 il a refusé —,
sa date de signature (SignDate, en UTC) et, s'il a refusé de signer, son motif (RefusalReason). Chaque action
(TransactionActions[]) a son Type et son Status : 1 en attente, 2 à faire, 4 commencée, 5 faite, 6 refusée, 7
expirée, 8 annulée ; le motif d'un refus de validation est dans son StatusDetails.
Les pièges
- La numérotation a changé. L'ancienne propriété
Status, encore rendue, garde celle de la version précédente : « en cours » y valait3, « signé »5, « expiré »6, « refusé »7, « annulé »8. LisezGlobalStatus: en cours2, terminé3, refusé4, expiré5, annulé6. Et"FormToFill"n'est plus rendu : un parcours qui attend un formulaire est"Active". - « Terminé » veut dire que tous ont fait toutes leurs actions — validations, formulaires et paiements compris. Que toutes les
signatures soient faites se lit dans
SignatureStatus:5. - Plutôt que de relire, faites-vous prévenir : voir Être prévenu quand un parcours est signé.