API Reference
Webhooks

Webhooks (API Reference)

The Webhooks API lets you manage webhook endpoints that receive real-time event notifications from Jump EHR. For an overview of webhook concepts, event types, and signature verification, see the Webhooks guide.

Endpoints

MethodEndpointDescription
GET/webhooksList webhook endpoints
GET/webhooks/{id}Retrieve a webhook endpoint
POST/webhooksCreate a webhook endpoint
PATCH/webhooks/{id}Update a webhook endpoint
DELETE/webhooks/{id}Delete a webhook endpoint
POST/webhooks/{id}/testSend a test event

The Webhook Endpoint Object

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "My Integration",
  "url": "https://example.com/webhooks/jump",
  "events": [
    "appointment.created",
    "appointment.cancelled"
  ],
  "is_active": true,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-06-20T14:45:00Z"
}

Supported Event Types

EventDescription
patient.createdNew patient record created
patient.updatedPatient demographics changed
patient.archivedPatient archived
appointment.createdNew appointment booked
appointment.updatedAppointment details changed
appointment.cancelledAppointment cancelled
appointment.completedAppointment marked complete
appointment.no_showPatient marked as no-show
appointment.rescheduledAppointment rescheduled
questionnaire_response.createdNew questionnaire submitted
questionnaire_response.updatedQuestionnaire response updated
clinician_profile.updatedClinician profile changed
clinician_profile.deactivatedClinician deactivated
location.updatedLocation details changed
location.deactivatedLocation deactivated
appointment_template.updatedAppointment type changed
appointment_template.deactivatedAppointment type deactivated

Create a Webhook Endpoint

POST /webhooks
⚠️

The signing secret (whsec_...) is returned only in the creation response. Store it securely — it cannot be retrieved later.

Request Body

FieldTypeRequiredDescription
urlstringYesHTTPS endpoint URL
eventsstring[]YesEvent types to subscribe to
namestringNoDisplay name for the endpoint

Example Request

curl -X POST -H "Authorization: Bearer pk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/webhooks/jump", "events": ["appointment.created"], "name": "Booking Sync"}' \
  "https://api.jumpehr.com/api-v1/webhooks"

Example Response

{
  "data": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "Booking Sync",
    "url": "https://example.com/webhooks/jump",
    "events": ["appointment.created"],
    "is_active": true,
    "secret": "whsec_a1b2c3d4e5f6...",
    "created_at": "2024-07-01T12:00:00Z",
    "updated_at": "2024-07-01T12:00:00Z"
  },
  "meta": { "request_id": "req_abc123" }
}

Update a Webhook Endpoint

PATCH /webhooks/{id}

Partial update — only supplied fields are changed.

FieldTypeDescription
namestringDisplay name
urlstringHTTPS endpoint URL
eventsstring[]Event types (replaces the full list)
is_activebooleanEnable or disable the endpoint

Delete a Webhook Endpoint

DELETE /webhooks/{id}

Permanently removes the endpoint. Pending deliveries for this endpoint will be marked as failed.

Test a Webhook

POST /webhooks/{id}/test

Enqueues a test.ping event for delivery. Use this to verify your receiver is correctly processing and verifying signatures.

Example Response

{
  "data": {
    "event_id": "evt_123",
    "endpoint_id": "123e4567-e89b-12d3-a456-426614174000",
    "status": "queued",
    "message": "Test webhook queued for delivery"
  },
  "meta": { "request_id": "req_abc123" }
}