Aller au contenu principal

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-anyUne commande remplit l'objectif d'achat de la mission
mission/buy-at-leastUne commande atteint le nombre de produits (et le montant) demandés
mission/buy-categoryUne commande contient un produit de la catégorie visée
mission/buy-productUne commande contient le produit visé
mission/register-birthdateLe consommateur renseigne sa date de naissance
mission/subscribe-newsletterLe consommateur s'inscrit à la newsletter
mission/leave-google-reviewLe 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é.

info

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.

attention

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​

ChampTypeDescription
eventstringToujours "mission/accomplished"
customerIdnumberIdentifiant externe du consommateur (correspond à l'ID dans votre plateforme e-commerce)
missionReferencestringType de la mission accomplie (voir le tableau des déclencheurs)
pointsnumberNombre de points crédités par la mission
balancenumberSolde de points du consommateur, recalculé au moment de l'envoi
orderIdnumber | nullIdentifiant externe de la commande qui a accompli la mission. null hors mission d'achat
accomplishedAtstringDate 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/created de 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 dernier balance reçu.
  • Dédupliquez sur customerId + missionReference + accomplishedAt. Le couple customerId + missionReference ne 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.