Campagnes (Votez)
Gestion complète des campagnes de vote. Module requis : Votez.
Pour le parcours complet, voir le guide de workflow de vote.
Liste des campagnes
GET /b2b/v1/campagnes
Filtres (query string)
| Nom | Type | Description |
|---|---|---|
etat | string | Filtre par état (Brouillon, Planifie, VoteOuvert, Termine, Archive) |
titre | string | Recherche partielle (contains) |
ouvertureApres | DateTime | OuvertureDuVoteUtc ≥ ouvertureApres |
fermetureAvant | DateTime | FermetureDuVoteUtc ≤ fermetureAvant |
Réponse
[
{
"id": "...",
"titre": "Vote d'acceptation 2026",
"slug": "vote-acceptation-2026",
"ouvertureDuVoteUtc": "2026-05-01T14:00:00Z",
"fermetureDuVoteUtc": "2026-05-08T14:00:00Z",
"etat": "Planifie",
"estPublie": true,
"estArchive": false,
"nombreVotants": 1247,
"nombreQuestions": 3,
"dateCreationUtc": "2026-04-20T10:00:00Z",
"dateModificationUtc": "2026-04-24T14:30:00Z"
}
]
Obtenir une campagne
GET /b2b/v1/campagnes/{id}
| Nom | Emplacement | Type | Description |
|---|---|---|---|
id | Path | Guid | Identifiant de la campagne |
Statistiques de campagne
GET /b2b/v1/campagnes/{id}/stats
| Nom | Emplacement | Type | Description |
|---|---|---|---|
id | Path | Guid | Identifiant de la campagne |
syndicatIdExterne | Query | string? | Limite les stats à un syndicat |
Réponse
{
"campagneId": "...",
"titre": "Vote d'acceptation 2026",
"etat": "VoteOuvert",
"totalVotants": 1247,
"totalVotantsAvecDroitDeVote": 1235,
"votantsAyantVote": 892,
"tauxParticipation": 72.23,
"resultatsVisibles": false,
"questions": [ /* B2BQuestionStatsItem */ ]
}
resultatsVisibles = falsependant la campagne tant que l'indicateur de fonctionnalité « affichage des résultats actifs » est désactivé. Les détails par option n'apparaissent qu'aprèsFermetureDuVoteUtc.
Créer une campagne
POST /b2b/v1/campagnes
Corps de la requête
{
"titre": "Vote d'acceptation — Convention 2026",
"ouvertureDuVoteUtc": "2026-05-01T14:00:00Z",
"fermetureDuVoteUtc": "2026-05-08T14:00:00Z",
"textePageAccueil": "<p>Bienvenue...</p>",
"libelleAbstention": "Je m'abstiens",
"ordreReponsesAleatoire": false
}
Réponse
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
L'identifiant de la campagne créée.
Erreurs possibles
| Code | HTTP | Signification |
|---|---|---|
Campagne.OuvertureVoteApresFermeture | 400 | ouvertureDuVoteUtc après fermetureDuVoteUtc |
Campagne.SlugDejaUtilise | 409 | Le slug généré à partir du titre est déjà utilisé |
Campagne.NomDejaUtilise | 409 | Une campagne porte déjà ce titre |
Modifier une campagne
PUT /b2b/v1/campagnes/{id}
Les modifications structurelles (questions, options, ordre) sont gelées une fois la campagne publiée.
Supprimer une campagne
DELETE /b2b/v1/campagnes/{id}
Erreurs possibles
| Code | HTTP | Signification |
|---|---|---|
Campagne.SupprimerAvecVotes | 409 | Des votes ont été enregistrés — suppression bloquée |
Publier une campagne
POST /b2b/v1/campagnes/{id}/publier
Verrouille la structure et expose la campagne aux votants.
Erreurs possibles
| Code | HTTP | Signification |
|---|---|---|
Campagne.AucuneQuestion | 400 | La campagne doit avoir au moins une question |
Campagne.TransitionNonPermise | 400 | L'état courant ne permet pas la publication |
Dépublier une campagne
POST /b2b/v1/campagnes/{id}/depublier
Possible uniquement si aucun vote n'a été enregistré.
Erreurs possibles
| Code | HTTP | Signification |
|---|---|---|
Campagne.DepublierAvecVotes | 400 | Des votes ont été enregistrés — dépublication bloquée |
Voir aussi
ICampagnesClient— client SDK .NET- Questions · Votants · Liste électorale
- Guide — workflow de vote