← Spec Hub | Category: Payments & Billing

n8n ➔ Stripe Webhook Pipeline Specification Webhook Integration Spec

Technical Integration Summary

Comprehensive specification for handling incoming n8n ➔ Stripe Webhook Pipeline Specification webhook events. This reference covers cryptographic payload verification, request headers, and retry protocols.

Supported Events: charge.succeeded payment_intent.created invoice.payment_failed customer.subscription.deleted

Authentication & Request Headers

Security validation specs for n8n ➔ Stripe Webhook Pipeline Specification endpoints:

X-n8n➔StripeWebhookPipelineSpecification-Signature: t=1789764056,v1=5f9e1418151511feee7106a4

Signature Verification Implementations

Node.js (Express)

const crypto = require('crypto');
const expected = crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
const isValid = crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));

Python (Flask / FastAPI)

import hmac, hashlib
expected = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
is_valid = hmac.compare_digest(expected, incoming_sig)

Sample Event Payload (charge.succeeded)

{
  "id": "evt_n8n-to-stripe.html_96486",
  "event": "charge.succeeded",
  "created_at": 1789764056,
  "data": {
    "resource_id": "res_906",
    "status": "active"
  }
}

cURL Request Simulation

curl -X POST https://your-domain.com/webhook/n8n-to-stripe.html \
  -H "Content-Type: application/json" \
  -H "X-n8n➔StripeWebhookPipelineSpecification-Signature: t=1789764056,v1=5f9e1418151511feee7106a4" \
  -d '{"id": "evt_n8n-to-stripe.html_96486", "event": "charge.succeeded", "created_at": 1789764056, "data": {"resource_id": "res_906", "status": "active"}}'

HTTP Response Rules

Status CodeStatus MeaningIntegration Action
200 OKSuccessEvent payload validated and queued.
400 Bad RequestMalformed PayloadCheck payload structure and JSON formatting.
401 UnauthorizedSignature MismatchVerify secret key and digest computation.
500 ErrorServer ErrorTriggers provider automated retry backoff.

Security Best Practices for n8n ➔ Stripe Webhook Pipeline Specification

Always process incoming events asynchronously using a message queue. Never perform long-running DB queries or external API calls synchronously within the HTTP response handler.

Frequently Asked Questions

What is the response timeout for n8n ➔ Stripe Webhook Pipeline Specification webhooks?

Your endpoint must return an HTTP 2xx response within 2000ms. Offload heavy processing (email, DB writes) to an asynchronous task queue.

What to do when receiving HTTP 429 status from n8n ➔ Stripe Webhook Pipeline Specification?

A 429 status indicates your endpoint is being rate limited. Implement dynamic throttling or increase consumer worker threads in your queue worker.

How to handle duplicate n8n ➔ Stripe Webhook Pipeline Specification webhooks?

Store processed event IDs in an atomic storage like Redis with a set expiration. If an incoming ID exists, acknowledge with 200 OK immediately without re-triggering logic.