---
title: Webhook event types
description: The envelope every delivery arrives in, how an endpoint chooses event types, and the events you can receive.
type: reference
product: webhooks
summary: The CloudEvents envelope, the event_types filter and the events delivered.
updated: 2026-10-01
order: 2
---

Every delivery is one [CloudEvents](https://cloudevents.io) 1.0 document,
signed with [Standard Webhooks](/docs/webhooks/receiving#the-headers-on-every-attempt).

## The envelope

<PropertyTable
	properties={[
		{
			name: 'specversion',
			type: 'string',
			description: 'Always 1.0.',
		},
		{
			name: 'id',
			type: 'string',
			description: 'The event id, unique per source. The delivery header webhook-id is the key to deduplicate attempts on.',
		},
		{
			name: 'source',
			type: 'string',
			description: 'Who produced the event.',
		},
		{
			name: 'type',
			type: 'string',
			description: 'What happened, for example sylphx.webhook.test.',
		},
		{
			name: 'subject',
			type: 'string',
			description: 'What the event is about. Present when the producer set it.',
		},
		{
			name: 'time',
			type: 'string',
			description: 'When it happened, RFC 3339. Present when the producer set it.',
		},
		{
			name: 'datacontenttype',
			type: 'string',
			description: 'The media type of data, usually application/json.',
		},
		{
			name: 'dataschema',
			type: 'string',
			description: 'A schema URI for data, when the producer set one.',
		},
		{
			name: 'data',
			type: 'any',
			description: 'The payload.',
		},
	]}
/>

CloudEvents extension attributes arrive as extra top-level members. Events a
Sylphx service published carry the extension `sylphxplatform` set to `"true"`
inside the signed body.

## Choose what an endpoint receives

`spec.event_types` on the [endpoint](/docs/api/webhook_endpoints) takes three
forms:

| Value | Receives |
| --- | --- |
| `order.paid` | That exact type. |
| `order.*` | Every type that begins with `order.`. |
| `*` | Every type of the environment (the default). |

## Events you receive

| Type | Source | When |
| --- | --- | --- |
| `sylphx.webhook.test` | `https://api.sylphx.com/events` | You call the [`test`](/docs/api/webhook_endpoints#test) method. See [testing](/docs/webhooks/testing). |
| `sylphx.notify.inbound_email.received` | `notify/{org}/{project}/{env}/mailboxes/{mailbox}` | A mailbox of the environment receives an email. `data` names the `mailbox` and the `inbound_email`, and carries the `envelope`. |

Types that begin with `sylphx.` come from Sylphx services; the `sylphx` source
namespace is reserved, so your own events never use it.

Publishing your own events is the [`publish`](/docs/api/topics#publish) method of
the topics collection. That collection is declared in the API reference but is
not routed on `api.sylphx.com`, so the two types above are what an endpoint
receives.

## Read a delivery

A delivery of an event to your endpoint is a
[webhook delivery](/docs/api/webhook_deliveries): read it to see each attempt
and what your endpoint answered.

<RelatedDocs
	links={[
		{
			href: '/docs/webhooks/receiving',
			label: 'Receiving webhooks',
			description: 'Verify the signature and answer the delivery.',
		},
		{
			href: '/docs/webhooks/testing',
			label: 'Testing',
			description: 'Send a sylphx.webhook.test event to one endpoint.',
		},
	]}
/>
