Webhooks

Active Webhooks

Trading Signals
https://api.acmefamily.com/webhooks/pollinate
signal.new position.change
Risk Alerts
https://slack.com/api/webhooks/T0123/B0456
drawdown.alert

Available Event Types

signal.new

Fired when a new trading signal is generated by any strategy

position.change

Fired when portfolio positions are updated (buy/sell/rebalance)

drawdown.alert

Fired when drawdown exceeds configured threshold (default 5%)

tearsheet.ready

Fired when a new monthly tear sheet is generated

Webhook Payload Example

{
  "event": "signal.new",
  "timestamp": "2024-12-12T09:30:00Z",
  "data": {
    "signal_id": "sig_abc123def456",
    "strategy": "Trendlock",
    "symbol": "XLK",
    "action": "BUY",
    "weight": 0.4534,
    "confidence": 0.85,
    "metadata": {
      "momentum_score": 0.127,
      "vix_level": 14.2
    }
  },
  "signature": "sha256=a1b2c3d4e5..."
}

Verify webhook authenticity by comparing the HMAC-SHA256 signature using your webhook secret.

Recent Deliveries

OK
signal.new
Dec 12, 2024 9:30 AM
127ms
OK
position.change
Dec 11, 2024 3:45 PM
89ms
OK
signal.new
Dec 10, 2024 9:30 AM
156ms
ERR
signal.new
Dec 9, 2024 9:30 AM
timeout

Security

All webhook payloads include an HMAC-SHA256 signature in the X-Pollinate-Signature header. Verify this signature to ensure the webhook is authentic.

# Python verification example
import hmac
import hashlib

def verify_signature(payload, signature, secret):
    expected = hmac.new(
        secret.encode(),
        payload.encode(),
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)