Skip to content

Webhooks

Webhooks notify your system when events occur in VectorCare.

  1. Log into VectorCare as an account admin
  2. Navigate to SettingsOpen API
  3. Set your webhook URL (must be HTTPS)
{
"event_id": "EVENT_ID",
"event_type": "request.status.available",
"event": {
"request_id": "ABCD1234",
"request_current_state": "accepted"
}
}
FieldDescription
event_idUnique ID for deduplication
event_typeType of event (see below)
eventEvent payload
Event TypeDescription
request.state.availableRequest is available to your account
request.state.unavailableRequest is no longer available
request.data.updatedRequest data was modified
request.state.pendingRequest was broadcast (limited data)
HeaderDescription
VectorCare-Environmentdevelopment or production
VectorCare-Namespacevectorcare or kaiser
X-VectorCare-SignatureSignature for verification

For standing orders, you may receive bulk webhooks:

{
"event_id": "EVENT_ID",
"event_type": "collection.state.updated",
"event": {
"collection_id": "STANDING_ORDER_ID",
"collection_current_state": "accepted",
"request_ids": ["ABCD1234", "EFGH5678", "IJKL9012"]
}
}

Verify webhooks using RSA-SHA256 with the public key from your VectorCare Open API settings. Base64 decode the X-VectorCare-Signature header and verify it against the raw request body.

  • Respond within 10 seconds with a 2xx status
  • Use async processing for heavy work
  • Deduplicate using event_id
  • Set unique constraint on request_id
  • Avoid rate limiting webhook requests
AttemptDelay
1stImmediate
2nd8 seconds
3rd64 seconds

For request.state.pending webhooks, these fields are omitted to protect PHI:

  • transport_pickup_time
  • transport_agreed_for_time
  • enabled_patient_fields
  • enabled_request_fields
  • patient_dob

Pending requests may expire without becoming available.