Skip to content

account.updated

POST

A writable field of the account, onboarding_completed or phone_number changes at the main location, or call_auto_archive_days changes. data.object is the account at the main location. 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: account.updated
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 Account object, as the REST API returns it.

object
id
required
Id

Opaque Talki account identifier.

string
location_id
required
Location Id

The location these settings are of, an id from GET /v1/locations: the one the request named with location_id, or the main location when it named none.

string
business_name
required
Any of:
string
timezone
required
Timezone

IANA timezone all naive local times for this account resolve against.

string
livemode
required
Livemode

False when this credential does not act on real data: a test-mode key (talki_test_…), or an app installed on a developer sandbox or on a test account. Webhook envelopes carry the same flag.

boolean
test
required
Test

True for a test account your app created with "test": true on POST /oauth/managed-accounts. It has no Talki number, nobody is billed for it or emailed, and it is erased seven days after it was created. Its livemode is false.

boolean
business_information
required
Any of:
string
instructions
required
Any of:
string
voice
required
Voice

The voice the assistant speaks with on calls. One of the ids listed by GET /v1/voices.

string
answers_as
required

Which name the assistant answers calls in and speaks for: business uses business_name, owner uses the account holder’s own name. If the chosen name is empty, the other one is used.

string
Allowed values: business owner
greeting
required
Any of:
string
call_opening
required
Any of:
string
multilingual_enabled
required
Multilingual Enabled

True when the assistant may switch to English, French, German or Spanish to follow the caller. False keeps every call in Italian. The opening is always in Italian.

boolean
languages
required
AccountLanguages

The languages calls may be held in, derived from multilingual_enabled. Read only.

object
primary
required
Primary

The language every call opens in, before the caller has said anything. Always it today.

string
supported
required
Supported

Every language the assistant may speak, primary first: it alone while multilingual_enabled is false, otherwise it, en, fr, de and es. More may be added. Read only: change it through multilingual_enabled.

Array<string>
service_area
required
Any of:
string
transfer_numbers
required
Transfer Numbers

People or lines the assistant may hand a call over to. Empty when the assistant never transfers calls.

Array<object>
TransferNumber

A person or line the assistant may hand a call over to.

object
label
required
Label

Who answers at this number, such as “Reception” or “Dr. Bianchi”. The assistant uses it to pick the right target for a caller, and call.transferred reports it as target_label.

string
phone
required
Phone

The number, E.164.

string
bookings_enabled
required
Bookings Enabled

True when the assistant books, moves and cancels appointments on calls. False makes it answer questions and take messages only. Does not affect the appointment endpoints of this API.

boolean
unresolved_requests_enabled
required
Unresolved Requests Enabled

True when the assistant offers to record a question it cannot answer, so the business can follow up. Recorded questions are listed by GET /v1/unresolved_requests.

boolean
remember_callers
required
Remember Callers

True when the assistant recognises returning callers from the contact book and keeps notes about them for their next call. False treats every call as a first call and keeps nothing about the caller after it ends.

boolean
notify_on_every_call
required
Notify On Every Call

True when the owner gets a push notification on the Talki mobile app after each call, with its summary. Push only, and only on phones where the owner is signed in to the app with notifications allowed; bookings, conflicts and unresolved questions push whatever this says. Talki sends no email or SMS per call: build those on the call.ended and appointment.created events.

boolean
notify_on_incoming_call
required
Notify On Incoming Call

True when the owner gets a push notification on the Talki mobile app while a call is ringing, naming the caller, for every caller. Callers marked VIP push whatever this says. Push only, as for notify_on_every_call.

boolean
store_transcripts
required
Store Transcripts

True when the words of each call to this location are kept, readable through GET /v1/calls/{id}/transcript. Setting it to false deletes the transcripts already stored for this location’s calls; call records and summaries are kept.

boolean
phone_number
required
Any of:
string
forwarding_number
required
Any of:
string
line
required
AccountLine

The location’s Talki number, its line that forwards to it, and whether that forwarding has been proven. Read only. The same as Location.line.

object
phone_number
required
Any of:
string
forwarding_number
required
Any of:
string
status
required

no_number while the account has no Talki number. unverified until a forwarding check of the current forwarding_number has succeeded, including while no forwarding_number is set. verified once one has. It proves forwarding was on at verified_at, not that it still is: the business can switch it off at its carrier without Talki knowing. Changing forwarding_number returns it to unverified. A check that finds no forwarding does not change it; read that outcome from GET /v1/forwarding_check.

string
Allowed values: no_number unverified verified
verified_at
required
Any of:
string format: date-time
call_auto_archive_days
required
Any of:
integer
Allowed values: 7 30 90 180
multi_sede
required
Multi Sede

True when the account works from several locations, or may add them: show locations (GET /v1/locations) to the owner only when true. False for an account that has only ever had its main location and cannot add another; it still has that one location, every record still carries its location_id, and nothing changes shape when this turns true. Read only.

boolean
onboarding_completed
required
Onboarding Completed

True once the account has finished setting up its assistant. While false, the Talki app opens its setup wizard. Set it with POST /v1/account/complete_onboarding; it never goes back to false.

boolean
Example
{
"id": "evt_04d8e87897db4ecab459a456ea55e754",
"type": "account.updated",
"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": "f7e39b9a-1ac8-45e4-93da-2600f17cb286",
"location_id": "0b7d4e19-8a2c-4f61-9d3e-5c1a7b2f8e40",
"business_name": "Studio Bellini",
"timezone": "Europe/Rome",
"livemode": true,
"test": false,
"business_information": "Free parking in the courtyard behind the salon. We do not sell gift cards.",
"instructions": null,
"voice": "Sulafat",
"answers_as": "business",
"call_auto_archive_days": null,
"greeting": null,
"call_opening": null,
"multilingual_enabled": true,
"languages": {
"primary": "it",
"supported": [
"it",
"en",
"fr",
"de",
"es"
]
},
"service_area": "Bergamo e provincia",
"transfer_numbers": [],
"bookings_enabled": true,
"unresolved_requests_enabled": true,
"remember_callers": true,
"store_transcripts": true,
"notify_on_every_call": true,
"notify_on_incoming_call": false,
"phone_number": "+390350000001",
"forwarding_number": "+393331112222",
"line": {
"phone_number": "+390350000001",
"forwarding_number": "+393331112222",
"status": "verified",
"verified_at": "2026-10-07T09:30:12Z"
},
"multi_sede": true,
"onboarding_completed": true
}
}
}

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.