Webhooks

Check Cherry sends a signed HTTP POST to your URL when something happens in an account. API reference · Changelog

Subscribing

A business adds webhooks for its own account under Integrations › Developer API › Overview. Each subscription is one trigger and one URL.

An app adds webhooks in the developer portal. They fire for every business that has the app enabled, and each payload says which business it came from.

Using Zapier? It manages its own subscriptions. Nothing here needs setting up.

Triggers

The body is a JSON:API document with the record in data, the same shape the API returns.

Open a trigger to see a sample payload.

Any Booking Created new_event
{
  "data": {
    "id": "12345",
    "type": "event",
    "attributes": {
      "id": 12345,
      "title": "Johnson Wedding Reception",
      "status": "confirmed",
      "formatted_status": "Confirmed",
      "formatted_status_with_context": "Confirmed",
      "booked_at": "2026-03-15 10:30:00 -0500",
      "created_at": "2026-03-10 08:00:00 -0500",
      "created_via": "online_booking",
      "venue_name": "Grand Ballroom",
      "venue_address": "123 Main St",
      "venue_city": "Nashville",
      "venue_state": "TN",
      "venue_zip": "37201",
      "venue_map_url": "https://www.google.com/maps/search/123+Main+St+Nashville+TN",
      "venue_google_place_id": null,
      "public_notes": "Please use the side entrance",
      "private_notes": "Client prefers country music",
      "coupon_code": null,
      "photo_album_url": null,
      "photo_album_instructions": null,
      "video_url": null,
      "video_album_instructions": null,
      "completed": false,
      "canceled": false,
      "archived": false,
      "postponed": false,
      "invoice_number": "20260315-01",
      "billable_distance": null,
      "total_distance": null,
      "distance_unit": null,
      "latitude": null,
      "longitude": null,
      "tax_rate": "9.25",
      "source": "Website",
      "estimated_number_guests": 150,
      "indoor_outdoor": "indoor",
      "lead_event_type": "Wedding",
      "contact_preference": null,
      "po_number": null,
      "stair_setup": null,
      "token": "ABC-1234-XYZ",
      "utm_source": "google",
      "utm_campaign": "weddings-2026",
      "utm_medium": "cpc",
      "utm_term": null,
      "utm_content": null,
      "gclid": null,
      "starts_at": "2026-06-21 18:00:00 -0500",
      "ends_at": "2026-06-21 23:00:00 -0500",
      "length_in_minutes": "300.0",
      "length_in_hours": "5.0",
      "starting_balance": "2500.00",
      "starting_balance_cents": 250000,
      "starting_balance_currency": "USD",
      "starting_balance_formatted": "$2,500.00",
      "deposit_amount_due": "500.00",
      "deposit_amount_due_cents": 50000,
      "deposit_amount_due_currency": "USD",
      "deposit_amount_due_formatted": "$500.00",
      "custom_deposit_amount": null,
      "custom_deposit_amount_cents": null,
      "custom_deposit_amount_currency": null,
      "custom_deposit_amount_formatted": null,
      "balance_amount_due": "2000.00",
      "balance_amount_due_cents": 200000,
      "balance_amount_due_currency": "USD",
      "balance_amount_due_formatted": "$2,000.00",
      "starts_at_date": "06-21-2026",
      "starts_at_date_iso8601": "2026-06-21",
      "starts_at_time": "6:00 PM",
      "invoice_date": "03-15-2026",
      "invoice_date_iso8601": "2026-03-15",
      "proposal_theme": "classic",
      "proposal_valid_through": null,
      "proposal_viewed_at": null,
      "next_follow_up_on": null,
      "package_name": "Premium DJ Package",
      "package_group_name": "Wedding Packages",
      "service_name": "DJ Services",
      "package_description_html": "<div>Premium DJ Package - 5 hours</div>",
      "add_on_names": "Photo Booth, Uplighting",
      "add_on_quantities_name_and_price": "1x Photo Booth ($400), 1x Uplighting ($250)",
      "extra_names": "Wireless Microphone",
      "extra_quantities_name_and_price": "1x Wireless Microphone ($50)",
      "backdrop_names": "",
      "backdrop_name_and_price": "",
      "design_statuses": null,
      "due_at": "2026-03-15 00:00:00 -0500",
      "customer_ids": "678",
      "customer_names": "Sarah Johnson",
      "customer_emails": "sarah@example.com",
      "customer_phones": "(615) 555-1234",
      "customer_addresses": "456 Oak Ave, Nashville, TN 37203",
      "customer_and_contact_ids": "678",
      "customer_and_contact_names": "Sarah Johnson",
      "customer_and_contact_emails": "sarah@example.com",
      "customer_and_contact_phones": "(615) 555-1234",
      "additional_contact_ids": "",
      "additional_contact_names": "",
      "additional_contact_emails": "",
      "additional_contact_phones": "",
      "assigned_staff_ids": "42",
      "assigned_staff_names": "Mike Smith",
      "assigned_staff_abbreviations": "MS",
      "assigned_staff_emails": "mike@example.com",
      "change_summary": null,
      "brand_id": 1,
      "brand_name": "Nashville DJ Co",
      "primary_image": {
        "hero_variant": "https://img.checkcherry.com/example-image-url"
      },
      "booked_at_description": "Booked 3 months ago via Online booking",
      "current_user_assigned": false,
      "event_url": "https://example.checkcherry.com/events/12345?token=ABC-1234-XYZ",
      "questionnaires_url": "https://example.checkcherry.com/events/12345/forms?token=ABC-1234-XYZ",
      "payment_url": "https://example.checkcherry.com/events/12345/payments/new?token=ABC-1234-XYZ",
      "invoice_url": "https://example.checkcherry.com/events/12345/invoice?token=ABC-1234-XYZ",
      "designs_url": "https://example.checkcherry.com/events/12345/designs?token=ABC-1234-XYZ",
      "proposal_url": null,
      "referred_by_user_id": null,
      "referred_by_user_name": null,
      "referred_by_user_email": null,
      "custom_fields": [
        {
          "identifier": "how_did_you_hear_about_us",
          "value": "Friend referral",
          "formatted_value": "Friend referral"
        }
      ]
    },
    "relationships": {
      "event_bookings": {
        "data": [
          {
            "id": "67890",
            "type": "event_booking"
          }
        ]
      },
      "proposal_alternatives": {
        "data": []
      },
      "event_users": {
        "data": [
          {
            "id": "678",
            "type": "event_user"
          }
        ]
      },
      "event_staff_members": {
        "data": [
          {
            "id": "42",
            "type": "event_staff_member"
          }
        ]
      },
      "event_staff_requests": {
        "data": []
      },
      "contacts": {
        "data": []
      },
      "notes": {
        "data": []
      }
    }
  }
}
Any Booking is Complete event_complete
{
  "data": {
    "id": "12345",
    "type": "event",
    "attributes": {
      "id": 12345,
      "title": "Johnson Wedding Reception",
      "status": "confirmed",
      "formatted_status": "Confirmed",
      "formatted_status_with_context": "Confirmed",
      "booked_at": "2026-03-15 10:30:00 -0500",
      "created_at": "2026-03-10 08:00:00 -0500",
      "created_via": "online_booking",
      "venue_name": "Grand Ballroom",
      "venue_address": "123 Main St",
      "venue_city": "Nashville",
      "venue_state": "TN",
      "venue_zip": "37201",
      "venue_map_url": "https://www.google.com/maps/search/123+Main+St+Nashville+TN",
      "venue_google_place_id": null,
      "public_notes": "Please use the side entrance",
      "private_notes": "Client prefers country music",
      "coupon_code": null,
      "photo_album_url": null,
      "photo_album_instructions": null,
      "video_url": null,
      "video_album_instructions": null,
      "completed": false,
      "canceled": false,
      "archived": false,
      "postponed": false,
      "invoice_number": "20260315-01",
      "billable_distance": null,
      "total_distance": null,
      "distance_unit": null,
      "latitude": null,
      "longitude": null,
      "tax_rate": "9.25",
      "source": "Website",
      "estimated_number_guests": 150,
      "indoor_outdoor": "indoor",
      "lead_event_type": "Wedding",
      "contact_preference": null,
      "po_number": null,
      "stair_setup": null,
      "token": "ABC-1234-XYZ",
      "utm_source": "google",
      "utm_campaign": "weddings-2026",
      "utm_medium": "cpc",
      "utm_term": null,
      "utm_content": null,
      "gclid": null,
      "starts_at": "2026-06-21 18:00:00 -0500",
      "ends_at": "2026-06-21 23:00:00 -0500",
      "length_in_minutes": "300.0",
      "length_in_hours": "5.0",
      "starting_balance": "2500.00",
      "starting_balance_cents": 250000,
      "starting_balance_currency": "USD",
      "starting_balance_formatted": "$2,500.00",
      "deposit_amount_due": "500.00",
      "deposit_amount_due_cents": 50000,
      "deposit_amount_due_currency": "USD",
      "deposit_amount_due_formatted": "$500.00",
      "custom_deposit_amount": null,
      "custom_deposit_amount_cents": null,
      "custom_deposit_amount_currency": null,
      "custom_deposit_amount_formatted": null,
      "balance_amount_due": "2000.00",
      "balance_amount_due_cents": 200000,
      "balance_amount_due_currency": "USD",
      "balance_amount_due_formatted": "$2,000.00",
      "starts_at_date": "06-21-2026",
      "starts_at_date_iso8601": "2026-06-21",
      "starts_at_time": "6:00 PM",
      "invoice_date": "03-15-2026",
      "invoice_date_iso8601": "2026-03-15",
      "proposal_theme": "classic",
      "proposal_valid_through": null,
      "proposal_viewed_at": null,
      "next_follow_up_on": null,
      "package_name": "Premium DJ Package",
      "package_group_name": "Wedding Packages",
      "service_name": "DJ Services",
      "package_description_html": "<div>Premium DJ Package - 5 hours</div>",
      "add_on_names": "Photo Booth, Uplighting",
      "add_on_quantities_name_and_price": "1x Photo Booth ($400), 1x Uplighting ($250)",
      "extra_names": "Wireless Microphone",
      "extra_quantities_name_and_price": "1x Wireless Microphone ($50)",
      "backdrop_names": "",
      "backdrop_name_and_price": "",
      "design_statuses": null,
      "due_at": "2026-03-15 00:00:00 -0500",
      "customer_ids": "678",
      "customer_names": "Sarah Johnson",
      "customer_emails": "sarah@example.com",
      "customer_phones": "(615) 555-1234",
      "customer_addresses": "456 Oak Ave, Nashville, TN 37203",
      "customer_and_contact_ids": "678",
      "customer_and_contact_names": "Sarah Johnson",
      "customer_and_contact_emails": "sarah@example.com",
      "customer_and_contact_phones": "(615) 555-1234",
      "additional_contact_ids": "",
      "additional_contact_names": "",
      "additional_contact_emails": "",
      "additional_contact_phones": "",
      "assigned_staff_ids": "42",
      "assigned_staff_names": "Mike Smith",
      "assigned_staff_abbreviations": "MS",
      "assigned_staff_emails": "mike@example.com",
      "change_summary": null,
      "brand_id": 1,
      "brand_name": "Nashville DJ Co",
      "primary_image": {
        "hero_variant": "https://img.checkcherry.com/example-image-url"
      },
      "booked_at_description": "Booked 3 months ago via Online booking",
      "current_user_assigned": false,
      "event_url": "https://example.checkcherry.com/events/12345?token=ABC-1234-XYZ",
      "questionnaires_url": "https://example.checkcherry.com/events/12345/forms?token=ABC-1234-XYZ",
      "payment_url": "https://example.checkcherry.com/events/12345/payments/new?token=ABC-1234-XYZ",
      "invoice_url": "https://example.checkcherry.com/events/12345/invoice?token=ABC-1234-XYZ",
      "designs_url": "https://example.checkcherry.com/events/12345/designs?token=ABC-1234-XYZ",
      "proposal_url": null,
      "referred_by_user_id": null,
      "referred_by_user_name": null,
      "referred_by_user_email": null,
      "custom_fields": [
        {
          "identifier": "how_did_you_hear_about_us",
          "value": "Friend referral",
          "formatted_value": "Friend referral"
        }
      ]
    },
    "relationships": {
      "event_bookings": {
        "data": [
          {
            "id": "67890",
            "type": "event_booking"
          }
        ]
      },
      "proposal_alternatives": {
        "data": []
      },
      "event_users": {
        "data": [
          {
            "id": "678",
            "type": "event_user"
          }
        ]
      },
      "event_staff_members": {
        "data": [
          {
            "id": "42",
            "type": "event_staff_member"
          }
        ]
      },
      "event_staff_requests": {
        "data": []
      },
      "contacts": {
        "data": []
      },
      "notes": {
        "data": []
      }
    }
  }
}
Any Booking Updated updated_event
{
  "data": {
    "id": "12345",
    "type": "event",
    "attributes": {
      "id": 12345,
      "title": "Johnson Wedding Reception",
      "status": "confirmed",
      "formatted_status": "Confirmed",
      "formatted_status_with_context": "Confirmed",
      "booked_at": "2026-03-15 10:30:00 -0500",
      "created_at": "2026-03-10 08:00:00 -0500",
      "created_via": "online_booking",
      "venue_name": "Grand Ballroom",
      "venue_address": "123 Main St",
      "venue_city": "Nashville",
      "venue_state": "TN",
      "venue_zip": "37201",
      "venue_map_url": "https://www.google.com/maps/search/123+Main+St+Nashville+TN",
      "venue_google_place_id": null,
      "public_notes": "Please use the side entrance",
      "private_notes": "Client prefers country music",
      "coupon_code": null,
      "photo_album_url": null,
      "photo_album_instructions": null,
      "video_url": null,
      "video_album_instructions": null,
      "completed": false,
      "canceled": false,
      "archived": false,
      "postponed": false,
      "invoice_number": "20260315-01",
      "billable_distance": null,
      "total_distance": null,
      "distance_unit": null,
      "latitude": null,
      "longitude": null,
      "tax_rate": "9.25",
      "source": "Website",
      "estimated_number_guests": 150,
      "indoor_outdoor": "indoor",
      "lead_event_type": "Wedding",
      "contact_preference": null,
      "po_number": null,
      "stair_setup": null,
      "token": "ABC-1234-XYZ",
      "utm_source": "google",
      "utm_campaign": "weddings-2026",
      "utm_medium": "cpc",
      "utm_term": null,
      "utm_content": null,
      "gclid": null,
      "starts_at": "2026-06-21 18:00:00 -0500",
      "ends_at": "2026-06-21 23:00:00 -0500",
      "length_in_minutes": "300.0",
      "length_in_hours": "5.0",
      "starting_balance": "2500.00",
      "starting_balance_cents": 250000,
      "starting_balance_currency": "USD",
      "starting_balance_formatted": "$2,500.00",
      "deposit_amount_due": "500.00",
      "deposit_amount_due_cents": 50000,
      "deposit_amount_due_currency": "USD",
      "deposit_amount_due_formatted": "$500.00",
      "custom_deposit_amount": null,
      "custom_deposit_amount_cents": null,
      "custom_deposit_amount_currency": null,
      "custom_deposit_amount_formatted": null,
      "balance_amount_due": "2000.00",
      "balance_amount_due_cents": 200000,
      "balance_amount_due_currency": "USD",
      "balance_amount_due_formatted": "$2,000.00",
      "starts_at_date": "06-21-2026",
      "starts_at_date_iso8601": "2026-06-21",
      "starts_at_time": "6:00 PM",
      "invoice_date": "03-15-2026",
      "invoice_date_iso8601": "2026-03-15",
      "proposal_theme": "classic",
      "proposal_valid_through": null,
      "proposal_viewed_at": null,
      "next_follow_up_on": null,
      "package_name": "Premium DJ Package",
      "package_group_name": "Wedding Packages",
      "service_name": "DJ Services",
      "package_description_html": "<div>Premium DJ Package - 5 hours</div>",
      "add_on_names": "Photo Booth, Uplighting",
      "add_on_quantities_name_and_price": "1x Photo Booth ($400), 1x Uplighting ($250)",
      "extra_names": "Wireless Microphone",
      "extra_quantities_name_and_price": "1x Wireless Microphone ($50)",
      "backdrop_names": "",
      "backdrop_name_and_price": "",
      "design_statuses": null,
      "due_at": "2026-03-15 00:00:00 -0500",
      "customer_ids": "678",
      "customer_names": "Sarah Johnson",
      "customer_emails": "sarah@example.com",
      "customer_phones": "(615) 555-1234",
      "customer_addresses": "456 Oak Ave, Nashville, TN 37203",
      "customer_and_contact_ids": "678",
      "customer_and_contact_names": "Sarah Johnson",
      "customer_and_contact_emails": "sarah@example.com",
      "customer_and_contact_phones": "(615) 555-1234",
      "additional_contact_ids": "",
      "additional_contact_names": "",
      "additional_contact_emails": "",
      "additional_contact_phones": "",
      "assigned_staff_ids": "42",
      "assigned_staff_names": "Mike Smith",
      "assigned_staff_abbreviations": "MS",
      "assigned_staff_emails": "mike@example.com",
      "change_summary": {
        "venue_name": [
          "The Old Mill",
          "Grand Ballroom"
        ],
        "starts_at": [
          "2026-06-20 18:00:00 -0500",
          "2026-06-21 18:00:00 -0500"
        ]
      },
      "brand_id": 1,
      "brand_name": "Nashville DJ Co",
      "primary_image": {
        "hero_variant": "https://img.checkcherry.com/example-image-url"
      },
      "booked_at_description": "Booked 3 months ago via Online booking",
      "current_user_assigned": false,
      "event_url": "https://example.checkcherry.com/events/12345?token=ABC-1234-XYZ",
      "questionnaires_url": "https://example.checkcherry.com/events/12345/forms?token=ABC-1234-XYZ",
      "payment_url": "https://example.checkcherry.com/events/12345/payments/new?token=ABC-1234-XYZ",
      "invoice_url": "https://example.checkcherry.com/events/12345/invoice?token=ABC-1234-XYZ",
      "designs_url": "https://example.checkcherry.com/events/12345/designs?token=ABC-1234-XYZ",
      "proposal_url": null,
      "referred_by_user_id": null,
      "referred_by_user_name": null,
      "referred_by_user_email": null,
      "custom_fields": [
        {
          "identifier": "how_did_you_hear_about_us",
          "value": "Friend referral",
          "formatted_value": "Friend referral"
        }
      ]
    },
    "relationships": {
      "event_bookings": {
        "data": [
          {
            "id": "67890",
            "type": "event_booking"
          }
        ]
      },
      "proposal_alternatives": {
        "data": []
      },
      "event_users": {
        "data": [
          {
            "id": "678",
            "type": "event_user"
          }
        ]
      },
      "event_staff_members": {
        "data": [
          {
            "id": "42",
            "type": "event_staff_member"
          }
        ]
      },
      "event_staff_requests": {
        "data": []
      },
      "contacts": {
        "data": []
      },
      "notes": {
        "data": []
      }
    }
  }
}
Any Proposal Created new_proposal
{
  "data": {
    "id": "12345",
    "type": "event",
    "attributes": {
      "id": 12345,
      "title": "Johnson Wedding Reception",
      "status": "confirmed",
      "formatted_status": "Confirmed",
      "formatted_status_with_context": "Confirmed",
      "booked_at": "2026-03-15 10:30:00 -0500",
      "created_at": "2026-03-10 08:00:00 -0500",
      "created_via": "online_booking",
      "venue_name": "Grand Ballroom",
      "venue_address": "123 Main St",
      "venue_city": "Nashville",
      "venue_state": "TN",
      "venue_zip": "37201",
      "venue_map_url": "https://www.google.com/maps/search/123+Main+St+Nashville+TN",
      "venue_google_place_id": null,
      "public_notes": "Please use the side entrance",
      "private_notes": "Client prefers country music",
      "coupon_code": null,
      "photo_album_url": null,
      "photo_album_instructions": null,
      "video_url": null,
      "video_album_instructions": null,
      "completed": false,
      "canceled": false,
      "archived": false,
      "postponed": false,
      "invoice_number": "20260315-01",
      "billable_distance": null,
      "total_distance": null,
      "distance_unit": null,
      "latitude": null,
      "longitude": null,
      "tax_rate": "9.25",
      "source": "Website",
      "estimated_number_guests": 150,
      "indoor_outdoor": "indoor",
      "lead_event_type": "Wedding",
      "contact_preference": null,
      "po_number": null,
      "stair_setup": null,
      "token": "ABC-1234-XYZ",
      "utm_source": "google",
      "utm_campaign": "weddings-2026",
      "utm_medium": "cpc",
      "utm_term": null,
      "utm_content": null,
      "gclid": null,
      "starts_at": "2026-06-21 18:00:00 -0500",
      "ends_at": "2026-06-21 23:00:00 -0500",
      "length_in_minutes": "300.0",
      "length_in_hours": "5.0",
      "starting_balance": "2500.00",
      "starting_balance_cents": 250000,
      "starting_balance_currency": "USD",
      "starting_balance_formatted": "$2,500.00",
      "deposit_amount_due": "500.00",
      "deposit_amount_due_cents": 50000,
      "deposit_amount_due_currency": "USD",
      "deposit_amount_due_formatted": "$500.00",
      "custom_deposit_amount": null,
      "custom_deposit_amount_cents": null,
      "custom_deposit_amount_currency": null,
      "custom_deposit_amount_formatted": null,
      "balance_amount_due": "2000.00",
      "balance_amount_due_cents": 200000,
      "balance_amount_due_currency": "USD",
      "balance_amount_due_formatted": "$2,000.00",
      "starts_at_date": "06-21-2026",
      "starts_at_date_iso8601": "2026-06-21",
      "starts_at_time": "6:00 PM",
      "invoice_date": "03-15-2026",
      "invoice_date_iso8601": "2026-03-15",
      "proposal_theme": "classic",
      "proposal_valid_through": null,
      "proposal_viewed_at": null,
      "next_follow_up_on": null,
      "package_name": "Premium DJ Package",
      "package_group_name": "Wedding Packages",
      "service_name": "DJ Services",
      "package_description_html": "<div>Premium DJ Package - 5 hours</div>",
      "add_on_names": "Photo Booth, Uplighting",
      "add_on_quantities_name_and_price": "1x Photo Booth ($400), 1x Uplighting ($250)",
      "extra_names": "Wireless Microphone",
      "extra_quantities_name_and_price": "1x Wireless Microphone ($50)",
      "backdrop_names": "",
      "backdrop_name_and_price": "",
      "design_statuses": null,
      "due_at": "2026-03-15 00:00:00 -0500",
      "customer_ids": "678",
      "customer_names": "Sarah Johnson",
      "customer_emails": "sarah@example.com",
      "customer_phones": "(615) 555-1234",
      "customer_addresses": "456 Oak Ave, Nashville, TN 37203",
      "customer_and_contact_ids": "678",
      "customer_and_contact_names": "Sarah Johnson",
      "customer_and_contact_emails": "sarah@example.com",
      "customer_and_contact_phones": "(615) 555-1234",
      "additional_contact_ids": "",
      "additional_contact_names": "",
      "additional_contact_emails": "",
      "additional_contact_phones": "",
      "assigned_staff_ids": "42",
      "assigned_staff_names": "Mike Smith",
      "assigned_staff_abbreviations": "MS",
      "assigned_staff_emails": "mike@example.com",
      "change_summary": null,
      "brand_id": 1,
      "brand_name": "Nashville DJ Co",
      "primary_image": {
        "hero_variant": "https://img.checkcherry.com/example-image-url"
      },
      "booked_at_description": "Booked 3 months ago via Online booking",
      "current_user_assigned": false,
      "event_url": "https://example.checkcherry.com/events/12345?token=ABC-1234-XYZ",
      "questionnaires_url": "https://example.checkcherry.com/events/12345/forms?token=ABC-1234-XYZ",
      "payment_url": "https://example.checkcherry.com/events/12345/payments/new?token=ABC-1234-XYZ",
      "invoice_url": "https://example.checkcherry.com/events/12345/invoice?token=ABC-1234-XYZ",
      "designs_url": "https://example.checkcherry.com/events/12345/designs?token=ABC-1234-XYZ",
      "proposal_url": null,
      "referred_by_user_id": null,
      "referred_by_user_name": null,
      "referred_by_user_email": null,
      "custom_fields": [
        {
          "identifier": "how_did_you_hear_about_us",
          "value": "Friend referral",
          "formatted_value": "Friend referral"
        }
      ]
    },
    "relationships": {
      "event_bookings": {
        "data": [
          {
            "id": "67890",
            "type": "event_booking"
          }
        ]
      },
      "proposal_alternatives": {
        "data": []
      },
      "event_users": {
        "data": [
          {
            "id": "678",
            "type": "event_user"
          }
        ]
      },
      "event_staff_members": {
        "data": [
          {
            "id": "42",
            "type": "event_staff_member"
          }
        ]
      },
      "event_staff_requests": {
        "data": []
      },
      "contacts": {
        "data": []
      },
      "notes": {
        "data": []
      }
    }
  }
}
Any Lead Created new_lead
{
  "data": {
    "id": "9876",
    "type": "lead",
    "attributes": {
      "id": 9876,
      "email": "jane@example.com",
      "first_name": "Jane",
      "last_name": "Doe",
      "company_name": "Doe Corp",
      "phone": "(615) 555-9876",
      "venue_name": "Hilton Downtown",
      "venue_address": "456 Broadway",
      "venue_city": "Nashville",
      "venue_state": "TN",
      "venue_zip": "37203",
      "venue_map_url": "https://www.google.com/maps/search/456+Broadway+Nashville+TN",
      "venue_latitude": null,
      "venue_longitude": null,
      "venue_google_place_id": null,
      "estimated_budget": null,
      "estimated_number_guests": 200,
      "subject": "Corporate Holiday Party",
      "message": "We're planning a corporate holiday party for about 200 guests.",
      "source": "Website",
      "notes": null,
      "lead_event_type": "Corporate Event",
      "lead_type": "inquiry",
      "last_contact_at": null,
      "next_follow_up_on": "2026-04-15",
      "origin": "Online Booking",
      "indoor_outdoor": "indoor",
      "title": "Jane Doe - Corporate Holiday Party",
      "setup_at": null,
      "pickup_at": null,
      "dropoff_at": null,
      "brand_id": 1,
      "brand_name": "Nashville DJ Co",
      "created_at": "2026-04-01 14:30:00 -0500",
      "token": "DEF-5678-UVW",
      "spam": false,
      "archived": false,
      "converted_to_event": false,
      "utm_source": "google",
      "utm_campaign": "corporate-2026",
      "utm_medium": "cpc",
      "utm_term": null,
      "utm_content": null,
      "gclid": null,
      "starts_at": "2026-12-15 19:00:00 -0500",
      "ends_at": "2026-12-15 23:00:00 -0500",
      "length_in_hours": 4.0,
      "length_in_minutes": 240.0,
      "length_in_days": null,
      "event_time": null,
      "event_type_id": null,
      "event_date": "2026-12-15",
      "package_name": "Corporate DJ Package",
      "package_group_name": "Corporate Packages",
      "service_name": "DJ Services",
      "package_names": [
        "Corporate DJ Package"
      ],
      "service_names": [
        "DJ Services",
        "Photo Booth"
      ],
      "length": null,
      "formatted_time_range": "7:00 PM - 11:00 PM",
      "formatted_date_range": "December 15, 2026",
      "formatted_datetime_range": "December 15, 2026 7:00 PM - 11:00 PM",
      "custom_fields": [
        {
          "identifier": "how_did_you_hear_about_us",
          "value": "Google search",
          "formatted_value": "Google search"
        }
      ],
      "marketplace": false,
      "marketplace_requested_booth_label": null,
      "created_at_description": "Created 1 week ago",
      "referred_by_user_id": null,
      "referred_by_user_name": null,
      "referred_by_user_email": null,
      "resume_booking_link": "https://example.checkcherry.com/reservation/resume?lead_id=9876&token=DEF-5678-UVW"
    },
    "relationships": {
      "lead_bookings": {
        "data": [
          {
            "id": "4567",
            "type": "lead_booking"
          },
          {
            "id": "4568",
            "type": "lead_booking"
          }
        ]
      }
    }
  }
}
Any User Created new_user
{
  "data": {
    "id": "42",
    "type": "user",
    "attributes": {
      "id": 42,
      "full_name": "Mike Smith",
      "first_name": "Mike",
      "last_name": "Smith",
      "email": "mike@example.com",
      "company_name": "Nashville DJ Co",
      "staff_role": true,
      "admin_role": false,
      "customer_role": false,
      "enhanced_scheduling_role": false,
      "roles_description": "Staff",
      "private_notes": null,
      "bio": "Professional DJ with 10 years of experience",
      "description": null,
      "show_all_events": false,
      "extended_permissions": null,
      "sales_permissions": false,
      "allow_customers_to_see_contact_information": true,
      "archived": false,
      "street": "789 Music Row",
      "city": "Nashville",
      "state_code": "TN",
      "postal_code": "37203",
      "available_sunday": "no",
      "available_monday": "yes",
      "available_tuesday": "yes",
      "available_wednesday": "yes",
      "available_thursday": "yes",
      "available_friday": "yes",
      "available_saturday": "yes",
      "available_sunday_starts_at_time": null,
      "available_sunday_ends_at_time": null,
      "available_monday_starts_at_time": "09:00",
      "available_monday_ends_at_time": "23:00",
      "available_tuesday_starts_at_time": "09:00",
      "available_tuesday_ends_at_time": "23:00",
      "available_wednesday_starts_at_time": "09:00",
      "available_wednesday_ends_at_time": "23:00",
      "available_thursday_starts_at_time": "09:00",
      "available_thursday_ends_at_time": "23:00",
      "available_friday_starts_at_time": "09:00",
      "available_friday_ends_at_time": "23:00",
      "available_saturday_starts_at_time": "09:00",
      "available_saturday_ends_at_time": "23:00",
      "available_sunday_description": "Not Available",
      "available_monday_description": "9:00 AM - 11:00 PM",
      "available_tuesday_description": "9:00 AM - 11:00 PM",
      "available_wednesday_description": "9:00 AM - 11:00 PM",
      "available_thursday_description": "9:00 AM - 11:00 PM",
      "available_friday_description": "9:00 AM - 11:00 PM",
      "available_saturday_description": "9:00 AM - 11:00 PM",
      "default_map_provider": null,
      "primary_image": "https://example.checkcherry.com/assets/default-avatar.png",
      "bio_pic_attachment": null,
      "phone": "(615) 555-4242",
      "phone_normalized": "+16155554242",
      "works_sunday": false,
      "works_monday": true,
      "works_tuesday": true,
      "works_wednesday": true,
      "works_thursday": true,
      "works_friday": true,
      "works_saturday": true,
      "last_login_description": "Last logged in 2 days ago",
      "permissions": null,
      "conflicts": null,
      "address": "789 Music Row, Nashville, TN 37203"
    }
  }
}
Any Payment Created new_payment
{
  "data": {
    "id": "5432",
    "type": "event_payment",
    "attributes": {
      "id": 5432,
      "event_id": 12345,
      "paid_at": "2026-04-05 09:15:00 -0500",
      "payment_method": "Credit Card",
      "reference": "ch_3abc123def456ghi789",
      "processor": "stripe",
      "refund": false,
      "amount": "500.00",
      "amount_cents": 50000,
      "amount_currency": "USD",
      "amount_formatted": "$500.00",
      "tip_amount": "50.00",
      "tip_amount_cents": 5000,
      "tip_amount_currency": "USD",
      "tip_amount_formatted": "$50.00",
      "total_amount": "550.00",
      "total_amount_cents": 55000,
      "total_amount_currency": "USD",
      "total_amount_formatted": "$550.00",
      "paid_by": "Sarah Johnson",
      "paid_at_formatted": "04-05-2026 9:15 AM",
      "event_starts_at": "2026-06-21 18:00:00 -0500",
      "invoice_number": "20260315-01",
      "event_title": "Johnson Wedding Reception",
      "event_total": "2500.00",
      "event_total_cents": 250000,
      "event_total_currency": "USD",
      "event_total_formatted": "$2,500.00",
      "taxable_amount": "500.00",
      "taxable_amount_cents": 50000,
      "taxable_amount_currency": "USD",
      "taxable_amount_formatted": "$500.00",
      "non_taxable_amount": "0.00",
      "non_taxable_amount_cents": 0,
      "non_taxable_amount_currency": "USD",
      "non_taxable_amount_formatted": "$0.00",
      "tax_rate": "9.25",
      "tax_collected": "46.25",
      "tax_collected_cents": 4625,
      "tax_collected_currency": "USD",
      "tax_collected_formatted": "$46.25",
      "amount_collected_excluding_tax": "453.75",
      "amount_collected_excluding_tax_cents": 45375,
      "amount_collected_excluding_tax_currency": "USD",
      "amount_collected_excluding_tax_formatted": "$453.75",
      "processing_fees": "14.80",
      "processing_fees_cents": 1480,
      "processing_fees_currency": "USD",
      "processing_fees_formatted": "$14.80",
      "net_amount": "485.20",
      "net_amount_cents": 48520,
      "net_amount_currency": "USD",
      "net_amount_formatted": "$485.20",
      "taxjar_city": null,
      "taxjar_county": null,
      "taxjar_state": null,
      "taxjar_country": null,
      "taxjar_postal_code": null,
      "taxjar_city_rate": null,
      "taxjar_county_rate": null,
      "taxjar_state_rate": null,
      "taxjar_country_rate": null,
      "taxjar_combined_district_rate": null,
      "taxjar_combined_rate": null,
      "brand_id": 1,
      "brand_name": "Nashville DJ Co",
      "check_cherry_payment_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
    }
  }
}
Any Appointment Created new_appointment
{
  "data": {
    "id": "321",
    "type": "appointment",
    "attributes": {
      "id": 321,
      "title": "Jane Doe's Wedding Consultation",
      "guest_name": "Jane Doe",
      "guest_email": "jane@example.com",
      "guest_phone": "(615) 555-9876",
      "starts_at": "2026-04-10 14:00:00 -0500",
      "ends_at": "2026-04-10 14:30:00 -0500",
      "length_in_minutes": 30,
      "brand_id": 1,
      "brand_name": "Nashville DJ Co",
      "additional_guests": "",
      "additional_guest_list": [],
      "location": "In Person",
      "location_details": "Suite 200",
      "private_notes": "Referred by Mike Smith",
      "canceled": false,
      "zoom_meeting_id": null,
      "zoom_meeting_invitation": null,
      "zoom_join_url": null,
      "google_meet_link": null,
      "google_meet_conference_id": null,
      "google_meet_invitation": null,
      "available_locations": [
        "In Person",
        "Phone",
        "Zoom"
      ],
      "formatted_date": "Friday, April 10, 2026",
      "formatted_datetime_range": "Friday, April 10, 2026 • 2:00 PM - 2:30 PM",
      "formatted_time_range": "2:00 PM - 2:30 PM",
      "staff_member_abbreviations": "MS"
    },
    "relationships": {
      "user_appointments": {
        "data": [
          {
            "id": "456",
            "type": "user_appointment"
          }
        ]
      }
    }
  }
}
Any Appointment Updated updated_appointment
{
  "data": {
    "id": "321",
    "type": "appointment",
    "attributes": {
      "id": 321,
      "title": "Jane Doe's Wedding Consultation",
      "guest_name": "Jane Doe",
      "guest_email": "jane@example.com",
      "guest_phone": "(615) 555-9876",
      "starts_at": "2026-04-10 14:00:00 -0500",
      "ends_at": "2026-04-10 14:30:00 -0500",
      "length_in_minutes": 30,
      "brand_id": 1,
      "brand_name": "Nashville DJ Co",
      "additional_guests": "",
      "additional_guest_list": [],
      "location": "In Person",
      "location_details": "Suite 200",
      "private_notes": "Referred by Mike Smith",
      "canceled": false,
      "zoom_meeting_id": null,
      "zoom_meeting_invitation": null,
      "zoom_join_url": null,
      "google_meet_link": null,
      "google_meet_conference_id": null,
      "google_meet_invitation": null,
      "available_locations": [
        "In Person",
        "Phone",
        "Zoom"
      ],
      "formatted_date": "Friday, April 10, 2026",
      "formatted_datetime_range": "Friday, April 10, 2026 • 2:00 PM - 2:30 PM",
      "formatted_time_range": "2:00 PM - 2:30 PM",
      "staff_member_abbreviations": "MS"
    },
    "relationships": {
      "user_appointments": {
        "data": [
          {
            "id": "456",
            "type": "user_appointment"
          }
        ]
      }
    }
  }
}
Staff Assigned to Booking staff_assigned
{
  "data": {
    "id": "12345",
    "type": "event",
    "attributes": {
      "id": 12345,
      "title": "Johnson Wedding Reception",
      "status": "confirmed",
      "formatted_status": "Confirmed",
      "formatted_status_with_context": "Confirmed",
      "booked_at": "2026-03-15 10:30:00 -0500",
      "created_at": "2026-03-10 08:00:00 -0500",
      "created_via": "online_booking",
      "venue_name": "Grand Ballroom",
      "venue_address": "123 Main St",
      "venue_city": "Nashville",
      "venue_state": "TN",
      "venue_zip": "37201",
      "venue_map_url": "https://www.google.com/maps/search/123+Main+St+Nashville+TN",
      "venue_google_place_id": null,
      "public_notes": "Please use the side entrance",
      "private_notes": "Client prefers country music",
      "coupon_code": null,
      "photo_album_url": null,
      "photo_album_instructions": null,
      "video_url": null,
      "video_album_instructions": null,
      "completed": false,
      "canceled": false,
      "archived": false,
      "postponed": false,
      "invoice_number": "20260315-01",
      "billable_distance": null,
      "total_distance": null,
      "distance_unit": null,
      "latitude": null,
      "longitude": null,
      "tax_rate": "9.25",
      "source": "Website",
      "estimated_number_guests": 150,
      "indoor_outdoor": "indoor",
      "lead_event_type": "Wedding",
      "contact_preference": null,
      "po_number": null,
      "stair_setup": null,
      "token": "ABC-1234-XYZ",
      "utm_source": null,
      "utm_campaign": null,
      "utm_medium": null,
      "utm_term": null,
      "utm_content": null,
      "gclid": null,
      "starts_at": "2026-06-21 18:00:00 -0500",
      "ends_at": "2026-06-21 23:00:00 -0500",
      "length_in_minutes": "300.0",
      "length_in_hours": "5.0",
      "starting_balance": "2500.00",
      "starting_balance_cents": 250000,
      "starting_balance_currency": "USD",
      "starting_balance_formatted": "$2,500.00",
      "deposit_amount_due": "500.00",
      "deposit_amount_due_cents": 50000,
      "deposit_amount_due_currency": "USD",
      "deposit_amount_due_formatted": "$500.00",
      "custom_deposit_amount": null,
      "custom_deposit_amount_cents": null,
      "custom_deposit_amount_currency": null,
      "custom_deposit_amount_formatted": null,
      "balance_amount_due": "2000.00",
      "balance_amount_due_cents": 200000,
      "balance_amount_due_currency": "USD",
      "balance_amount_due_formatted": "$2,000.00",
      "starts_at_date": "06-21-2026",
      "starts_at_date_iso8601": "2026-06-21",
      "starts_at_time": "6:00 PM",
      "invoice_date": "03-15-2026",
      "invoice_date_iso8601": "2026-03-15",
      "proposal_theme": "classic",
      "proposal_valid_through": null,
      "proposal_viewed_at": null,
      "next_follow_up_on": null,
      "package_name": "Premium DJ Package",
      "package_group_name": "Wedding Packages",
      "service_name": "DJ Services",
      "package_description_html": "<div>Premium DJ Package - 5 hours</div>",
      "add_on_names": "Photo Booth, Uplighting",
      "add_on_quantities_name_and_price": "1x Photo Booth ($400), 1x Uplighting ($250)",
      "extra_names": "",
      "extra_quantities_name_and_price": "",
      "backdrop_names": "",
      "backdrop_name_and_price": "",
      "design_statuses": null,
      "due_at": "2026-03-15 00:00:00 -0500",
      "customer_ids": "678",
      "customer_names": "Sarah Johnson",
      "customer_emails": "sarah@example.com",
      "customer_phones": "(615) 555-1234",
      "customer_addresses": "456 Oak Ave, Nashville, TN 37203",
      "customer_and_contact_ids": "678",
      "customer_and_contact_names": "Sarah Johnson",
      "customer_and_contact_emails": "sarah@example.com",
      "customer_and_contact_phones": "(615) 555-1234",
      "additional_contact_ids": "",
      "additional_contact_names": "",
      "additional_contact_emails": "",
      "additional_contact_phones": "",
      "assigned_staff_ids": "42, 55",
      "assigned_staff_names": "Mike Smith, Lisa Chen",
      "assigned_staff_abbreviations": "MS, LC",
      "assigned_staff_emails": "mike@example.com, lisa@example.com",
      "change_summary": null,
      "brand_id": 1,
      "brand_name": "Nashville DJ Co",
      "primary_image": {
        "hero_variant": "https://img.checkcherry.com/example-image-url"
      },
      "booked_at_description": "Booked 3 months ago via Online booking",
      "current_user_assigned": false,
      "event_url": "https://example.checkcherry.com/events/12345?token=ABC-1234-XYZ",
      "questionnaires_url": "https://example.checkcherry.com/events/12345/forms?token=ABC-1234-XYZ",
      "payment_url": "https://example.checkcherry.com/events/12345/payments/new?token=ABC-1234-XYZ",
      "invoice_url": "https://example.checkcherry.com/events/12345/invoice?token=ABC-1234-XYZ",
      "designs_url": "https://example.checkcherry.com/events/12345/designs?token=ABC-1234-XYZ",
      "proposal_url": null,
      "referred_by_user_id": null,
      "referred_by_user_name": null,
      "referred_by_user_email": null,
      "custom_fields": [
        {
          "identifier": "how_did_you_hear_about_us",
          "value": "Friend referral",
          "formatted_value": "Friend referral"
        }
      ],
      "current_assigned_staff_id": 55,
      "current_assigned_staff_name": "Lisa Chen",
      "current_assigned_staff_email": "lisa@example.com"
    },
    "relationships": {
      "event_bookings": {
        "data": [
          {
            "id": "67890",
            "type": "event_booking"
          }
        ]
      },
      "proposal_alternatives": {
        "data": []
      },
      "event_users": {
        "data": [
          {
            "id": "678",
            "type": "event_user"
          }
        ]
      },
      "event_staff_members": {
        "data": [
          {
            "id": "42",
            "type": "event_staff_member"
          },
          {
            "id": "55",
            "type": "event_staff_member"
          }
        ]
      },
      "event_staff_requests": {
        "data": []
      },
      "contacts": {
        "data": []
      },
      "notes": {
        "data": []
      }
    }
  }
}
Any Checklist Item Created new_checklist_item
{
  "data": {
    "id": "789",
    "type": "checklist_item",
    "attributes": {
      "id": 789,
      "title": "Send final song list to client",
      "notes": "Include must-play and do-not-play lists",
      "checked_at": null,
      "deleted": false,
      "position": 3,
      "due_on": "2025-06-14",
      "taskable_type": null,
      "taskable_id": null,
      "taskable_description": null,
      "checklist_id": 56,
      "user_ids": [
        42
      ],
      "updated_at": "2025-03-15T10:00:00.000-05:00",
      "created_at": "2025-03-15T10:00:00.000-05:00",
      "checkable_description": "Johnson Wedding Reception",
      "checked": false,
      "editable": false,
      "checkable_id": 12345,
      "checkable_type": "Event",
      "checkable_status": "confirmed",
      "checklist_name": "Wedding Prep",
      "user_full_names": [
        "Mike Smith"
      ]
    },
    "relationships": {
      "checklist": {
        "data": {
          "id": "56",
          "type": "checklist"
        }
      },
      "users": {
        "data": [
          {
            "id": "42",
            "type": "user"
          }
        ]
      }
    }
  }
}
Any Checklist Item Updated updated_checklist_item
{
  "data": {
    "id": "789",
    "type": "checklist_item",
    "attributes": {
      "id": 789,
      "title": "Send final song list to client",
      "notes": "Include must-play and do-not-play lists",
      "checked_at": null,
      "deleted": false,
      "position": 3,
      "due_on": "2025-06-14",
      "taskable_type": null,
      "taskable_id": null,
      "taskable_description": null,
      "checklist_id": 56,
      "user_ids": [
        42
      ],
      "updated_at": "2025-03-15T10:00:00.000-05:00",
      "created_at": "2025-03-15T10:00:00.000-05:00",
      "checkable_description": "Johnson Wedding Reception",
      "checked": false,
      "editable": false,
      "checkable_id": 12345,
      "checkable_type": "Event",
      "checkable_status": "confirmed",
      "checklist_name": "Wedding Prep",
      "user_full_names": [
        "Mike Smith"
      ]
    },
    "relationships": {
      "checklist": {
        "data": {
          "id": "56",
          "type": "checklist"
        }
      },
      "users": {
        "data": [
          {
            "id": "42",
            "type": "user"
          }
        ]
      }
    }
  }
}

