subscribedEvents when registering a webhook endpoint. Event names follow the {resource}.{subject} convention. Events fire on transitions of the resource’s publicly observable status — internal-only states never produce webhook events.
Wildcards
In addition to individual event names,subscribedEvents accepts:
Customer events
Fired as a customer’s verification profile moves through its status lifecycle. One event fires per verification profile per transition — a customer with multiple profiles produces an independent event stream per profile.
Example —
customer.approved:
The
cause field is reserved for a machine-readable rejection reason. It is currently always null, including on customer.rejected — structured rejection reasons ship in an upcoming release.Transfer events
Fired as a transfer moves through its status lifecycle. Webhooks are now the recommended way to track transfer progress.
Example —
transfer.succeeded:
Transfer event names use the public API resource name (
transfer.*), while data.id uses the payout_ prefix — matching the IDs returned by the /v2/transfer API today. transferType is staticTransfer for on-ramper accounts and offloader wallets, oneTimeTransfer otherwise. The deprecated undeliverable status does not produce events.The
cause field is reserved for a machine-readable failure reason on terminal failure events (transfer.failed, transfer.returned, transfer.expired, transfer.canceled, transfer.failedPrecondition, transfer.unexpectedError). It is currently always null — structured failure reasons ship in an upcoming release.