Webhooks

Receive real-time data from external services via webhooks.

8 min readUpdated September 2026

What are Webhooks?

Webhooks allow external services to send data to Solinth automatically when events occur. Instead of polling for updates, you receive data in real-time.

How It Works

  1. Create a webhook endpoint in Solinth
  2. Copy the unique webhook URL
  3. Configure the external service to send data to this URL
  4. Solinth receives and processes the data automatically

Creating a Webhook Endpoint

Step 1: Navigate to Webhooks

Go to Settings → Webhooks and click Create Webhook.

Step 2: Configure the Endpoint

  • Name: A descriptive name (e.g., "Stripe Payments")
  • Event Type: What type of events to expect
  • Mapping: How to map incoming data to Solinth events

Step 3: Use the configured webhook URL

Use the exact URL supplied by the integration setup in your workspace. The previously shown api.solinth.com/webhooks/... address is not a supported endpoint; do not send data or credentials there.

Webhook credentials
Keep signing secrets confidential and follow the provider-specific signature verification instructions. A webhook URL alone does not establish that a request is authentic.

Verifying Webhook Signatures

For security, verify that webhook requests are authentic by checking the signature.

Verify Signature (Node.js)
import crypto from 'crypto';

function verifyWebhookSignature(payload, signature, secret) {
  const expectedSignature = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from('sha256=' + expectedSignature)
  );
}

// In your webhook handler
app.post('/webhook', (req, res) => {
  const signature = req.headers['x-solinth-signature'];
  const isValid = verifyWebhookSignature(
    JSON.stringify(req.body),
    signature,
    process.env.WEBHOOK_SECRET
  );
  
  if (!isValid) {
    return res.status(401).send('Invalid signature');
  }
  
  // Process the webhook...
  res.status(200).send('OK');
});

Supported Services

Solinth has pre-built webhook handlers for popular services:

  • Stripe: Payments, subscriptions, invoices
  • GitHub: Commits, pull requests, issues
  • Shopify: Orders, products, customers
  • Twilio: SMS, calls, messages
  • Custom: Any JSON webhook payload

Retry Logic

If your webhook endpoint fails to respond with a 2xx status code, Solinth will retry the delivery:

  • 1st retry: After 1 minute
  • 2nd retry: After 5 minutes
  • 3rd retry: After 30 minutes
  • 4th retry: After 2 hours
  • 5th retry: After 24 hours
Webhook Logs
View all webhook deliveries and their status in Settings → Webhooks → Logs.
Webhooks | Solinth