post/v1/webhooks/subscriptions
Subscribe to events. events is an array of event-type strings (e.g. offer.accepted) or ["*"] for every event. See docs/architecture/event-webhook-catalog.md for the full event/webhook catalog. The signing secret is returned once, at creation time.
Request body
| Field | Type | Required |
|---|
| merchantId | string (uuid) | yes |
| url | string (uri) | yes |
| events | string[] | yes |
Response (201)
| Field | Type | Required |
|---|
| id | string (uuid) | — |
| merchantId | string (uuid) | — |
| url | string | — |
| events | string[] | — |
| secret | string | — |
| status | ACTIVE | DISABLED | — |
| createdAt | string (date-time) | — |
get/v1/webhooks/subscriptions
List a merchant's webhook subscriptions
post/v1/webhooks/subscriptions/{id}/disable
Disable a webhook subscription (must be owned by the calling merchant)
Request body
| Field | Type | Required |
|---|
| merchantId | string (uuid) | yes |
Response (201)
| Field | Type | Required |
|---|
| id | string (uuid) | — |
| merchantId | string (uuid) | — |
| url | string | — |
| events | string[] | — |
| secret | string | — |
| status | ACTIVE | DISABLED | — |
| createdAt | string (date-time) | — |
get/v1/webhooks/deliveries
List delivery attempts, optionally scoped to one subscription
Parameters
| subscriptionId | query | optional |
post/v1/webhooks/deliveries/{id}/replay
Replay a delivery — must be idempotent on the merchant's receiving end, since the original attempt(s) may also have succeeded after all retries appeared exhausted.
Response (201)
| Field | Type | Required |
|---|
| id | string (uuid) | — |
| subscriptionId | string (uuid) | — |
| eventType | string | — |
| payload | object | — |
| status | PENDING | DELIVERED | FAILED | DEAD_LETTER | — |
| attempts | integer | — |
| lastAttemptedAt | string,null (date-time) | — |
| createdAt | string (date-time) | — |
post/v1/webhooks/business-subscriptions
Register a Business-rooted webhook subscription (Phase 34) — fires on Space booking lifecycle events (space_booking.created/consent_required/consented/paid/cancelled/completed).
Request body
| Field | Type | Required |
|---|
| businessId | string (uuid) | yes |
| url | string | yes |
| events | string[] | yes |
Response (201)
| Field | Type | Required |
|---|
| id | string (uuid) | — |
| businessId | string (uuid) | — |
| url | string | — |
| events | string[] | — |
| secret | string | — |
| status | ACTIVE | DISABLED | — |
| createdAt | string (date-time) | — |
get/v1/webhooks/business-subscriptions
List a Business's webhook subscriptions
post/v1/webhooks/business-subscriptions/{id}/disable
Disable a Business webhook subscription
Request body
| Field | Type | Required |
|---|
| businessId | string (uuid) | yes |
Response (201)
| Field | Type | Required |
|---|
| id | string (uuid) | — |
| businessId | string (uuid) | — |
| url | string | — |
| events | string[] | — |
| secret | string | — |
| status | ACTIVE | DISABLED | — |
| createdAt | string (date-time) | — |
get/v1/webhooks/business-deliveries
List Business webhook deliveries, optionally scoped to a subscription
Parameters
| subscriptionId | query | optional |
post/v1/webhooks/business-deliveries/{id}/replay
Replay a Business webhook delivery
Response (201)
| Field | Type | Required |
|---|
| id | string (uuid) | — |
| subscriptionId | string (uuid) | — |
| eventType | string | — |
| payload | object | — |
| status | PENDING | DELIVERED | FAILED | DEAD_LETTER | — |
| attempts | integer | — |
| lastAttemptedAt | string,null (date-time) | — |
| createdAt | string (date-time) | — |