Skip to content

closure.deleted

POST

A closure or special opening is removed. data.object is the closure as it was. Sent to the account’s webhooks, and to an OAuth app that subscribes to it while its installation grants account:read.

X-Talki-Signature
required
string

t=<unix seconds>,v1=<hex HMAC-SHA256>, the HMAC computed over <t>.<raw body> with the signing secret. During a secret rotation it carries one v1 per secret: accept the request if any matches.

X-Talki-Event
required
string

The event type, as in type.

X-Talki-Delivery
required
string

The event ID, as in id.

Media typeapplication/json
object
id
required
Id

The event’s ID, evt_ and 32 hex characters. Equal to the X-Talki-Delivery header and unchanged on a redelivery: deduplicate on it.

string
type
required
string
Allowed values: closure.deleted
created_at
required
Created At

When the event was written, ISO 8601 with a +00:00 offset, possibly with microseconds. Parse it as an instant.

string format: date-time
api_version
required
Api Version

The dated contract version data is shaped for: the endpoint’s version on a webhook, the app’s on an app event.

string
account_id
required
Account Id

The Talki account the event happened on.

string
livemode
required
Livemode

false for an event from a sandbox account.

boolean
origin
required
Any of:
EventOrigin
object
source
required
Source

Where the change came from: voice (the assistant, during a call), dashboard (a person in the Talki web or mobile app), api (a credential through the API) or system (a rule Talki applied on its own). New values may be added; treat one you do not recognise as unknown.

string
credential_id
required
Any of:
string
idempotency_key
required
Any of:
string
installation_id
Any of:
string
data
required

The event’s payload.

object
object
required

The Closure object, as the REST API returns it.

object
id
required
Id

Closure identifier.

string
location_id
required
Any of:
string
kind
required

closed — the business is shut, and no time is offered to callers. open — a special opening: extra hours on one day, offered to callers together with that day’s weekly hours. A closure on the same day still wins over both.

string
Allowed values: closed open
all_day
required
All Day

True for whole days, given by start_date and end_date; only a closure can be whole days. False for an exact range, given by start_at and end_at.

boolean
start_date
required
Any of:
string
end_date
required
Any of:
string
start_at
required
Start At

Start, RFC 3339 UTC. For whole days this is midnight at the start of start_date in the account’s timezone.

string format: date-time
end_at
required
End At

End, exclusive, RFC 3339 UTC. For whole days this is midnight at the end of end_date.

string format: date-time
reason
required
Any of:
string
created_at
required
Created At

When it was added, RFC 3339 UTC.

string format: date-time
Example
{
"id": "evt_04d8e87897db4ecab459a456ea55e754",
"type": "closure.deleted",
"created_at": "2026-09-22T15:04:06.218734+00:00",
"api_version": "2026-10-01",
"account_id": "f7e39b9a-1ac8-45e4-93da-2600f17cb286",
"livemode": true,
"origin": {
"source": "dashboard",
"credential_id": null,
"idempotency_key": null
},
"data": {
"object": {
"id": "e2a7c9d4-5b18-4f63-8a0e-9c4d2b7f1e35",
"location_id": null,
"kind": "closed",
"all_day": true,
"start_date": "2026-12-24",
"end_date": "2026-12-26",
"start_at": "2026-12-23T23:00:00Z",
"end_at": "2026-12-26T23:00:00Z",
"reason": "Christmas holidays",
"created_at": "2026-09-30T08:12:44Z"
}
}
}

Any 2xx acknowledges the event. Any other status, a redirect, or no answer within 10 seconds is a failure and is retried; 410 disables a webhook endpoint at once.