Types of events
Use this reference to choose which events your integration handles. Each entry gives the exact type, the resource in data.object, and the change that produces the event.
To receive an event through a webhook, add its exact identifier to the endpoint's enabled_events. Wildcards are not accepted for webhook subscriptions. See the Webhook Event Catalogue for endpoint configuration, payload versions, and connected-account delivery.
Browse by resource: Accounts, Checkout Sessions, Identity verification, Invoices, Payments, Payment Intents, Payouts, Persons, Tax invoices.
Accounts
account.capability.requested
data.object is an Account Capability.
An account requests a capability. A request does not mean the capability is active; check its status before using the associated functionality.
account.capability.updated
data.object is an Account Capability.
An account capability changes, such as a change to its status or requirements. Check the updated capability to determine whether the account can use it.
account.created
data.object is an Account.
An account is created. Use its ID to associate subsequent account events with the merchant in your integration.
account.external_account.created
data.object is an External Account.
An external account, such as a bank account used for payouts, is added to an account.
account.external_account.updated
data.object is an External Account.
An external account's details change. Use the snapshot to update the payout destination information stored by your integration.
account.updated
data.object is an Account.
An account's details change. Review its capabilities and requirements when deciding whether it can accept payments or receive payouts.
Checkout Sessions
checkout_session.completed
data.object is a Checkout Session.
A Checkout Session is completed. Check payment_status and the related payment or setup resource to determine the outcome of the Checkout flow.
Identity verification
identity.verification_session.canceled
data.object is a Verification Session (object: verification_session).
A Verification Session is canceled.
identity.verification_session.created
data.object is a Verification Session (object: verification_session).
A Verification Session is created. Creation does not confirm that verification has completed.
identity.verification_session.processing
data.object is a Verification Session (object: verification_session).
A Verification Session enters processing. Wait for a subsequent status change before treating verification as complete.
identity.verification_session.redacted
data.object is a Verification Session (object: verification_session).
A Verification Session is redacted.
identity.verification_session.requires_input
data.object is a Verification Session (object: verification_session).
A Verification Session requires more input. Use its current state to determine the next step for the person completing verification.
identity.verification_session.verified
data.object is a Verification Session (object: verification_session).
A Verification Session is verified.
Invoices
invoice.paid
data.object is an Invoice.
An invoice is paid. Use the invoice ID and related subscription, when present, to reconcile the payment with your billing records.
invoice.payment_failed
data.object is an Invoice.
A payment attempt for an invoice fails. Review the invoice and payment attempt before deciding whether another collection attempt or customer action is needed. A failed attempt does not, by itself, mean the invoice is uncollectible.
Payments
payment.failed
data.object is a Payment.
A payment fails. Inspect the payment outcome before presenting a retry or another payment method to the customer.
payment.succeeded
data.object is a Payment.
A payment succeeds. Use its ID and related Payment Intent to reconcile the result with your order or billing record.
Payment Intents
payment_intent.authorized
data.object is a Payment Intent.
A Payment Intent is authorized. Check its capture method, status, and capturable amount to determine whether your integration must capture the payment.
payment_intent.captured
data.object is a Payment Intent.
A Payment Intent is captured. Use the received amount to reconcile the capture with the amount your integration expected.
Payouts
The payload is a Payout snapshot (object: payout). See Payouts for the account and destination setup.
payout.canceled
data.object is a Payout.
A payout is canceled. Review the payout snapshot before arranging a replacement.
payout.created
data.object is a Payout.
A payout is created. Creation does not confirm that funds have arrived at the destination.
payout.failed
data.object is a Payout.
A payout fails. Inspect the payout and its destination before deciding how to retry it.
payout.paid
data.object is a Payout.
A payout's status changes to paid. Use the payout ID to reconcile the result with your payout records.
payout.updated
data.object is a Payout.
A payout's details or status change.
Persons
person.created
data.object is a Person.
A person is added to an account, such as an owner, director, or representative.
person.deleted
data.object is a Person.
A person is deleted from an account. The event contains the person's final snapshot.
person.updated
data.object is a Person.
A person's details or relationship to an account change.
Tax invoices
Both events contain the public Tax Invoice summary (object: tax_invoice), including its ID, number, period, amount, currency, issue date, and download availability. See Tax Invoices for Dashboard and API downloads.
tax_invoice.available
data.object is a Tax Invoice.
The issued tax invoice's PDF is available to download. download_available is true; call download_url to obtain a temporary download link, then use the returned url before expires_at.
tax_invoice.finalized
data.object is a Tax Invoice.
A tax invoice is finalized. download_available is false at this stage. Wait for tax_invoice.available before trying to download the PDF.
Read an event
Read type to select your handler and data.object to inspect the affected resource. The payload is a snapshot of the resource when the event occurred. Its fields depend on api_version, which stays unchanged when you retrieve the event. Retrieve the resource separately if you need its current state. When supplied, data.previous_attributes contains previous values for changed fields.
The top-level account identifies the account that produced the event. For connected-account webhook deliveries, use it to associate the event with the correct merchant.
Store the Events API's id if you need to retrieve an event within its 30-day retention period. That ID can differ from the event ID in a webhook delivery. Use the List events and Retrieve an event endpoints to inspect event history. pending_webhooks reports delivery progress; the event type and resource fields determine the business outcome.
Test deliveries
webhook_endpoint.test
data.object is an empty object ({}).
An explicit webhook endpoint test produces this event. It is reserved for test deliveries and cannot be included in enabled_events. It is not part of retained Events API history.

