Skip to content
PaalChat Docs

contact.updated

.md
Event POST <your callback URL>

A contact's details, custom fields or tags changed.

Verify every callback

Check X-PaalChat-Signature on the raw body, reject timestamps older than 5 minutes, and de-duplicate on X-PaalChat-Delivery. Answer 2xx within 10 seconds. See Webhooks and callbacks.

Headers

X-PaalChat-Event string
X-PaalChat-Delivery string

Unique per event (equals body id). De-duplicate on it.

Format uuid.

X-PaalChat-Signature string

t=<unix seconds>,v1=<hex HMAC-SHA256(secret, "<t>.<raw body>")>. Reject if invalid or older than 300 seconds.

Pattern ^t=\d+,v1=[a-f0-9]{64}$.

Body

id string

Equals X-PaalChat-Delivery.

Format uuid.

sandbox boolean

true for sandbox businesses (test keys) - nothing reached WhatsApp.

event any

Always contact.updated.

occurred_at string

Format date-time.

business object
external_id string business.external_id
data object
contact object data.contact
id integer data.contact.id
external_id string | null data.contact.external_id

Your own id for the person.

name string | null data.contact.name
phone string | null data.contact.phone

WhatsApp number, digits.

email string | null data.contact.email
locale string | null data.contact.locale
timezone string | null data.contact.timezone
status string data.contact.status
custom_fields object data.contact.custom_fields

The business's own fields (see List contact fields).

preferences object data.contact.preferences

What the contact wants to receive - false turns it off; missing means on.

channels object data.contact.preferences.channels

Example {"whatsapp":true}.

topics object data.contact.preferences.topics

fees, results, attendance, pta, marketing, system.

Example {"fees":true,"marketing":false}.

tags array of strings data.contact.tags
identities array of objects data.contact.identities
channel string data.contact.identities[].channel

Example whatsapp.

address string data.contact.identities[].address
profile_name string | null data.contact.identities[].profile_name

The name the person shows on that channel.

last_seen_at string | null data.contact.identities[].last_seen_at

Format date-time.

created_at string data.contact.created_at

Format date-time.

updated_at string data.contact.updated_at

Format date-time.