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

# Webhooks

> Mercy Pay notifie votre serveur à chaque changement de statut d'un paiement ou d'un retrait.

Un **webhook** est une requête `POST` que Mercy Pay envoie à une URL de votre serveur dès qu'un statut change. Vous n'avez donc pas besoin d'interroger l'API en boucle.

## Configurer un endpoint

Ouvrez l'onglet **Webhooks** de la [console Développeurs](https://docs.mercy-pay.com/developers/console.md) :

1. Saisissez une URL HTTPS publique qui accepte les requêtes `POST`.
2. Choisissez l'environnement écouté : **Sandbox**, **Live** ou les deux.
3. Cochez les événements à recevoir.
4. Copiez le **secret de signature** (`whsec_…`).

Vous pouvez déclarer plusieurs endpoints. Chacun a son propre secret et ses propres événements.

## Format d'une livraison

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /webhooks/mercy-pay HTTP/1.1
Content-Type: application/json
MercyPay-Signature: t=1791022800,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd
MercyPay-Event-Id: evt_01JC9A2B3C4D5E6F7G8H9J0K1M
MercyPay-Event-Type: payment.succeeded
MercyPay-Delivery-Id: whd_6d1f3a8c2e5b4d7a9c0e2f4b6a8d1c3e
```

Le corps est un événement : `id`, `object`, `type`, `created`, `livemode` et `data`. Le contenu de `data` reprend la ressource correspondante : un paiement pour `payment.*`, un retrait pour `payout.*`, une session pour `checkout_session.*`, un abonnement pour `subscription.*` et `invoice.upcoming`, une facture pour les autres `invoice.*`. Voir [Événements](https://docs.mercy-pay.com/developers/webhooks/events.md).

## Fiabilité

* Mercy Pay attend une réponse `2xx` dans les 10 secondes.
* Sinon, Mercy Pay réessaie, jusqu'à 8 tentatives sur 3 jours.
* Un endpoint qui n'a accepté aucun événement pendant 3 jours est désactivé, et vos développeurs sont prévenus par e-mail.
* Une livraison en échec peut être renvoyée depuis la console, une par une ou toutes celles des 3 derniers jours, ou avec [`POST /api/v1/events/{id}/resend`](https://docs.mercy-pay.com/api/events/resend).
* **Envoyer un test** dans la console, ou [`POST /api/v1/webhook_endpoints/{id}/test`](https://docs.mercy-pay.com/api/webhook-endpoints/test), envoie un événement `webhook.test` pour vérifier votre serveur.
* Un même événement peut être livré plusieurs fois : dédupliquez-le avec son `id`.

Pour la mise en œuvre pas à pas, voir [Gérer les webhooks](https://docs.mercy-pay.com/developers/webhooks/handle.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.