← Spec Hub | Category: Payments & Billing
Comprehensive specification for handling incoming Slack API ➔ 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
Security validation specs for Slack API ➔ Stripe Webhook Pipeline Specification endpoints:
X-SlackAPI➔StripeWebhookPipelineSpecification-Signature: t=1789764056,v1=c173ee513f4d595623e196c6
const crypto = require('crypto');
const expected = crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
const isValid = crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
import hmac, hashlib
expected = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
is_valid = hmac.compare_digest(expected, incoming_sig)
{
"id": "evt_slack-to-stripe.html_28894",
"event": "charge.succeeded",
"created_at": 1789764056,
"data": {
"resource_id": "res_395",
"status": "active"
}
}
curl -X POST https://your-domain.com/webhook/slack-to-stripe.html \
-H "Content-Type: application/json" \
-H "X-SlackAPI➔StripeWebhookPipelineSpecification-Signature: t=1789764056,v1=c173ee513f4d595623e196c6" \
-d '{"id": "evt_slack-to-stripe.html_28894", "event": "charge.succeeded", "created_at": 1789764056, "data": {"resource_id": "res_395", "status": "active"}}'
| Status Code | Status Meaning | Integration Action |
|---|---|---|
200 OK | Success | Event payload validated and queued. |
400 Bad Request | Malformed Payload | Check payload structure and JSON formatting. |
401 Unauthorized | Signature Mismatch | Verify secret key and digest computation. |
500 Error | Server Error | Triggers provider automated retry backoff. |
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.
Compute the HMAC SHA-256 hash on the raw request body using your shared secret and compare it against the incoming signature header using time-constant comparison.
Failed deliveries (non-2xx responses) trigger an exponential backoff retry schedule over a period ranging from 24 to 72 hours.
Your endpoint must return an HTTP 2xx response within 2000ms. Offload heavy processing (email, DB writes) to an asynchronous task queue.