Webhook event delivery
The envelope this API sends for EVERY webhook event, regardless of which event fired it - see the WebhookEventName enum for the full catalog (customer., card., transaction., notification., location.updated, team_member., webhook_endpoint.delivery_failed, custom_field., product.*). One generic operation documents the shared envelope shape (id, object, type, created_at, api_version, data, request) rather than duplicating an identical requestBody once per catalog event; data.object carries the actual resource snapshot and its concrete shape is documented on that resource’s own schema elsewhere in this spec. See the webhooks guide for delivery, retry, and signature-verification details.
Authorizations
Your secret API key as a Bearer token: Authorization: Bearer vxn_sk_.... Keys are created and scoped in the dashboard - see Authentication.
Body
The delivery envelope every webhook POST carries - Stripe-shaped: data.object is the full resource as of the event, type is the catalog name, api_version matches the endpoint's pinned version. Dedupe by id (identical across endpoints and retries).
The locked v1 event catalog - 22 events across 9 subjects. Names follow resource.action with past-participle actions (transaction.created), never the dotted verb-stems used by transaction types - the two vocabularies never mix. product.created/product.updated fire for dashboard and API-created catalog changes; POS-synced catalog changes do not emit (they mirror the till, and a first sync would flood your endpoint).
customer.created, customer.updated, customer.deleted, customer.pass_installed, customer.pass_uninstalled, card.created, card.updated, card.deleted, custom_field.created, custom_field.updated, custom_field.deleted, product.created, product.updated, transaction.created, transaction.reversed, notification.sent, notification.delivery_updated, location.updated, team_member.added, team_member.updated, team_member.removed, webhook_endpoint.delivery_failed "transaction.created"
Response
Return any 2xx status to acknowledge receipt. A non-2xx response (or no response within the timeout) is retried on the documented backoff schedule.