Skip to main content

Webhooks

Subscribe to real-time events from PlotSparkOS

Webhook Security

All webhook payloads are signed with HMAC-SHA256. Verify the X-PlotSpark-Signature header to ensure events are from PlotSparkOS.

// Verify webhook signature (Node.js)
const crypto = require('crypto');

function verifyWebhook(payload, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  return signature === `v1=${expected}`;
}

Available Events

Tenancy

tenancy.created
tenancy.updated
tenancy.cancelled

Booking

booking.created
booking.cancelled
booking.completed

Payment

payment.succeeded
payment.failed
payment.refunded

Garden

garden.created
plant.added
harvest.logged

Workflow

workflow.started
workflow.completed
workflow.failed

Collection

collection.created
collection.updated
collection.deleted