Skip to main content
Sent when an account’s requirements change: a field is submitted, accepted, rejected, or a reviewer asks for an additional one. Use it to drive an onboarding progress screen instead of polling the account object. Delivered to endpoints with event_source set to connect or all. The default for a new endpoint is account, its own events only, so a platform that never sets event_source receives nothing about the accounts it owns. See Connect events.

Event fields

string
The event’s unique identifier, prefixed evt_. Use it to deduplicate deliveries.
string
Always account.updated.
string
When the event occurred, in UTC.
string
The account the requirement change happened on. On an event from an account you own, this is that account, not your platform.
string
The origin account’s id, repeated at the top level. Present only when the origin has a parent; absent on your platform’s own events. This is how a platform tells which of its accounts the event concerns.
string
The account’s id. Matches organization_id.
string[]
The field keys still being asked for, for example company.registration_number or persons.per_3a91c0d7.id_document. An empty array means nothing is left for the account to provide. It does not mean a capability is enabled.
An empty outstanding means nothing is outstanding, not that a capability is enabled. A capability only goes live on an explicit review decision. Gate features on capability.updated instead.

When it fires

account.updated fires when the account’s requirement state changes: the account submits one or more fields, a reviewer accepts a field, a reviewer rejects a field, or a reviewer asks for an additional field. Each of these recomputes outstanding and emits the event with the new list. It does not fire on its own when a capability’s status changes with no requirement change behind it, and it does not fire on a schedule. A capability moving to active or restricted is reported on capability.updated, not here.

What to do on receipt

Read data.outstanding and update your onboarding progress screen for the account named in account (or organization_id if account is absent). The list alone answers “is anything left to provide”: show the field keys while it has entries, and show the account as waiting on review once it is empty. For a screen that needs more than the list of keys, read the account with GET /v1/accounts/{account_id} and use its requirements block, which splits the same fields into currently_due, eventually_due, past_due and pending_verification, carries rejections in errors, and gives a per-field view in entries. See Requirements. Do not use this event to unlock a payment method or a payout. Use it only to tell the account what it still needs to provide.