Event Types
Event types define what events your platform publishes. Each event type has a unique identifier (e.g., order.created), a human-readable name, a category for grouping, and an optional example payload.
Creating Event Types
Via Dashboard
- Navigate to Webhooks-as-a-Service and click your application
- On the Event Types tab, click Register Event Type
- Fill in the fields:
- Event Type — Dot-notation identifier (e.g.,
order.created,invoice.paid) - Name — Human-readable name (e.g., "Order Created")
- Category — Grouping label (e.g., "orders", "billing")
- Description — Optional explanation of when this event fires
- Example Payload — Optional JSON example for documentation
- Event Type — Dot-notation identifier (e.g.,
- Click Create
Via API
curl -X POST https://api.zyphr.dev/v1/waas/applications/{app_id}/event-types \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"event_type": "order.created",
"name": "Order Created",
"description": "Fired when a new order is placed",
"category": "orders",
"example_payload": {
"order_id": "ord_123",
"total": 99.99,
"currency": "USD"
}
}'
Naming Conventions
Use dot-notation to create a consistent taxonomy:
| Pattern | Examples |
|---|---|
resource.action | order.created, user.updated, invoice.paid |
resource.sub.action | order.item.added, payment.refund.completed |
Rules:
- Lowercase only
- Dots separate levels
- Hyphens allowed within segments (
credit-note.created) - Maximum 255 characters
Categories
Categories group related event types in the dashboard and embeddable portal. Common categories:
orders— Order lifecycle eventsbilling— Payment and invoice eventsusers— User account eventsinventory— Stock and warehouse events
Categories are free-form strings — use whatever makes sense for your domain.
Example Payloads
Providing an example payload for each event type:
- Pre-fills the Publish tab in the dashboard for testing
- Documents the expected schema for your API consumers
- Helps your customers understand what data each event delivers
{
"order_id": "ord_456",
"customer_id": "cust_789",
"total": 149.99,
"currency": "USD",
"items": [
{ "sku": "WIDGET-1", "name": "Blue Widget", "qty": 3, "price": 49.99 }
],
"created_at": "2026-03-05T12:00:00Z"
}
Updating Event Types
You can update the name, description, category, and example payload of an existing event type. The event type identifier itself cannot be changed after creation.
Via API
curl -X PATCH https://api.zyphr.dev/v1/waas/applications/{app_id}/event-types/{event_type_id} \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Order Created (v2)",
"description": "Updated description with new fields"
}'
Deprecating Event Types
When an event type is no longer supported, deprecate it instead of deleting it. Deprecated event types:
- Stop accepting new endpoint subscriptions
- Continue delivering to existing subscribers
- Show a "deprecated" badge in the dashboard and portal
curl -X POST https://api.zyphr.dev/v1/waas/applications/{app_id}/event-types/{event_type_id}/deprecate \
-H "Authorization: Bearer YOUR_API_KEY"
Deleting Event Types
Deleting an event type removes it permanently. Endpoints subscribed to it will no longer receive deliveries for that event type.
Deletion is irreversible. Consider deprecating first to give your customers time to migrate.
Plan Limits
| Plan | Event Types per Application |
|---|---|
| Free | 5 |
| Starter | 25 |
| Pro | 100 |
| Scale | 500 |
| Enterprise | Unlimited |
Next Steps
- Endpoints — Configure where events are delivered
- Delivery & Monitoring — Track delivery status and retry failures
- WaaS Overview — Full getting started guide