App webhooks add these keys at the top level, next to data:

  • franchise_id and app_id identify the business and your app.
  • brand_name and brand_domain are present when the record belongs to a brand.
  • Answers to your app's onboarding questions set to "Send as JSON parameter" appear under their tokens. An answer set to "Send as bearer token" is sent as Authorization: Bearer <value> instead.

Delivery

Respond with any 2xx status. Return quickly and do slow work afterwards.

  • Connection errors, timeouts, and 500–504 are retried with increasing delays, up to 3 attempts in all.
  • 404 or 410 turns the subscription off. Nothing more is sent to it.
  • Any other error, including an invalid SSL certificate, is logged and not retried.

Every attempt is logged with its request and response. Businesses can view the log and resend a delivery from their webhook settings; apps can do the same in the developer portal.

Deliveries can arrive out of order and, after a retry or resend, more than once. Use webhook-id to skip ones you have already handled.

Verifying signatures

Every delivery is signed with HMAC-SHA256 in the Standard Webhooks format, so any of its libraries can verify it. Verification is optional.

  • webhook-id identifies the message. It stays the same across retries and resends.
  • webhook-timestamp is the send time in Unix seconds. Every attempt gets a new one.
  • webhook-signature is v1, followed by the base64 HMAC-SHA256 of {id}.{timestamp}.{body}.

