-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebhook_event.json
More file actions
132 lines (132 loc) · 4.61 KB
/
Copy pathwebhook_event.json
File metadata and controls
132 lines (132 loc) · 4.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://usp-protocol.dev/schemas/services/webhook_event.json",
"title": "USP Webhook Events",
"description": "Webhook payloads for USP booking, catalog, and waitlist lifecycle notifications. Businesses POST these to the platform webhook_url; payloads MUST be signed per Section 10.1.1.",
"$defs": {
"BookingEvent": {
"type": "object",
"title": "BookingEvent",
"description": "Booking lifecycle webhook payload (REST body or MCP usp_webhook params).",
"required": ["event", "event_id", "booking_id", "timestamp"],
"properties": {
"event": {
"type": "string",
"enum": [
"booking.confirmed",
"booking.canceled",
"booking.rescheduled",
"booking.reminder",
"booking.completed",
"booking.no_show",
"booking.refund_issued",
"booking.dispute_opened",
"booking.dispute_resolved",
"booking.service_started",
"booking.service_updated"
],
"description": "Booking lifecycle event type."
},
"event_id": {
"type": "string",
"description": "Unique event identifier. Platforms MUST process deliveries idempotently using event_id."
},
"booking_id": {
"type": "string",
"description": "The booking this event relates to."
},
"order_id": {
"type": "string",
"description": "UCP order ID when the booking was created via UCP-Native Mode checkout. SHOULD be included for correlation."
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 time when the event occurred."
},
"data": {
"$ref": "booking.json#/$defs/Booking",
"description": "Full booking object. SHOULD be included except as noted in Sections 5.4.1 and 5.5.3."
}
}
},
"CatalogEvent": {
"type": "object",
"title": "CatalogEvent",
"description": "Catalog change webhook payload.",
"required": ["event", "event_id", "service_id", "subscription_id", "timestamp"],
"properties": {
"event": {
"type": "string",
"enum": [
"service.created",
"service.updated",
"service.deleted",
"service.suspended"
],
"description": "Catalog lifecycle event type."
},
"event_id": {
"type": "string",
"description": "Unique event identifier."
},
"service_id": {
"type": "string",
"description": "The service this event relates to."
},
"subscription_id": {
"type": "string",
"description": "The feed subscription that triggered this notification."
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 time when the event occurred."
},
"data": {
"$ref": "catalog.json#/$defs/Service",
"description": "Full service object for created and updated events."
}
}
},
"WaitlistEvent": {
"type": "object",
"title": "WaitlistEvent",
"description": "Waitlist lifecycle webhook payload (REST body or MCP usp_webhook params when the dev.usp-protocol.services.waitlist capability is in use).",
"required": ["event", "event_id", "entry_id", "service_id", "timestamp"],
"properties": {
"event": {
"type": "string",
"enum": [
"waitlist.spot_offered",
"waitlist.converted",
"waitlist.expired",
"waitlist.position_changed"
],
"description": "Waitlist lifecycle event type."
},
"event_id": {
"type": "string",
"description": "Unique event identifier. Platforms MUST process deliveries idempotently using event_id."
},
"entry_id": {
"type": "string",
"description": "The waitlist entry this event relates to."
},
"service_id": {
"type": "string",
"description": "The service the waitlist entry is for."
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 time when the event occurred."
},
"data": {
"$ref": "waitlist.json#/$defs/WaitlistEntry",
"description": "Full waitlist entry object. SHOULD be included except as noted in Section 11.1.5."
}
}
}
}
}