← Spec Hub | Category: Developer APIs

API & Webhook Schema Directory Webhook Integration Spec

Technical Integration Summary

Technical guide for receiving and processing automated API & Webhook Schema Directory event notifications. Follow these security guidelines to prevent unauthorized webhook calls.

Supported Events: resource.created resource.updated resource.deleted event.triggered

Authentication & Request Headers

Security validation specs for API & Webhook Schema Directory endpoints:

Authorization: Bearer sec_live_eacf331f0ffc35d4

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 (resource.created)

{
  "id": "evt_index.html_89407",
  "event": "resource.created",
  "created_at": 1789764050,
  "data": {
    "resource_id": "res_543",
    "status": "active"
  }
}

cURL Request Simulation

curl -X POST https://your-domain.com/webhook/index.html \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sec_live_eacf331f0ffc35d4" \
  -d '{"id": "evt_index.html_89407", "event": "resource.created", "created_at": 1789764050, "data": {"resource_id": "res_543", "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 API & Webhook Schema Directory

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

How to handle duplicate API & Webhook Schema Directory 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.

What to do when receiving HTTP 429 status from API & Webhook Schema Directory?

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

Why does signature validation fail on Express/Flask?

Your framework might be auto-parsing JSON. HMAC generation requires the exact raw byte buffer of the request body before JSON middleware alters keys or spacing.