innkept

Webhook payload v1

Full JSON shape, every field, what the signature header looks like.

The full JSON body sent to webhook and Zapier destinations on every lead.created event. Same payload shape across every integration — only the destination-side mapping differs.

Headers

HeaderExample
Content-Typeapplication/json
X-Innkept-Eventlead.created
X-Innkept-Signaturesha256=2b9c…f43a
User-AgentInnkept/1.0

Body

{
  "event": "lead.created",
  "version": "v1",
  "lead": {
    "uuid": "01j8h6kqh4yg3xr8rwm6t6xfqe",
    "name": "Sarah Patel",
    "email": "sarah@example.com",
    "phone": "+447700900123",
    "event_type": "wedding",
    "event_date": "2026-09-12",
    "guest_count": 80,
    "gdpr_consent": true,
    "source_url": "https://theoldbarn.co.uk/book",
    "utm": {
      "source": "google",
      "medium": "cpc",
      "campaign": "summer_weddings_2026"
    }
  },
  "quote": {
    "uuid": "01j8h6kqh5gqp8m8t9wnf8c2y0",
    "proposal_url": "https://quote.innkept.com/p/9f3aXjh2z6kQpTu1mVeR…",
    "subtotal_pence": 920000,
    "rules_pence": 138000,
    "vat_pence": 211600,
    "total_pence": 1269600,
    "currency": "GBP",
    "items": [
      {
        "name": "Exclusive venue hire",
        "quantity": 1,
        "unit_pence": 350000,
        "total_pence": 350000
      },
      {
        "name": "Wedding feast 2026 — main course",
        "quantity": 80,
        "unit_pence": 4500,
        "total_pence": 360000
      }
    ]
  },
  "viewing": {
    "starts_at": "2026-06-04T14:00:00+01:00",
    "ends_at":   "2026-06-04T15:00:00+01:00"
  },
  "location": {
    "id": 12,
    "name": "The Old Barn"
  },
  "company": {
    "id": 7,
    "name": "The Old Barn"
  }
}

Field reference

Top level

FieldTypeNotes
eventstringCurrently always lead.created. More events coming.
versionstringSchema version. We'll bump this if we ever break the shape.

lead

FieldTypeNotes
uuidstring (ULID)26 chars. Use as your idempotency key.
namestringFull name as entered.
emailstringValidated email.
phonestring · nullOptional. International format if provided.
event_typestringOne of: wedding, corporate, private_dining, birthday, other.
event_datestring (ISO date)YYYY-MM-DD.
guest_countinteger1–5,000.
gdpr_consentbooleanAlways true for widget submissions.
source_urlstring · nullThe page the configurator was on.
utmobject · nullCaptured silently from URL params.

quote

FieldTypeNotes
uuidstring (ULID)
proposal_urlstringMagic link your guest can open.
subtotal_penceintegerPre-VAT, pre-rules.
rules_penceintegerPositive surcharge or negative discount.
vat_penceintegerTotal VAT across all items.
total_penceintegersubtotal + rules + vat.
currencystringAlways GBP today.
itemsarrayOne entry per quote item.

viewing

Optional — present only if the guest booked a viewing in step 7.

FieldTypeNotes
starts_atstring (ISO 8601)Includes timezone offset.
ends_atstring (ISO 8601)Defaults to one hour after start.

Versioning

Today: v1. We won't break v1. If we change the schema, we'll introduce v2 and let you opt in per integration. Existing webhooks keep receiving v1 until you switch them.

Something missing or wrong? Tell us.

Updated regularly. UK English. No AI slop.