Webhook Payload Reference

Every outbound webhook you add in Settings → Integrations receives POSTs with the payloads below. If a signing secret is set, the raw body is signed with HMAC-SHA256 in the x-webhook-signature header.

lead.created

A new lead lands in your organization (manual, Agent Scout, Facebook Lead Ads, or Public Pool claim).

{
  "event": "lead.created",
  "sent_at": "2026-07-02T14:33:00Z",
  "data": {
    "id": "b2f8e0a4-4c6b-4a11-b3e5-5e6f9d1c8e3a",
    "organization_id": "8f0b9a72-...",
    "contact_first_name": "Alex",
    "contact_last_name": "R.",
    "city": "Austin",
    "state": "TX",
    "price_min": 500000,
    "price_max": 750000,
    "timeline": "0_3_months",
    "source": "agent_scout",
    "score": 8
  }
}

lead.assigned

A lead is assigned to a receiving agent inside your organization.

{
  "event": "lead.assigned",
  "sent_at": "2026-07-02T14:35:12Z",
  "data": {
    "lead_id": "b2f8e0a4-...",
    "assigned_to_user_id": "user_...",
    "assigned_by_user_id": "user_..."
  }
}

referral.accepted

The receiving agent accepts an atomic-claim referral. Tri-party agreement is now active.

{
  "event": "referral.accepted",
  "sent_at": "2026-07-02T15:02:00Z",
  "data": {
    "referral_id": "r_...",
    "lead_id": "b2f8e0a4-...",
    "term_months": 24,
    "tail_days": 180,
    "commission_split": {
      "receiver_pct": 80,
      "referrer_pct": 20,
      "platform_pct": 0
    }
  }
}

referral.closed

A referral closes and its direct-disbursement packet is issued.

{
  "event": "referral.closed",
  "sent_at": "2026-08-15T10:11:00Z",
  "data": {
    "referral_id": "r_...",
    "closed_price": 682000,
    "gross_commission": 20460,
    "payout": {
      "receiver": 16368,
      "referrer": 3580.5,
      "platform": 511.5
    }
  }
}

Payload shape is versioned via the event field. Additive changes only.