Comment connecter Stripe à l'Shopify Flow
Stripe est une plateforme de paiement. Elle envoie un Webhook à chaque paiement, remboursement, litige, modification d’abonnement et événement lié à une facture sur votre compte. Workflow Webhooks transforme cet appel en un déclencheur « **Shopify Flow **», afin que votre boutique puisse y réagir : attribuer une balise à un client, ajouter une note à une commande, envoyer un e-mail interne, mettre à jour un métachamp… tout ce qu’Shopify Flow permet de faire.
Ce guide décrit l'ensemble du processus : Stripe envoie les données, Workflow Webhooks les reçoit et les vérifie, Shopify Flow effectue les opérations, la signature HMAC de Stripe étant vérifiée à chaque requête, de sorte que seul Stripe puisse déclencher votre workflow.
Ce que vous pouvez construire
- Balise un client Shopify ayant effectué son paiement via une page de paiement Stripe ou un lien de paiement, afin que vos segments restent synchronisés.
- Ajoutez une note de commande et prévenez votre équipe dès qu’un litige est ouvert.
- Envoyez un e-mail à l'équipe lorsque le paiement d'un abonnement échoue, afin que quelqu'un puisse prendre contact avec le client avant qu'il ne se désabonne.
Exemples d'événements à envoyer : payment_intent.succeeded, charge.refunded, charge.dispute.created, customer.subscription.deleted, invoice.payment_failed.
Avant de commencer
- Workflow Webhooks installé sur votre boutique Shopify.
- Shopify Flow installée, disponible gratuitement sur l'App Store de Shopify.
- Un compte Stripe disposant des autorisations nécessaires pour créer des webhooks.
Étape 1 - Créez le webhook sur Workflow Webhooks
- Accédez à Workflow Webhooks -> Webhooks -> Créer un webhook et attribuez-lui un nom que vous pourrez reconnaître dans Shopify Flow, tel que
Stripe events. - Dans la section « Authentification », sélectionnez HMAC.
- Dans la section « Fournisseur de signature », sélectionnez Stripe. L'application remplit automatiquement les champs « en-tête », « algorithme », « Payload signé » et « fenêtre de replay » ; vous n'avez rien d'autre à configurer.
- Pour l'instant, ne renseignez pas le champ « Secret » et cliquez sur « Enregistrer ». Copiez l'URL du webhook qui s'affiche sur la page.
Consultez la page Authentification pour connaître les autres modes d'authentification, et la page Mappage de la charge utile et variables de flux pour savoir quels champs sont transmis à Shopify Flow.

