2 min read
When it fires
account.updated is emitted when a customer account record changes. It is an *.updated event, so data.previous carries the fields’ prior values.
If your endpoint does not return a 2xx within the timeout, delivery is retried on an exponential backoff schedule — see Webhook delivery and retries. Design your handler to be idempotent so a redelivered event is safe to process twice.
Example delivery
{
"id": "evt_ACCO7X",
"type": "account.updated",
"created": "2026-07-04T10:00:00Z",
"livemode": true,
"api_version": "2026-07-01",
"data": {
"object": {
"id": "acct_4B8N2",
"status": "active",
"previous": {
"status": "pending"
}
}
}
}
Handling it
A common handler will sync the change into your own account record. Verify the signature first, acknowledge with 200 within 10 seconds, then do the work asynchronously. The underlying resource is the same shape the get cms page endpoint returns, so you can re-fetch current state if you need it.
Frequently asked questions
Can account.updated arrive more than once?
Yes. At-least-once delivery means a redelivery is possible after a slow acknowledgement or a retry. Deduplicate on the event id — see idempotency.
Is data.object the live account?
It is a snapshot taken when the event fired. If the account may have changed since, re-fetch it from the API for the authoritative current state.
What is in data.previous?
Only the changed fields, with their values before this update. Use it to compute a diff without keeping your own prior copy.
Funding for UK limited companies
Credicorp lends to your company, not to you personally — short-term working capital with no personal guarantee. See what your business could access.