Event Creation Webhook¶
Get real-time notifications when a partner creates a new event on 3Common.
Who this is for
Developers and technical partners who want to automatically track new partner-created events in their own systems.
Restricted feature
This webhook is only available to selected partners by request. To activate, contact the 3Common team and provide your HTTPS endpoint URL.
Overview¶
The Event Creation Webhook sends a POST request to your server whenever a new event is created by a partner. This allows your system to:
- Track partner-generated events as they happen
- Store and index event data in your own database
- Trigger marketing or workflow automation pipelines
Register your webhook¶
To begin receiving webhook events:
- Contact your 3Common partner support contact.
- Provide a secure HTTPS endpoint.
Example endpoint:
Endpoint requirements
Endpoints must support HTTPS and respond within 3 seconds to avoid dropped requests.
Webhook payload¶
Each webhook is delivered via a POST request with the following structure:
{
"referral_code": "hello123",
"event": "event-created",
"data": {
// event object including owner and metadata
}
}
Payload fields¶
| Field | Type | Description |
|---|---|---|
referral_code |
string |
The referral code of the partner who created the event |
event |
string |
The type of webhook. Currently always "event-created" |
data |
object |
The full event object including owner and metadata |
Data object structure¶
This object matches the format returned by the Partner Events API.
| Field | Type | Description | Could be undefined? |
|---|---|---|---|
name |
string |
Event title | No |
start, end |
string |
Event times | No |
multiDayStartTimes |
string[] |
All starts for multi-day | Yes |
multiDayEndTimes |
string[] |
All ends for multi-day | Yes |
type |
string |
'event', 'booking', 'recurring', or 'multiple' |
No |
location |
object |
Location info | Yes |
locationPlaceholder |
string |
Placeholder text to link to location | Yes |
virtualEventLink |
string |
Link for virtual access | Yes |
description |
string |
Main description | Yes |
descriptionBlocks |
object[] |
Rich content blocks | Yes |
image, images |
string[] |
Main and gallery images | Yes |
tags |
string[] |
Tag metadata | Yes |
currency |
string |
The currency of the event ("USD" or "CAD") |
Yes |
status |
string |
Event status | Yes |
redirectUrl |
string |
Post-checkout URL | Yes |
customTerms |
object |
Custom checkout conditions | Yes |
refundPolicy |
string |
Refund explanation | Yes |
customTags |
string[] |
Tag overlays | Yes |
contentBlocks |
object[] |
Structured content (FAQs, etc.) | Yes |
language |
string |
Event language (e.g., 'en', 'fr') |
Yes |
isCancelled |
boolean |
Cancellation flag | Yes |
referral_code |
string |
Code that created the event | No |
createdAt, updatedAt |
Date |
Audit timestamps | No |
minPrice, maxPrice |
number |
Price range based on required tickets only. Does not contain fees. | No |
owner |
object |
Event creator metadata | No |
metaData |
object |
Additional information attached to the user/event through the onboarding process. See Setting MetaData | Yes |
Owner object¶
| Field | Type | Description |
|---|---|---|
_id |
string |
User ID |
firstName / lastName |
string |
Creator name |
companyName |
string |
Affiliated org (if set) |
email |
string |
Email address |
username |
string |
Public-facing handle |
avatar, banner |
string |
Media URLs |
instagram, linkedin |
string |
Social media handles |
bio |
string |
About text |
tags |
string[] |
Metadata tags |
referral_code |
string |
User's tracking code |
Sample webhook request¶
{
"referral_code": "hello123",
"event": "event-created",
"data": {
"name": "Sunset Yoga in the Park",
"start": "2025-08-15T18:00:00Z",
"end": "2025-08-15T20:00:00Z",
"type": "event",
"referral_code": "hello123",
"createdAt": "2025-07-15T10:00:00Z",
"owner": {
"_id": "usr_789",
"firstName": "Sam",
"lastName": "Chen",
"email": "sam@wellnesscollective.com",
"referral_code": "hello123"
},
"metaData": {
"region": "west",
"campaign": "earlybird"
}
}
}
Security notes¶
- Only
POSTrequests are used. - Your endpoint should return 200 OK within 3 seconds to prevent webhook delivery failure.
- Webhook delivery is not retried.