Étape 2 - Ajoutez le point de terminaison dans Stripe
Dans le tableau de bord Stripe, ouvrez « Développeurs » → « Webhooks », ajoutez un point de terminaison avec l'URL que vous avez copiée, puis sélectionnez les événements que vous souhaitez envoyer.
Comment trouver votre clé de signature Stripe
Clé de signature du Webhook (whsec_...) accessible depuis le tableau de bord Stripe -> Développeurs -> Webhooks.
La documentation de Stripe consacrée aux signatures des webhooks contient la formulation exacte et des captures d'écran correspondant à votre compte.
Collez ce secret dans le champ « Secret » du webhook à l'adresse Workflow Webhooks, puis enregistrez. À partir de ce moment, chaque transaction Stripe sera vérifiée avant d'atteindre Shopify Flow.
Ce que cette vérification permet de contrôler
| Quoi ? | Valeur |
|---|---|
| En-tête de signature | Stripe-Signature |
| Emplacement de la signature | Dans la valeur v1 de cet en-tête, qui contient des paires key=value séparées par des virgules |
| Ce qui est signé | {timestamp}.{body} |
| Signature | HMAC-SHA256, codé en hexadécimal |
| Horodatage | La valeur t de l'en-tête de signature, exprimée en secondes Unix |
| Protection contre la lecture | Les requêtes dont l'horodatage signé remonte à plus de 5 minutes sont rejetées |
| Le secret | À utiliser sous forme de texte brut. Copiez-collez-le exactement tel que l'expéditeur l'a indiqué. |
Dans la payload signée, {body} correspond au corps brut de la requête, octet par octet, et {timestamp} correspond à l'horodatage mentionné ci-dessus.
Toute requête qui ne respecte pas l'une de ces conditions est rejetée avec le message 401, est enregistrée dans Historique et dépannage et ne déclenche jamais de workflow.
Étape 3 - Créer le workflow Shopify Flow
- Dans « Shopify Flow », créez un workflow et sélectionnez le déclencheur « Workflow Webhooks ».
- Cliquez sur « Enregistrer les événements », puis envoyez un événement test depuis Stripe (ou utilisez l'option « Envoyer un test » dans Workflow Webhooks) afin que Shopify Flow apprenne la structure de vos données.
- Chaque webhook dont vous disposez déclenche le même déclencheur de Shopify Flow ; veuillez donc ajouter une première condition sur l'identifiant du webhook afin de limiter ce workflow à Stripe uniquement. Cet identifiant est indiqué sur la page dédiée aux webhooks.
- Ajoutez vos actions : identifiez un client, ajoutez une note, envoyez un e-mail interne, mettez à jour un métachamp.



Étape 4 - Testez-le de bout en bout
Déclenchez un événement réel dans Stripe. Dans Workflow Webhooks → « History », vous devriez voir l'appel avec le statut « Success ». Si la signature était incorrecte, vous obtiendrez à la place une entrée indiquant un échec avec la raison correspondante. La page Vérification des webhooks signés explique le fonctionnement de l'outil de vérification des signatures, qui vous indique précisément quelle étape a échoué.

La signature ne correspond pas▾
Dans cette commande : le secret (la cause la plus courante : un espace supplémentaire ou une clé provenant d’un environnement incorrect), le fait que l’expéditeur utilise le secret d’un autre point de terminaison, et le fait que quelque chose entre Stripe et l’application réécrive le corps de la requête. Les signatures portent sur les octets bruts ; ainsi, un proxy qui reformate le JSON les invalide. Le testeur de signature disponible sur la page du webhook affiche le texte exact qui a été signé.
Je reçois un code 401 à chaque requête▾
Vérifiez que l'authentification du webhook est configurée sur HMAC avec le fournisseur Stripe sélectionné, que le secret est renseigné et que Stripe envoie ses requêtes à l'URL exactement telle qu'elle est indiquée dans l'application, y compris le code à la fin.
Rien n'apparaît dans l'historique▾
La requête n'est jamais parvenue à destination. Vérifiez à nouveau l'URL dans Stripe et consultez le journal de transmission de Stripe pour connaître la réponse reçue. Un message 404 indique un webhook incorrect ou supprimé, tandis qu'un message 429 signifie que vous avez dépassé la limite d'appels de votre forfait - consultez Forfaits et utilisation.
The workflow runs for inappropriate events▾
Chaque webhook de votre boutique déclenche le même déclencheur Shopify Flow. Ajoutez une condition basée sur l'identifiant du webhook comme première étape du workflow, ou affinez les événements que vous envoyez depuis Stripe.
Les requêtes échouent avec le message « horodatage hors tolérance »▾
Stripe appose un horodatage et l'application rejette tout événement datant de plus de 5 minutes. Il s'agit généralement d'un problème d'horloge du côté de l'expéditeur, ou d'une transmission que Stripe a réessayé d'effectuer bien plus tard en conservant l'horodatage d'origine. Les nouvelles tentatives issues de la même requête d'origine ne peuvent pas être acceptées ; demandez à Stripe d'envoyer un nouvel événement.
Connexes
- Vérification des webhooks signés - tous les prestataires que nous vérifions, et comment décrire ceux que nous ne vérifions pas.
- Mappage de la charge utile et variables de flux - extraire les champs appropriés du payload et les transférer dans Shopify Flow.
- Protection contre les livraisons en double - Que se passe-t-il lorsque Stripe effectue une nouvelle tentative de livraison ?
- Historique et dépannage - le journal de toutes les requêtes, avec possibilité de relecture.

