---
title: "Configurer l'intégration webhook"
description: "Configurez l'intégration webhook dans Adapty pour automatiser le suivi des événements."
---

L'[intégration webhook](webhook) d'Adapty se compose des étapes suivantes :

  <img src="/assets/shared/img/webhook-setup.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '300px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

<p> </p>

1. **Vous configurez votre endpoint :**
   1. Assurez-vous que votre serveur peut traiter les requêtes Adapty avec l'en-tête **Content-Type** défini sur `application/json`.
   2. Configurez votre serveur pour recevoir la requête de vérification d'Adapty et répondre avec n'importe quel statut `2xx` et un corps JSON.
   3. [Gérez les événements d'abonnement](#subscription-events) une fois la connexion vérifiée.
2. **Vous configurez et activez l'intégration webhook** dans l'[Adapty Dashboard](#configure-webhook-integration-in-the-adapty-dashboard). Vous pouvez également [mapper les événements Adapty vers des noms d'événements personnalisés](#configure-webhook-integration-in-the-adapty-dashboard). Nous recommandons de tester dans l'**environnement Sandbox** avant de passer en production.
3. **Adapty envoie une requête de vérification** à votre serveur.
4. **Votre serveur répond** avec un statut `2XX` et un corps JSON.
5. **Une fois qu'Adapty reçoit une réponse valide, il commence à envoyer les événements d'abonnement.**

## Configurer votre serveur pour traiter les requêtes Adapty \{#set-up-your-server-to-process-adapty-requests\}

Adapty enverra à votre endpoint webhook 2 types de requêtes :

1. [Requête de vérification](#verification-request) : la requête initiale pour vérifier que la connexion est correctement configurée. Cette requête ne contiendra aucun événement et sera envoyée au moment où vous cliquerez sur le bouton **Save** dans l'intégration Webhook de l'Adapty Dashboard. Pour confirmer que votre endpoint a bien reçu la requête de vérification, votre endpoint doit répondre avec la réponse de vérification.
2. [Événement d'abonnement](#subscription-events) : une requête standard qu'Adapty envoie chaque fois qu'un événement est créé dans son système. Votre serveur n'a pas besoin de répondre avec une réponse spécifique. La seule chose dont le serveur Adapty a besoin est de recevoir une réponse HTTP standard avec le code 200 s'il reçoit bien le message.

### Requête de vérification \{#verification-request\}

Après avoir activé l'intégration webhook dans l'Adapty Dashboard, Adapty enverra une requête POST de vérification contenant un objet JSON vide `{}` en corps.

Configurez votre endpoint pour que l'**en-tête Content-Type** soit `application/json`, c'est-à-dire que l'endpoint de votre serveur doit s'attendre à ce que la requête webhook entrante ait son contenu formaté en JSON.

Votre serveur doit répondre avec un code de statut 2xx et envoyer n'importe quelle réponse JSON valide, par exemple :

```json title="Json"
{}
```

Une fois qu'Adapty reçoit la réponse de vérification dans le bon format et avec un code de statut 2xx, votre intégration webhook Adapty est entièrement configurée.

### Événements d'abonnement \{#subscription-events\}

Les événements d'abonnement sont envoyés avec l'en-tête **Content-Type** défini sur `application/json` et contiennent les données d'événement au format JSON. Pour les types d'événements possibles et les structures de requêtes, consultez [Types d'événements webhook et champs](webhook-event-types-and-fields).

## Configurer l'intégration webhook dans l'Adapty Dashboard \{#configure-webhook-integration-in-the-adapty-dashboard\}

Dans Adapty, vous pouvez configurer des flows distincts pour les événements de production et les événements de test reçus depuis l'environnement sandbox d'Apple ou de Stripe, ou depuis un compte de test Google.

:::tip
Adapty prend en charge une seule URL webhook par environnement (production et sandbox). Pour envoyer des événements à plusieurs services, pointez le webhook vers votre propre backend et distribuez-les depuis là.
:::

Pour les événements de production, utilisez le champ **Production endpoint URL** en spécifiant l'URL à laquelle les callbacks seront envoyés. Configurez également le champ **Authorization header value for production endpoint** — l'en-tête que votre serveur utilisera pour authentifier les événements Adapty. Notez que nous utiliserons la valeur spécifiée dans le champ **Authorization header value for production endpoint** comme en-tête `Authorization` exactement telle quelle, sans aucune modification ni ajout.

Pour les événements de test, utilisez les champs **Sandbox endpoint URL** et **Authorization header value for sandbox endpoint** en conséquence.

Pour configurer l'intégration webhook :

1. Ouvrez [Integrations -> Webhook](https://app.adapty.io/integrations/customwebhook) dans votre Adapty Dashboard.

  <img src="/assets/shared/img/webhook_integration.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

2. Activez le bouton pour lancer l'intégration.
4. Remplissez les champs d'intégration :

    | Champ                                                  | Description                                                  |
    | ------------------------------------------------------ | ------------------------------------------------------------ |
    | **Production endpoint URL**                            | L'URL qu'Adapty utilise pour envoyer des requêtes HTTP POST pour les événements en production. |
    | **Authorization header value for production endpoint** | <p>L'en-tête que votre serveur utilisera pour authentifier les requêtes d'Adapty en production. Notez que nous utiliserons la valeur spécifiée dans ce champ comme en-tête `Authorization` exactement telle quelle, sans aucune modification ni ajout.</p><p></p><p>Bien que non obligatoire, il est vivement recommandé pour une sécurité renforcée.</p> |

    De plus, pour vos besoins de test dans l'environnement sandbox, deux autres champs sont disponibles :

    | Champ de test                                       | Description                                                  |
    | --------------------------------------------------- | ------------------------------------------------------------ |
    | **Sandbox endpoint URL**                            | L'URL qu'Adapty utilise pour envoyer des requêtes HTTP POST pour les événements dans l'environnement sandbox. |
    | **Authorization header value for sandbox endpoint** | <p>L'en-tête que votre serveur utilisera pour authentifier les requêtes d'Adapty lors des tests dans l'environnement sandbox. Notez que nous utiliserons la valeur spécifiée dans ce champ comme en-tête `Authorization` exactement telle quelle, sans aucune modification ni ajout.</p><p></p><p>Bien que non obligatoire, il est vivement recommandé pour une sécurité renforcée.</p> |

4. (facultatif) Choisissez les événements que vous souhaitez recevoir et mappez leurs noms. Consultez nos [Flows d'événements](event-flows) pour voir quels événements sont déclenchés dans différentes situations.

   Si vos identifiants d'événements diffèrent de ceux utilisés dans Adapty, conservez les identifiants de votre système tels quels et remplacez les identifiants d'événements Adapty par défaut par les vôtres dans la section **Events names** de la page [Integrations ->  Webhooks](https://app.adapty.io/integrations/customwebhook).

   L'identifiant d'événement peut être n'importe quelle chaîne de caractères ; assurez-vous simplement que l'identifiant d'événement dans votre serveur de traitement webhook correspond à celui que vous avez saisi dans l'Adapty Dashboard. Vous ne pouvez pas laisser l'identifiant d'événement vide pour les événements activés.

  <img src="/assets/shared/img/86942b8-event_names_renaming.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

5. Les champs et options supplémentaires ne sont pas obligatoires ; utilisez-les selon vos besoins :

    | Paramètre                          | Description                                                  |
    | :--------------------------------- | :----------------------------------------------------------- |
    | **Send Trial Price**               | Lorsque cette option est activée, Adapty inclura le prix de l'abonnement dans les champs `price_local` et `price_usd` pour l'événement **Trial Started**. |
    | **Exclude Historical Events**      | Choisissez d'exclure les événements survenus avant que l'utilisateur n'installe l'application avec le SDK Adapty. Cela évite la duplication des événements et garantit des rapports précis. Par exemple, si un utilisateur a activé un abonnement mensuel le 10 janvier et mis à jour l'application avec le SDK Adapty le 6 mars, Adapty ignorera les événements antérieurs au 6 mars et conservera les événements suivants. |
    | **Send user attributes**           | Activez cette option pour envoyer les attributs spécifiques à l'utilisateur, tels que les préférences de langue. Ces attributs apparaîtront dans le champ `user_attributes`. Consultez [Champs d'événement](webhook-event-types-and-fields#event-fields) pour plus d'informations. |
    | **Send attribution**               | Activez cette option pour inclure les informations d'attribution (par exemple, les données AppsFlyer) dans le champ `attributions`. Consultez la section [Données d'attribution](webhook-event-types-and-fields#attributions) pour plus de détails. |
    | **Send Play Store purchase token** | Activez cette option pour recevoir le token Play Store requis pour la revalidation des achats, si nécessaire. Son activation ajoutera le paramètre `play_store_purchase_token` à l'événement. Pour plus de détails sur son contenu, consultez la section [Token d'achat Play Store](webhook-event-types-and-fields#play-store-purchase-token). |

6. N'oubliez pas de cliquer sur le bouton **Save** pour confirmer les modifications.

Au moment où vous cliquez sur le bouton **Save**, Adapty enverra une requête de vérification et attendra la réponse de vérification de votre serveur.

### Choisir les événements à envoyer et mapper les noms d'événements \{#choose-events-to-send-and-map-event-names\}

Choisissez les événements que vous souhaitez recevoir sur votre serveur en activant le bouton correspondant. Si vos noms d'événements diffèrent de ceux utilisés dans Adapty et que vous devez conserver vos noms tels quels, vous pouvez configurer le mapping en remplaçant les noms d'événements Adapty par défaut par les vôtres dans la section **Events names** de la page [Integrations ->  Webhooks](https://app.adapty.io/integrations/customwebhook).

  <img src="/assets/shared/img/86942b8-event_names_renaming.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Le nom d'événement peut être n'importe quelle chaîne de caractères. Vous ne pouvez pas laisser les champs vides pour les événements activés. Si vous avez accidentellement supprimé un nom d'événement Adapty, vous pouvez toujours le copier depuis la rubrique [Événements à envoyer aux intégrations tierces](events).

## Gérer les événements webhook \{#handle-webhook-events\}

Les webhooks sont généralement envoyés dans un délai de 5 à 60 secondes après la survenue de l'événement. Les événements d'annulation, en revanche, peuvent prendre jusqu'à 2 heures à être envoyés après qu'un utilisateur annule son abonnement.
Si le code de statut de la réponse de votre serveur est en dehors de la plage 200-404, Adapty relance la livraison avec un backoff exponentiel. La première relance survient environ **1 minute** après l'échec initial, en doublant à chaque tentative suivante — jusqu'à 9 relances réparties sur 24 heures. Nous vous suggérons de configurer votre webhook pour effectuer uniquement une validation de base du corps de l'événement envoyé par Adapty avant de répondre. Si votre serveur ne peut pas traiter l'événement et que vous ne souhaitez pas qu'Adapty effectue de nouvelles tentatives, utilisez un code de statut dans la plage 200-404. Gérez également toutes les tâches chronophages de manière asynchrone et répondez rapidement à Adapty. Si Adapty ne reçoit pas de réponse dans les 10 secondes, il considérera la tentative comme un échec et effectuera une nouvelle tentative.