resource.created
A resource is added. Sent to the account’s webhooks, and to an OAuth app that subscribes to it while its installation grants resources:read.
Parameters
Section titled “ Parameters ”Header Parameters
Section titled “Header Parameters”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.
The event type, as in type.
The event ID, as in id.
Request Bodyrequired
Section titled “Request Bodyrequired”object
The event’s ID, evt_ and 32 hex characters. Equal to the X-Talki-Delivery header and unchanged on a redelivery: deduplicate on it.
When the event was written, ISO 8601 with a +00:00 offset, possibly with microseconds. Parse it as an instant.
The dated contract version data is shaped for: the endpoint’s version on a webhook, the app’s on an app event.
The Talki account the event happened on.
false for an event from a sandbox account.
object
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.
The event’s payload.
object
The Resource object, as the REST API returns it.
object
Opaque Talki resource identifier.
The location it is at (GET /v1/locations). Capacity is physical: only services of the same location draw on it. Never null, and it never changes.
What the business calls this resource.
shared — one fungible pool of capacity units (covers, seats, slots). units — a set of discrete sized units, described by unit_classes.
In shared mode, the total units available at one time. In units mode this is the size of the LARGEST SINGLE unit, not a total — a resource with six four-tops reports 4. Use max_party_size for the question you probably mean.
The largest single booking this resource can hold at one time, in its own units, before any service’s rate is applied. Equals capacity in shared mode; in units mode it is derived from the classes and the combining rules, so six combinable four-tops report more than 4. A booking above this is refused with party_too_large.
True when a single booking may join units of DIFFERENT classes (a four-top plus a two-top for six). Per-class combinable still governs whether a class may be joined at all. Always false for a shared resource.
The discrete units this resource is made of. Always empty for a shared resource.
count identical units that each hold size — six four-seat tables, two rooms that sleep four. Units have no individual identity: you can see how many exist, not which are taken.
object
Opaque identifier for this class of units.
What the business calls these units.
How much one unit of this class holds — covers at a table, people in a room, always 1 for a single-occupancy station.
How many identical units of this size exist.
True when several units of this class may be joined to hold one oversized booking (two four-tops pushed together for six).
Which services draw on this resource, and at what rate. Empty means no service currently books against it, which makes it inert rather than unlimited.
A service that draws on this resource, and how much of it one booking takes.
object
Opaque identifier of a service in GET /v1/services.
Units of this resource consumed per booked unit of the service. A booking of quantity q consumes q * rate. Usually 1; a service that occupies two stations at once has 2.
True for a location’s default resource: the shared limit new duration services of that location draw on unless they are given their own or other resources, such as the salon’s chairs. At most one per location.
RFC 3339 UTC.
RFC 3339 UTC. Moves when the resource, any of its unit classes, or any of its service links changes.
Example
{ "id": "evt_04d8e87897db4ecab459a456ea55e754", "type": "resource.created", "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": "b91c5d3e-0c1a-4a2f-9e6b-7c0d4e8f1a52", "location_id": "0b7d4e19-8a2c-4f61-9d3e-5c1a7b2f8e40", "name": "Dining room", "mode": "units", "capacity": 4, "max_party_size": 8, "combine_across_classes": false, "unit_classes": [ { "id": "1f2b9c07-3d64-4a1e-8f95-2b7c6d0e4a31", "name": "Four-tops", "size": 4, "count": 6, "combinable": true, "combine_max": 2 } ], "services": [ { "service_id": "45c470b7-592a-42cd-8ce8-5d7a0a497d26", "rate": 1 } ], "owner_service_id": null, "is_default": false, "created_at": "2026-08-01T08:00:00Z", "updated_at": "2026-09-10T10:30:00Z" } }}Responses
Section titled “ Responses ”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.
