Who can use webhooks
Webhooks are available on the Enterprise plan and require an API token — the same access used for the Enterprise API. If you don’t have an API token yet, Spacebase directs you to the Enterprise API request page when you open the Webhooks section.
- The Webhooks link appears in the Account menu only for companies on an Enterprise plan.
- Webhooks are scoped to your company. You only receive events for your own data, and you can only manage your own endpoints.
- Invoice and payment events are available only when the payments module is enabled for your company.
Create a webhook
1
Open the Webhooks page
Click the Account menu in the top right corner and select Webhooks.
2
Click Add Webhook
The Add Webhook button is in the top right of the Webhooks page.
3
Fill in the endpoint details
- Endpoint URL — where Spacebase sends events. The URL must use
https://. Internal hosts (such aslocalhost,*.local,*.internal) and private IP addresses are not allowed. - Description (optional) — a short note to help your team identify the endpoint.
- Events — check each event type you want to receive. See Available events below.
- Active — leave this checked to start receiving events right away. Uncheck it to pause delivery without deleting the webhook.
4
Save and copy your signing secret
Click Save. A confirmation message displays your signing secret.
Edit and manage webhooks
The Webhooks page (Account → Webhooks) lists all of your endpoints with their URL, subscribed events, active status, and creation date. From here you can manage each webhook:- Edit — opens the webhook so you can change the URL, description, subscribed events, or active status.
- Deliveries — opens the delivery log for that endpoint. See Monitor deliveries below.
- Rotate secret — generates a new signing secret and shows it once. The old secret stops working immediately, so update your receiving service at the same time.
- Delete webhook — removes the endpoint after a confirmation step. Deleting a webhook also removes its delivery history.
Available events
Event names follow the patternresource.action, where the action is created, updated, or deleted. For example, lease.created fires when a new lease is added.
Invoice and payment events appear in the event list only when the payments module is enabled for your company.
Payload format
Every delivery is a JSON POST request with the same top-level structure:event— the event type, matching one of your subscriptions.occurred_at— when the change happened, in ISO 8601 format.company— your company’s unique identifier.data.changes— the fields that changed, each with its before and after values.data.object— the full record, serialized the same way as the Enterprise API. Ondeletedevents the record no longer exists, soobjectis omitted and onlyidandlabelidentify what was removed.
Verify signatures
Every request includes three headers:
Verify the signature on every request before trusting the payload. Compute an HMAC-SHA256 of the raw request body using your signing secret, then compare it to the header value:
Monitor deliveries and retries
Spacebase considers a delivery successful when your endpoint responds with a 2xx status code within 10 seconds. If the request fails — a connection error, timeout, or non-2xx response — Spacebase retries up to 5 more times with exponential backoff, waiting up to 10 minutes between attempts. To review delivery history, click Deliveries next to any webhook on the Webhooks page. The log shows each delivery’s event type, status (pending, succeeded, or failed), HTTP response code, attempt count, and timestamp, with 50 deliveries per page. To resend a delivery — after fixing an issue on your end, for example — click Redeliver on that row. Spacebase queues a new delivery with the original payload.Deliveries can occasionally arrive more than once (for example, after a redelivery or a retry that crossed with a slow response). Use the
X-Spacebase-Delivery header to deduplicate on your side.Manage webhooks with the API
Everything you can do in the UI is also available through the Enterprise API using your API token:
To create a webhook via the API:
Troubleshooting
My webhook isn't receiving events
My webhook isn't receiving events
Check the following, in order:
- The webhook is marked Active on its edit page.
- The event you expect is checked under Events — webhooks only receive events they’re subscribed to.
- The change happened to a resource type in the event list. Other changes don’t fire webhooks.
- Open Deliveries for the endpoint. If deliveries appear but show as failed, your endpoint is being reached but isn’t returning a 2xx response — the HTTP code and response details in the log will point to the cause.
My endpoint URL is rejected
My endpoint URL is rejected
Endpoint URLs must use
https://. URLs pointing at internal hosts — localhost, addresses ending in .local or .internal, and private or reserved IP addresses — are not accepted. Use a publicly reachable HTTPS address.I lost my signing secret
I lost my signing secret
Secrets can’t be recovered — they’re only shown in full when created or rotated. Open the webhook’s edit page and click Rotate secret to generate a new one, then update your receiving service. The old secret stops working as soon as you rotate.
Why don't I see invoice or payment events?
Why don't I see invoice or payment events?
Invoice and payment events are only available when the payments module is enabled for your company. Contact your Spacebase representative if you’d like to enable it.
I can't find the Webhooks page
I can't find the Webhooks page
The Webhooks link in the Account menu appears only for companies on an Enterprise plan, and opening it requires an API token. If you’re on Enterprise but don’t have a token, you’ll be directed to the Enterprise API request page to get started.