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

# Présentation des Pulses

> Des notifications sortantes signées : votre serveur est prévenu à chaque événement, sans interroger l'API.

Un **Pulse** est une adresse de votre serveur que Pulse-Sell appelle automatiquement quand quelque chose se produit dans votre boutique : une vente, une licence activée, un affilié qui arrive. C'est le chemin le plus fiable et le plus économique pour garder vos outils synchronisés, bien meilleur que d'interroger l'API toutes les minutes.

```mermaid theme={null}
sequenceDiagram
  participant C as Client
  participant P as Pulse-Sell
  participant S as Votre serveur
  C->>P: Paiement confirmé
  P->>S: POST sale.completed (signé)
  S->>S: Vérifie la signature
  S-->>P: 200 OK
  Note over P,S: Sans réponse 2xx, Pulse-Sell réessaie automatiquement
```

## Ce que vous obtenez

> **[12 événements](https://docs.pulse-sell.com/pulses/events.md)**
>
> Ventes, licences, affiliation, catalogue. Ou `*` pour tout recevoir, y compris les futurs événements.

> **[Signature horodatée](https://docs.pulse-sell.com/pulses/security.md)**
>
> HMAC-SHA256 avec un secret propre à chaque Pulse. Un ancien envoi rejoué est refusé.

> **[Relances automatiques](https://docs.pulse-sell.com/pulses/delivery.md)**
>
> Cinq tentatives espacées jusqu'à 2 heures, historique complet de chaque envoi.

> **[Alerte à la désactivation](https://docs.pulse-sell.com/pulses/delivery.md#désactivation-automatique)**
>
> Un e-mail et une notification vous préviennent si votre URL ne répond plus.

## Créer un Pulse

**Tableau de bord**

Ouvrez **Automatisations**, puis **Pulses**, choisissez l'URL, cochez les événements (ou « Tout ») et enregistrez. Le secret de signature s'affiche une seule fois : copiez-le.

**API**

```bash theme={null}
curl -X POST https://api.pulse-sell.com/v1/pulses \
  -H "Authorization: Bearer $PULSESELL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Mon CRM",
    "url": "https://exemple.com/webhooks/pulse-sell",
    "events": ["sale.completed", "license.issued"],
    "product_ids": []
  }'
```

La réponse contient `secret` (commence par `pulse_whsec_`). L'API ne le renverra plus jamais. Il faut la permission `pulses.write`.

## Paramètres d'un Pulse

**name** `string` *required*

Nom lisible pour vous y retrouver.

**url** `string` *required*

Adresse **HTTPS** de votre serveur. Les adresses privées ou locales sont refusées.

**events** `string[]` *required*

Liste d'événements, ou `["*"]` pour tous.

**product\_ids** `string[]`

Filtre : ne recevoir que les événements liés à ces produits (50 maximum). Vide = tous les produits.

**source** `string` (default: manual)

`manual`, `zapier`, `make` ou `n8n` : indique d'où vient le Pulse.

## Limites

* 20 Pulses par boutique.
* Votre serveur doit répondre en moins de **10 secondes**.
* La réponse n'est pas lue : seul le code HTTP compte (2xx = succès).
* Les redirections ne sont pas suivies : donnez l'adresse finale.

## Pulses et anciens webhooks

Les Pulses remplacent les anciens webhooks, qui n'avaient ni horodatage signé, ni relances, ni historique. **La création d'un ancien webhook est fermée.** Ceux qui existent déjà restent visibles, testables et supprimables pour que vous puissiez migrer sans coupure. Recréez-les en Pulses : la signature est différente, votre code de vérification doit suivre la [nouvelle méthode](https://docs.pulse-sell.com/pulses/security.md).


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