Webhooks
Receive real-time HTTP callbacks when events occur in your Simplio3D projects. Configure multiple webhooks per project with event filtering and HMAC-SHA256 signature verification.
Supported Event Types
List Webhooks
/projects/:projectId/webhooksRetrieve all webhook configurations for a project.
curl -X GET \
https://api.simplio3d.com/v1/projects/proj_123/webhooks \
-H "Authorization: Bearer YOUR_TOKEN"Create / Update Webhook
/projects/:projectId/webhooks/:webhookIdCreate a new webhook or update an existing one. The webhook ID is idempotent — use the same ID to update.
curl -X PUT \
https://api.simplio3d.com/v1/projects/proj_123/webhooks/wh_abc \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Order Notifications",
"url": "https://your-server.com/webhook",
"events": ["quote.submitted", "form.submitted"],
"secret": "whsec_your_signing_secret",
"enabled": true
}'Request Body
url (required) — HTTPS endpoint to receive events
events (required) — Array of event types to subscribe to
secret — Signing secret for HMAC-SHA256 verification
name — Display name for the webhook
enabled — Whether the webhook is active (default: true)
Delete Webhook
/projects/:projectId/webhooks/:webhookIdcurl -X DELETE \
https://api.simplio3d.com/v1/projects/proj_123/webhooks/wh_abc \
-H "Authorization: Bearer YOUR_TOKEN"Test Webhook
/projects/:projectId/webhooks/:webhookId/testSend a test webhook.test event to verify connectivity. The response includes the HTTP status from your server.
curl -X POST \
https://api.simplio3d.com/v1/projects/proj_123/webhooks/wh_abc/test \
-H "Authorization: Bearer YOUR_TOKEN"
# Response:
# { "success": true, "test": { "statusCode": 200, "statusText": "OK", "delivered": true } }Delivery Logs
/projects/:projectId/webhooks/:webhookId/deliveriesReturns up to the last 50 delivery attempts for a specific webhook.
curl -X GET \
https://api.simplio3d.com/v1/projects/proj_123/webhooks/wh_abc/deliveries \
-H "Authorization: Bearer YOUR_TOKEN"
# Response:
# { "success": true, "deliveries": [
# { "webhookId": "wh_abc", "event": "quote.submitted",
# "statusCode": 200, "delivered": true, "timestamp": "..." },
# ...
# ] }Trigger Webhooks
/projects/:projectId/webhooks/triggerManually fire an event to all matching webhooks. Useful for testing integrations or replaying events.
curl -X POST \
https://api.simplio3d.com/v1/projects/proj_123/webhooks/trigger \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "event": "quote.submitted", "data": { "quoteId": "q_456" } }'Signature Verification
Each webhook delivery includes these headers for security:
X-Simplio3D-Event — Event type (e.g. quote.submitted)
X-Simplio3D-Delivery — Unique delivery UUID
X-Simplio3D-Signature — HMAC-SHA256 hex digest: sha256=...
// Node.js verification example
const crypto = require('crypto');
function verifySignature(payload, signature, secret) {
const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(JSON.stringify(payload))
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature), Buffer.from(expected)
);
}