Skip to main content

Overview

The Service Reminder webhook notifies your system when a notification rule is triggered indicating that a service reminder is due for a patient. Oliver sends an HTTP POST request to your configured endpoint with a JSON payload containing the reminder details.

Payload Structure

The webhook payload is sent as a JSON object with the following structure:
string
required
Oliver’s unique identifier for the veterinary practice.
string
required
The name of the veterinary practice associated with the reminder.
string
required
Oliver’s unique identifier for the service reminder group.
string
required
Oliver’s unique identifier for the client who should be notified.
string
The unique identifier for the client in the PIMS, if applicable.
string
required
Oliver’s unique identifier for the patient (pet) who has services due.
string
The unique identifier for the patient in the PIMS, if applicable.
string
The name of the notification rule that triggered this webhook.
string
required
The date and time when the service reminder group is due, in ISO 8601 format.
array
required
An array of service reminder objects for the services that are due.
string
required
The status of the reminders in the group. Possible values: completed, partially_completed, deleted, incomplete.
object
Optional object containing additional fields for practices with a server ID configured.

Example Payload

Verifying Webhook Signatures

To ensure that webhook requests are genuinely from Oliver and have not been tampered with, each request includes a signature in the X-Webhook-Signature header. You should verify this signature before processing the payload.

Signature Verification Process

  1. Extract the X-Webhook-Signature header from the request
  2. Compute an HMAC-SHA256 hash of the raw request body using your webhook secret
  3. Compare the computed signature with the one in the header

Example Verification

Always use constant-time comparison functions (like hmac.compare_digest in Python or crypto.timingSafeEqual in Node.js) to prevent timing attacks.

Handling the Webhook

When receiving a service reminder webhook, your endpoint should:
  1. Verify the webhook signature
  2. Respond with a 200 OK status code to acknowledge receipt
  3. Process the reminder asynchronously if needed to avoid timeouts
  4. Use the client_id and patient_id to look up contact information
  5. Send appropriate reminder notifications to the client
If your endpoint fails to respond with a success status code, Oliver may retry the webhook delivery.