Where to find the secret. A business finds it on the webhook subscription's page. An app has one secret for all its webhooks, in the Credentials section of the app's page in the developer portal. Secrets start with whsec_; the HMAC key is the base64-decoded remainder.

Verify the raw body. Verify against the exact bytes you received, before parsing the JSON. Reject timestamps more than a few minutes from your clock to block replays.

Ruby

require "openssl"
require "base64"

def verify_webhook(secret:, headers:, body:, tolerance: 300)
  id, timestamp, signatures = headers.values_at("webhook-id", "webhook-timestamp", "webhook-signature")
  raise "Timestamp too old or new" if (Time.now.to_i - timestamp.to_i).abs > tolerance

  key = Base64.strict_decode64(secret.delete_prefix("whsec_"))
  expected = Base64.strict_encode64(OpenSSL::HMAC.digest("SHA256", key, "#{id}.#{timestamp}.#{body}"))

  signatures.split(" ").any? do |signature|
    version, value = signature.split(",", 2)
    version == "v1" && OpenSSL.secure_compare(value, expected)
  end
end

Node

import crypto from "node:crypto";

function verifyWebhook({ secret, headers, body, tolerance = 300 }) {
  const id = headers["webhook-id"];
  const timestamp = headers["webhook-timestamp"];
  if (Math.abs(Date.now() / 1000 - Number(timestamp)) > tolerance) throw new Error("Timestamp too old or new");

  const key = Buffer.from(secret.replace(/^whsec_/, ""), "base64");
  const expected = crypto.createHmac("sha256", key).update(`${id}.${timestamp}.${body}`).digest();

  return headers["webhook-signature"].split(" ").some((signature) => {
    const [version, value] = signature.split(",");
    const received = Buffer.from(value ?? "", "base64");
    return version === "v1" && received.length === expected.length && crypto.timingSafeEqual(received, expected);
  });
}