Mission accomplie (mission/accomplished)
Enkore envoie un webhook chaque fois qu'un consommateur accomplit l'une de ses missions personnalisées et reçoit les points correspondants. Ce document décrit le payload de cet événement et ses déclencheurs.
Les headers, la signature HMAC et la politique de réessai sont communs à tous les webhooks et sont décrits dans Livraison et signature des webhooks.
Déclencheurs
Le webhook mission/accomplished est émis au moment où la mission est accomplie :
Mission (missionReference) | Déclencheur |
|---|---|
mission/buy-any | Une commande remplit l'objectif d'achat de la mission |
mission/buy-at-least | Une commande atteint le nombre de produits (et le montant) demandés |
mission/buy-category | Une commande contient un produit de la catégorie visée |
mission/buy-product | Une commande contient le produit visé |
mission/register-birthdate | Le consommateur renseigne sa date de naissance |
mission/subscribe-newsletter | Le consommateur s'inscrit à la newsletter |
mission/leave-google-review | Le consommateur laisse un avis Google |
Le webhook n'est envoyé que lorsque des points ont effectivement été crédités : aucun envoi pour un consommateur exclu du programme de fidélité.
Les points d'une mission ne font l'objet d'aucun webhook points_event/created :
mission/accomplished est le seul événement qui les annonce. Pour suivre tous les gains de points
d'un consommateur, abonnez-vous aux deux.
De nouveaux types de mission pourront être ajoutés à l'avenir. Traitez missionReference comme
une chaîne ouverte : ignorez sans erreur une valeur que vous ne connaissez pas, plutôt que de
rejeter la requête.
Format du payload
Enkore envoie une requête POST en application/json vers l'URL configurée dans le back-office.
Exemple de payload — mission d'achat
{
"event": "mission/accomplished",
"customerId": 42,
"missionReference": "mission/buy-any",
"points": 150,
"balance": 1520,
"orderId": 10528,
"accomplishedAt": "2026-09-11T10:00:00.000Z"
}
Exemple de payload — mission hors commande
Une mission accomplie hors commande (date de naissance, newsletter, avis Google) n'est rattachée
à aucune commande : orderId est null.
{
"event": "mission/accomplished",
"customerId": 42,
"missionReference": "mission/leave-google-review",
"points": 50,
"balance": 1570,
"orderId": null,
"accomplishedAt": "2026-09-11T14:32:05.000Z"
}
Description des champs
| Champ | Type | Description |
|---|---|---|
event | string | Toujours "mission/accomplished" |
customerId | number | Identifiant externe du consommateur (correspond à l'ID dans votre plateforme e-commerce) |
missionReference | string | Type de la mission accomplie (voir le tableau des déclencheurs) |
points | number | Nombre de points crédités par la mission |
balance | number | Solde de points du consommateur, recalculé au moment de l'envoi |
orderId | number | null | Identifiant externe de la commande qui a accompli la mission. null hors mission d'achat |
accomplishedAt | string | Date d'accomplissement de la mission (ISO 8601) : date de la commande pour une mission d'achat |
Points d'attention côté réception
- L'envoi est asynchrone. Sur une commande, ce webhook et le
points_event/createdde la même commande partent séparément, sans ordre d'arrivée garanti.balanceétant recalculé à l'envoi, il peut inclure ou non les points de la commande : pour afficher un solde, fiez-vous au dernierbalancereçu. - Dédupliquez sur
customerId+missionReference+accomplishedAt. Le couplecustomerId+missionReferencene suffit pas : un consommateur reçoit une nouvelle mission du même type à chaque période. Voir aussi la section déduplication de la page commune. - Aucun événement ne signale une mission annulée. Si la commande qui a accompli une mission
d'achat est remboursée au point que la mission ne tient plus, la mission est rouverte et ses
points retirés, sans webhook propre à la mission. Si elle est ensuite accomplie à nouveau, un
nouvel envoi part, avec un nouvel
accomplishedAt.