Webhooks

Webhooks allow you to receive real-time notifications when events happen in eMARCOTT.

Setting Up Webhooks

  1. Go to Settings → API → Webhooks
  2. Click Add Endpoint
  3. Enter your endpoint URL
  4. Select the events you want to receive
  5. Save

Available Events

  • listing.created - A new listing was created
  • listing.updated - A listing was updated
  • listing.deleted - A listing was deleted
  • listing.published - A listing was published
  • media.uploaded - Media was uploaded to a listing
  • client.created - A new client was added
  • client.assigned - A client was assigned to a listing
  • payment.received - A payment was received
  • invoice.created - An invoice was created

Webhook Payload

{
  "id": "evt_abc123",
  "type": "listing.created",
  "created_at": "2026-01-01T00:00:00Z",
  "data": {
    "id": "lst_xyz789",
    "address": "123 Main St",
    // ... full listing object
  }
}

Verifying Webhooks

Each webhook request includes a signature header for verification:

X-Marcott-Signature: sha256=abc123...

Verify this signature using your webhook secret to ensure the request came from eMARCOTT.

Retry Policy

If your endpoint returns a non-2xx status code, we'll retry the webhook:

  • Retry 1: After 5 minutes
  • Retry 2: After 30 minutes
  • Retry 3: After 2 hours
  • Retry 4: After 8 hours
  • Retry 5: After 24 hours

Best Practices

  • Return a 200 response quickly, then process asynchronously
  • Use a queue to handle webhook processing
  • Implement idempotency to handle duplicate deliveries
  • Monitor your webhook logs for failures