> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Vue d'ensemble des webhooks

> Points de terminaison de l'API Webhook pour enregistrer les webhooks afin de recevoir des mises à jour sur les événements

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

## Qu'est-ce qu'un webhook ?

Un webhook vous permet d'être notifié lorsque certaines *actions* système se produisent via un appel à une URL que vous fournissez. Les webhooks sont également connus sous le nom de « URL Callbacks » ou « HTTP push calls ». Votre URL doit utiliser SSL et commencer par HTTPS.

<Card title="Actions des webhooks" icon="link" href="/apis/webhooks/actions" horizontal>
  Voir les actions disponibles pour les webhooks.
</Card>

### Comprendre les webhooks Ayrshare

Les webhooks sont catégorisés par l'action spécifique et sont *enregistrés au niveau du profil principal ou du profil d'utilisateur*. Toute mise à jour pour les profils principaux ou d'utilisateur est envoyée en premier au webhook enregistré pour le profil d'utilisateur. Si le profil d'utilisateur n'a pas de webhook enregistré, la mise à jour sera envoyée au webhook enregistré du profil principal.

Par exemple :

<ul class="custom-bullets">
  <li>
    Si un profil d'utilisateur a un webhook Social Action enregistré et délie TikTok,
    l'URL du webhook Social Action enregistré pour le profil d'utilisateur sera
    appelée. Le webhook du profil principal *ne sera pas* appelé.
  </li>

  <li>
    Si un profil d'utilisateur délie TikTok et *n'a pas* de webhook Social
    Action enregistré, mais que le profil principal a bien un webhook enregistré, l'URL
    du webhook Social Action enregistré pour le profil principal sera appelée.
  </li>
</ul>

### Enregistrer un webhook

Enregistrez un webhook en fournissant une URL de point de terminaison et le type d'action au point de terminaison POST [`/hook/webhook`](/apis/webhooks/register). Lorsque l'action se produit, un message `HTTP POST` sera envoyé à l'URL fournie.
Par exemple, enregistrez une URL pour être notifié du statut d'une publication programmée.

L'URL du point de terminaison du webhook ne doit pas utiliser de redirections et doit être l'URL de destination finale.

Si vous n'enregistrez que le webhook du profil principal, les profils d'utilisateur hériteront automatiquement du webhook du profil principal.
Pour avoir un webhook unique pour chaque profil d'utilisateur, vous devez enregistrer un webhook pour chaque profil d'utilisateur.

<Note>
  Après que votre webhook a reçu le `HTTP POST`, votre serveur **doit** répondre avec
  un statut HTTP `200` pour marquer l'appel comme réussi. Si votre serveur ne
  répond pas dans les 10 secondes, une réponse `503` sera enregistrée.
</Note>

Vous pouvez également enregistrer des webhooks dans le tableau de bord développeur.

### Nouvelles tentatives de webhook

Si la réponse HTTP de votre serveur n'est pas dans la plage de succès `200-299`, le système réessaiera automatiquement l'appel du webhook deux fois de plus. La première tentative aura lieu après 5 secondes et la seconde tentative aura lieu 30 secondes plus tard. Les nouvelles tentatives auront le même `hookId` et seront marquées comme des tentatives de nouvelle exécution.

## Sécurité des webhooks

Vous pouvez choisir d'ajouter une sécurité supplémentaire en configurant l'authentification HMAC en tant que requête HTTP. Cela est souvent fait pour empêcher les attaques par rejeu. Ayrshare utilise [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC) pour hacher le corps du message et l'inclut ainsi que l'horodatage UNIX dans l'en-tête du POST.

```bash theme={"system"}
X-Authorization-Timestamp : <Unix Timestamp In Seconds>
X-Authorization-Content-SHA256 : <HashedContent>
```

Sur la base d'une clé secrète définie lors de l'[enregistrement de votre webhook](/apis/webhooks/register), vous pouvez valider le POST en comparant l'en-tête X-Authorization-Content-SHA256 avec le hachage SHA256 du corps du POST. La clé secrète est utilisée pour toutes les actions de webhook ; sa définition pour une action modifiera donc le secret pour toutes les actions.

## Journaux des webhooks

Dans le tableau de bord Ayrshare, vous pouvez consulter les [webhooks actifs](https://app.ayrshare.com/webhooks), voir les détails du webhook envoyé, le statut de la réponse de votre serveur et renvoyer le webhook à l'URL enregistrée.
Basculez vers un profil d'utilisateur particulier pour consulter les journaux de webhook de ce profil.

### Codes de réponse HTTP

La première colonne indique une réponse HTTP réussie ✔️ (200, 300) du webhook ou une réponse échouée ✖️ (400, 500).

Basculez vers un profil d'utilisateur particulier pour consulter les journaux de webhook de ce profil.

### Taux d'erreur

Le « Taux d'erreur » des 1 000 publications les plus récentes peut être consulté sur les pages Actions et Journaux des webhooks du tableau de bord. Toute réponse de webhook de votre serveur comprise entre 400 et 500 est considérée comme une erreur.
