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
- Create a webhook endpoint in Solinth
- Copy the unique webhook URL
- Configure the external service to send data to this URL
- 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.