# Webhook Events ## List webhook events **get** `/v1/webhook-events` Retrieves a paginated list of webhook events for the authenticated organization. Supports filtering by event name, resource type, resource ID, and date range. ### Query Parameters - `created_after: optional string` - `created_before: optional string` - `event_name: optional "enrollment.accepted" or "enrollment.terminated" or "enrollment.elected" or 8 more` * `enrollment.accepted` - Enrollment Accepted * `enrollment.terminated` - Enrollment Terminated * `enrollment.elected` - Enrollment Elected * `enrollment.granted` - Enrollment Granted * `enrollment.waived` - Enrollment Waived * `enrollment.started` - Enrollment Started * `employee.eligibility_granted` - Employee Eligibility Granted * `employee.eligibility_terminated` - Employee Eligibility Terminated * `employee.deactivated` - Employee Deactivated * `payroll_deduction.created` - Payroll Deduction Created * `employer.eligibility_policy_created` - Employer Eligibility Policy Created - `"enrollment.accepted"` - `"enrollment.terminated"` - `"enrollment.elected"` - `"enrollment.granted"` - `"enrollment.waived"` - `"enrollment.started"` - `"employee.eligibility_granted"` - `"employee.eligibility_terminated"` - `"employee.deactivated"` - `"payroll_deduction.created"` - `"employer.eligibility_policy_created"` - `limit: optional number` Items per page (default: 20, max: 100) - `page: optional number` Page number (default: 1) - `resource_id: optional string` - `resource_type: optional "enrollment" or "employee" or "employer" or 3 more` * `enrollment` - Enrollment * `employee` - Employee * `employer` - Employer * `dependent` - Dependent * `plan_year` - Plan Year * `payroll_deduction` - Payroll Deduction - `"enrollment"` - `"employee"` - `"employer"` - `"dependent"` - `"plan_year"` - `"payroll_deduction"` ### Returns - `data: array of WebhookEvent` - `id: string` Prefixed unique identifier for this webhook event (e.g., `wevt_...`). - `created_at: string` When the event occurred, in UTC. - `event_name: string` The event type, formatted as `{resource}.{action}` (e.g., `enrollment.accepted`). - `organization_id: string` The organization this event belongs to. - `resource_id: string` Prefixed ID of the affected resource. Use this to fetch the current state from the API. - `resource_type: string` The type of resource affected (e.g., `enrollment`, `employee`). - `pagination: Pagination` Pagination metadata for list responses. - `limit: number` Items per page - `page: number` Current page number - `total: number` Total number of items - `total_pages: number` Total number of pages ### Example ```http curl https://api.vitablehealth.com/v1/webhook-events \ -H "Authorization: Bearer $VITABLE_CONNECT_API_KEY" ``` #### Response ```json { "data": [ { "id": "wevt_abc123def456", "organization_id": "org_xyz789", "event_name": "enrollment.accepted", "resource_type": "enrollment", "resource_id": "enrl_sample123", "created_at": "2024-06-15T14:30:00Z" }, { "id": "wevt_def456ghi789", "organization_id": "org_xyz789", "event_name": "employee.deactivated", "resource_type": "employee", "resource_id": "empl_sample456", "created_at": "2024-06-15T12:00:00Z" } ], "pagination": { "page": 1, "limit": 20, "total": 2, "total_pages": 1 } } ``` ## Get webhook event **get** `/v1/webhook-events/{event_id}` Retrieves a single webhook event by its prefixed ID. Returns 404 if the event does not exist or belongs to a different organization. ### Path Parameters - `event_id: string` ### Returns - `data: WebhookEvent` - `id: string` Prefixed unique identifier for this webhook event (e.g., `wevt_...`). - `created_at: string` When the event occurred, in UTC. - `event_name: string` The event type, formatted as `{resource}.{action}` (e.g., `enrollment.accepted`). - `organization_id: string` The organization this event belongs to. - `resource_id: string` Prefixed ID of the affected resource. Use this to fetch the current state from the API. - `resource_type: string` The type of resource affected (e.g., `enrollment`, `employee`). ### Example ```http curl https://api.vitablehealth.com/v1/webhook-events/$EVENT_ID \ -H "Authorization: Bearer $VITABLE_CONNECT_API_KEY" ``` #### Response ```json { "data": { "id": "wevt_abc123def456", "organization_id": "org_xyz789", "event_name": "enrollment.accepted", "resource_type": "enrollment", "resource_id": "enrl_sample123", "created_at": "2024-06-15T14:30:00Z" } } ``` ## List webhook event deliveries **get** `/v1/webhook-events/{event_id}/deliveries` Retrieves all delivery attempts for a webhook event. Returns up to 100 deliveries. Each delivery includes a computed status field (Pending, In Progress, Delivered, or Failed). ### Path Parameters - `event_id: string` ### Returns - `data: array of object { id, created_at, delivered_at, 6 more }` - `id: string` Prefixed unique identifier for this delivery (e.g., `wdlv_...`). - `created_at: string` When this delivery record was created, in UTC. - `delivered_at: string` When the delivery was successfully received, in UTC. - `failed_at: string` When the delivery was marked as permanently failed, in UTC. - `failure_reason: string` Reason for failure, if applicable. - `started_at: string` When the delivery attempt started, in UTC. - `status: string` Current delivery status: Pending, In Progress, Delivered, or Failed. - `subscription_id: string` The webhook subscription this delivery was sent to. - `webhook_event_id: string` The webhook event this delivery belongs to. ### Example ```http curl https://api.vitablehealth.com/v1/webhook-events/$EVENT_ID/deliveries \ -H "Authorization: Bearer $VITABLE_CONNECT_API_KEY" ``` #### Response ```json { "data": [ { "id": "wdlv_abc123def456", "webhook_event_id": "wevt_xyz789abc012", "subscription_id": "wsub_sub123def456", "status": "Delivered", "started_at": "2024-06-15T14:30:01Z", "delivered_at": "2024-06-15T14:30:02Z", "failed_at": null, "failure_reason": "", "created_at": "2024-06-15T14:30:00Z" }, { "id": "wdlv_def456ghi789", "webhook_event_id": "wevt_xyz789abc012", "subscription_id": "wsub_sub456ghi789", "status": "Failed", "started_at": "2024-06-15T14:30:01Z", "delivered_at": null, "failed_at": "2024-06-15T14:30:05Z", "failure_reason": "max_attempts", "created_at": "2024-06-15T14:30:00Z" } ] } ``` ## Domain Types ### Webhook Event - `WebhookEvent = object { id, created_at, event_name, 3 more }` - `id: string` Prefixed unique identifier for this webhook event (e.g., `wevt_...`). - `created_at: string` When the event occurred, in UTC. - `event_name: string` The event type, formatted as `{resource}.{action}` (e.g., `enrollment.accepted`). - `organization_id: string` The organization this event belongs to. - `resource_id: string` Prefixed ID of the affected resource. Use this to fetch the current state from the API. - `resource_type: string` The type of resource affected (e.g., `enrollment`, `employee`).