💳
StripeのWebhookで決済完了を検知して処理する
Stripeの決済完了イベントをn8nのWebhookで受信し、署名検証後に領収書メール送信・DBレコード更新・Slack通知を実行するワークフロー。
ユースケース概要
Stripeで決済完了(payment_intent.succeeded)イベントが発生すると、n8nが署名を検証してから後処理(領収書送信・DB更新・Slack通知)を実行する。
解決する課題: Stripeの決済完了後の後処理を一元管理し、バックエンドの負担を軽減
使用するn8nノード:
- Webhook Trigger(Stripe Webhookイベント受信)
- Code(HMAC署名検証)
- IF(イベント種別の分岐)
- HTTP Request(自社APIへのDB更新リクエスト)
- Gmail(領収書メール送信)
- Slack(支払い通知)
ワークフロー構成
[Webhook Trigger: POST /stripe-webhook]
↓
[Code: HMAC-SHA256 署名検証]
↓
[IF: event.type == "payment_intent.succeeded"]
├── true → [HTTP Request: 自社API DB更新]
│ ↓
│ [Gmail: 領収書メール送信]
│ ↓
│ [Slack: 支払い通知]
└── false → スキップ
実装手順
Step 1: Webhook Triggerの設定
HTTP Method: POST
Path: stripe-webhook
Response Mode: Immediately(署名検証前に200を返す)
重要: Stripeは応答が遅いとWebhookをリトライするため、処理完了を待たずに即200を返す。
Step 2: HMAC署名検証(Codeノード)
const crypto = require('crypto');
const stripeSignature = $input.first().headers['stripe-signature'];
const rawBody = $input.first().binary?.data
? Buffer.from($input.first().binary.data, 'base64').toString('utf8')
: JSON.stringify($input.first().json);
const webhookSecret = $env.STRIPE_WEBHOOK_SECRET;
const timestamp = stripeSignature.split(',')[0].replace('t=', '');
const signature = stripeSignature.split(',')[1].replace('v1=', '');
const expectedSig = crypto
.createHmac('sha256', webhookSecret)
.update(`${timestamp}.${rawBody}`)
.digest('hex');
if (signature !== expectedSig) {
throw new Error('Invalid Stripe signature');
}
return $input.all();
Step 3: イベント種別の分岐
Condition: {{ $json.type }} equals "payment_intent.succeeded"
Step 4: 領収書メール送信
To: {{ $json.data.object.receipt_email }}
Subject: お支払い確認 - ¥{{ $json.data.object.amount.toLocaleString() }}
ポイント・注意事項
- Stripe署名検証は必須。署名なしのWebhookを処理するとセキュリティリスクになる
- Webhook Secretは Stripe Dashboard → Developers → Webhooks で取得し、n8n環境変数に設定する
payment_intent.succeeded以外にもcheckout.session.completedなど複数のイベントがある
関連機能
- 1. 🔄n8n概要 - ワークフロー自動化プラットフォーム
- 2. ⚙️n8nワークフローの基本(ノード・コネクション・実行)
- 3. ⚡n8nトリガーの種類(Webhook・スケジュール・イベント)
- 4. 🔀n8nロジック制御(フィルター・条件分岐・ループ・マージ)
- 5. 🌐n8n HTTP Request・API連携
- 6. 🔗n8n主要インテグレーション(Slack・Gmail・GitHub)
- 7. 🛡️n8nエラーハンドリング・デバッグ
- 8. 🤖n8n AI・LLMエージェント(Chain・Agent)
- 9. 💻n8n Codeノード・カスタム処理
- 10. 🏢n8nエンタープライズ機能(ソース管理・シークレット・チーム管理)
- 11. 🌤️毎朝SlackにAIで天気・ニュースを通知する
- 12. 📊GitHubのPRをGoogleシートに自動記録する
- 13. 📧新規ユーザー登録時にWelcomeメールを自動送信する
- 14. 💳StripeのWebhookで決済完了を検知して処理する
- 15. 📈スケジュールトリガーで週次レポートを自動生成する
- 16. 🎫Gmailトリガーでサポートメールを自動Notionチケット化する
- 17. 🎯条件分岐でリード属性に応じて担当者を振り分ける
- 18. 📨ループ処理でリストを走査し一括メール送信する
- 19. 📋複数APIのデータをマージして統合レポートを作成する
- 20. 🗄️外部REST APIからデータを取得してDBに保存する
- 21. 🔍GraphQL APIでGitHubのIssueを取得・加工する
- 22. 🔐Bearer認証付きAPIを呼び出してデータ同期する
- 23. ✅SlackとNotionを連携したチームタスク管理フロー
- 24. 🤝GmailとHubSpotを連携したCRM自動化フロー
- 25. 🚀GitHubデプロイイベントをSlackに通知する
- 26. 🚨APIエラー発生時にSlackへアラートを送る
- 27. 🔁リトライ付きの堅牢なデータ同期フローを構築する
- 28. 📝エラーログをAirtableに自動記録する
- 29. 🤖LLMを使ったカスタマーサポート自動応答ボット
- 30. 🔎ドキュメントRAG検索システムを構築する
- 31. 📬AIでメール内容を自動分類・ルーティングする
- 32. 🔧JavaScriptで複雑なデータ変換処理を実装する
- 33. 📄npmライブラリを使ったPDF自動生成フロー
- 34. ✔️カスタムバリデーションロジックをCodeノードで実装する
- 35. 🗂️Gitでワークフローをバージョン管理する
- 36. 🌍環境変数で本番・ステージングを切り替える
- 37. 👥チームでのワークフロー共同管理フロー
- 38. 📋AIで履歴書を自動スクリーニング・スコアリングする
- 39. 🧾請求書PDFをOCRで自動データ入力・会計ソフト登録する
- 40. 📱ブログ記事→SNS自動投稿パイプラインを構築する
- 41. 📦Shopify注文処理を完全自動化する(在庫・配送・顧客通知)
- 42. 🔔予約リマインダーを自動送信してノーショーを削減する
- 43. 📊経営ダッシュボードを毎朝Slackに自動配信する
- 44. 🔭競合情報を自動収集してWeeklyレポートにまとめる
- 45. 🎉新入社員オンボーディングを完全自動化する
出典: https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.stripe/