Aller au contenu principal

Types Webhooks

Types partagés pour le système de webhooks MCM.

B2BWebhookPayload

Enveloppe non-typée d'un événement webhook.

public class B2BWebhookPayload
{
public string EventType { get; init; }
public DateTime TimestampUtc { get; init; }
public Guid DeliveryId { get; init; }
public JsonElement Data { get; init; }
}

B2BWebhookPayload<TData>

Enveloppe typée passée aux gestionnaires.

public class B2BWebhookPayload<TData>
{
public string EventType { get; init; }
public DateTime TimestampUtc { get; init; }
public Guid DeliveryId { get; init; }
public TData Data { get; init; }
}

B2BListeElectoraleCreeData

Données de l'événement campagne.liste_electorale_cree.

PropriétéTypeDescription
CampagneIdGuidIdentifiant unique de la campagne
TitreCampagnestringTitre de la campagne
NombreVotantsAjoutesintNombre de votants ajoutés avec succès
NombreVotantsIgnoresintNombre de votants ignorés (doublons)
NombreVotantsErreursintNombre d'erreurs lors de l'ajout
TotalVotantsCampagneintTotal de votants dans la campagne

B2BAdhesionItemV2 (payload adhesion.signee)

Données de l'événement adhesion.signee. Il s'agit du même type que celui retourné par la recherche d'adhésions V2 — il contient un snapshot des coordonnées et champs personnalisés au moment de la signature (et non les valeurs actuelles de l'employé).

Namespace : MCM.B2B.Contracts.V2. Définition complète : B2BAdhesionItemV2.

PropriétéTypeDescription
DateSignatureDateTimeDate/heure UTC de la signature
IdUniqueAdhesionstringIdentifiant unique (GUID) de l'adhésion
TransactionIdstringIdentifiant de la transaction de paiement (vide si aucun paiement)
ASignatureManuscriptebooltrue si une signature manuscrite est présente
SyndicatIdExternestring?Identifiant externe du syndicat
SyndicatNomstring?Nom du syndicat
EmployeIdExternestringIdentifiant externe de l'employé
EmployeIdUniquestringIdentifiant unique (GUID) de l'employé
EmployePrenomstringPrénom de l'employé
EmployeNomstringNom de l'employé
Courrielstring?Courriel capturé lors de la signature
CourrielAlternatifstring?Courriel alternatif
TelephonePrincipalstring?Téléphone principal
TelephoneAlternatifstring?Téléphone alternatif
Adresse1string?Adresse (ligne 1)
Adresse2string?Adresse (ligne 2)
Villestring?Ville
Provincestring?Province
CodePostalstring?Code postal
ValeursChampUtilisateurICollection<B2BValeurChampUtilisateurItem>Valeurs des champs personnalisés au moment de la signature
info

Le payload ne contient pas d'identifiant d'emploi (EmploiIdExterne) ni d'employeur. Corrélez côté consommateur via EmployeIdExterne si nécessaire.

IMcmWebhookHandler<TData>

Interface pour les gestionnaires de webhooks.

public interface IMcmWebhookHandler<TData>
{
Task HandleAsync(B2BWebhookPayload<TData> payload, CancellationToken ct);
}

WebhookEventTypes

Constantes pour les types d'événements.

ConstanteValeurDescription
ListeElectoraleCreecampagne.liste_electorale_creeListe électorale créée — payload B2BListeElectoraleCreeData
AdhesionSigneeadhesion.signeeAdhésion signée (acceptation ou fusion d'une demande) — payload B2BAdhesionItemV2

WebhookSignatureValidator

Utilitaire pour valider les signatures HMAC-SHA256.

public static class WebhookSignatureValidator
{
public static bool IsValid(
string secret, // Secret base64
string timestamp, // En-tête X-MCM-Timestamp
string body, // Corps brut de la requête
string signature // En-tête X-MCM-Signature
);
}