← Spec Hub | Category: Developer APIs
Developer documentation for integrating Supabase ➔ Tally Webhook Pipeline Specification webhooks into backend applications. Secure your endpoint with HMAC signature checking and payload validation.
Supported Events: resource.created resource.updated resource.deleted event.triggered
Security validation specs for Supabase ➔ Tally Webhook Pipeline Specification endpoints:
X-Supabase➔TallyWebhookPipelineSpecification-Signature: t=1789764056,v1=c4da498dfbc1cbf5bb07e684
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_supabase-to-tally.html_63297",
"event": "resource.created",
"created_at": 1789764056,
"data": {
"resource_id": "res_390",
"status": "active"
}
}
curl -X POST https://your-domain.com/webhook/supabase-to-tally.html \
-H "Content-Type: application/json" \
-H "X-Supabase➔TallyWebhookPipelineSpecification-Signature: t=1789764056,v1=c4da498dfbc1cbf5bb07e684" \
-d '{"id": "evt_supabase-to-tally.html_63297", "event": "resource.created", "created_at": 1789764056, "data": {"resource_id": "res_390", "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.
Your endpoint must return an HTTP 2xx response within 2000ms. Offload heavy processing (email, DB writes) to an asynchronous task queue.
A 429 status indicates your endpoint is being rate limited. Implement dynamic throttling or increase consumer worker threads in your queue worker.
Failed deliveries (non-2xx responses) trigger an exponential backoff retry schedule over a period ranging from 24 to 72 hours.