Tripleseat · AsyncAPI Specification

Tripleseat Webhooks

Version v1

Tripleseat webhooks POST a JSON package to a subscriber URL when a lead or booking lifecycle event occurs. Each request carries an X-Signature header computed with SHA256-HMAC using the webhook endpoint's signing key, which subscribers should verify with a constant-time comparison. Subscribers must return HTTP 200 on receipt; otherwise Tripleseat re-sends the same POST up to five additional times. Webhooks are configured under Settings → Tripleseat API.

View Spec View on GitHub RestaurantEventsCateringLeadsWebhooksSalesAsyncAPIWebhooksEvents

Channels

webhook
The subscriber URL that receives webhook POST requests.

Messages

LeadCreated
Lead Created
A new lead was created (for example, via the public lead form).
InternalLeadCreated
Internal Lead Created
A lead was created internally within Tripleseat.
LeadConverted
Lead Converted
A lead was converted into an account and contact.
LeadConvertedToBooking
Lead Converted To Booking
A lead was converted into an event or booking.
LeadTurnedDown
Lead Turned Down
A lead was turned down.

Servers

https
subscriber
The subscriber endpoint URL you register in Tripleseat. Tripleseat POSTs webhook payloads to this URL.

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: Tripleseat Webhooks
  version: v1
  description: >-
    Tripleseat webhooks POST a JSON package to a subscriber URL when a lead or
    booking lifecycle event occurs. Each request carries an X-Signature header
    computed with SHA256-HMAC using the webhook endpoint's signing key, which
    subscribers should verify with a constant-time comparison. Subscribers must
    return HTTP 200 on receipt; otherwise Tripleseat re-sends the same POST up to
    five additional times. Webhooks are configured under Settings → Tripleseat
    API.
  contact:
    name: Kin Lane
    email: [email protected]
  externalDocs:
    description: Tripleseat API Webhooks
    url: https://support.tripleseat.com/hc/en-us/articles/40075780832919-API-Webhooks
defaultContentType: application/json
servers:
  subscriber:
    host: example.com
    protocol: https
    description: >-
      The subscriber endpoint URL you register in Tripleseat. Tripleseat POSTs
      webhook payloads to this URL.
channels:
  webhook:
    address: /
    description: The subscriber URL that receives webhook POST requests.
    messages:
      leadCreated:
        $ref: '#/components/messages/LeadCreated'
      internalLeadCreated:
        $ref: '#/components/messages/InternalLeadCreated'
      leadConverted:
        $ref: '#/components/messages/LeadConverted'
      leadConvertedToBooking:
        $ref: '#/components/messages/LeadConvertedToBooking'
      leadTurnedDown:
        $ref: '#/components/messages/LeadTurnedDown'
operations:
  receiveWebhook:
    action: receive
    channel:
      $ref: '#/channels/webhook'
    summary: Receive A Tripleseat Webhook
    description: >-
      Handle an inbound webhook POST from Tripleseat. Verify the X-Signature
      header before processing, then return HTTP 200.
    messages:
    - $ref: '#/channels/webhook/messages/leadCreated'
    - $ref: '#/channels/webhook/messages/internalLeadCreated'
    - $ref: '#/channels/webhook/messages/leadConverted'
    - $ref: '#/channels/webhook/messages/leadConvertedToBooking'
    - $ref: '#/channels/webhook/messages/leadTurnedDown'
components:
  messages:
    LeadCreated:
      name: CREATE_LEAD
      title: Lead Created
      summary: A new lead was created (for example, via the public lead form).
      contentType: application/json
      headers:
        $ref: '#/components/schemas/WebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookPayload'
      examples:
      - name: LeadCreatedDefaultExample
        summary: Default LeadCreated example payload
        x-microcks-default: true
        payload:
          webhook_trigger_type: CREATE_LEAD
          message: Lead was created
          object:
            id: 500123
            name: Spring Gala Dinner
            event_date: '2026-07-15'
            status: definite
    InternalLeadCreated:
      name: CREATE_INTERNAL_LEAD
      title: Internal Lead Created
      summary: A lead was created internally within Tripleseat.
      contentType: application/json
      headers:
        $ref: '#/components/schemas/WebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookPayload'
      examples:
      - name: InternalLeadCreatedDefaultExample
        summary: Default InternalLeadCreated example payload
        x-microcks-default: true
        payload:
          webhook_trigger_type: CREATE_INTERNAL_LEAD
          message: Internal lead was created
          object:
            id: 500123
            name: Spring Gala Dinner
            event_date: '2026-07-15'
            status: definite
    LeadConverted:
      name: CONVERT_LEAD
      title: Lead Converted
      summary: A lead was converted into an account and contact.
      contentType: application/json
      headers:
        $ref: '#/components/schemas/WebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookPayload'
      examples:
      - name: LeadConvertedDefaultExample
        summary: Default LeadConverted example payload
        x-microcks-default: true
        payload:
          webhook_trigger_type: CONVERT_LEAD
          message: Lead was converted to an account and contact
          object:
            id: 500123
            name: Spring Gala Dinner
            event_date: '2026-07-15'
            status: definite
    LeadConvertedToBooking:
      name: CONVERT_LEAD_TO_BOOKING
      title: Lead Converted To Booking
      summary: A lead was converted into an event or booking.
      contentType: application/json
      headers:
        $ref: '#/components/schemas/WebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookPayload'
      examples:
      - name: LeadConvertedToBookingDefaultExample
        summary: Default LeadConvertedToBooking example payload
        x-microcks-default: true
        payload:
          webhook_trigger_type: CONVERT_LEAD_TO_BOOKING
          message: Lead was converted to a booking
          object:
            id: 500123
            name: Spring Gala Dinner
            event_date: '2026-07-15'
            status: definite
    LeadTurnedDown:
      name: LEAD_TURNED_DOWN
      title: Lead Turned Down
      summary: A lead was turned down.
      contentType: application/json
      headers:
        $ref: '#/components/schemas/WebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookPayload'
      examples:
      - name: LeadTurnedDownDefaultExample
        summary: Default LeadTurnedDown example payload
        x-microcks-default: true
        payload:
          webhook_trigger_type: LEAD_TURNED_DOWN
          message: Lead was turned down
          object:
            id: 500123
            name: Spring Gala Dinner
            event_date: '2026-07-15'
            status: definite
  schemas:
    WebhookHeaders:
      type: object
      properties:
        X-Signature:
          type: string
          description: >-
            SHA256-HMAC signature of the request payload computed with the
            webhook endpoint's signing key. Verify with a constant-time
            comparison.
          example: example
    WebhookPayload:
      type: object
      description: The JSON package POSTed to the subscriber URL.
      properties:
        webhook_trigger_type:
          type: string
          description: The trigger event type.
          enum:
          - CREATE_LEAD
          - CREATE_INTERNAL_LEAD
          - CONVERT_LEAD
          - CONVERT_LEAD_TO_BOOKING
          - LEAD_TURNED_DOWN
          example: CREATE_LEAD
        message:
          type: string
          description: A human-readable description of the event.
          example: Lead was created
        object:
          type: object
          description: >-
            The full object payload for the event (for example, a lead or event
            object with id, name, event_date, and status).
          properties:
            id:
              type: integer
            name:
              type: string
            event_date:
              type: string
              format: date
            status:
              type: string