Skip to content

Webhook Payload Structure

This page documents the complete structure of webhook payloads sent by VectorCare.

A schema reference showing every field populated with example values. In practice, many of these fields will be null depending on the organization's configuration and the type of transport.

{
"event_id": "8e7994e1bd2b4076a4e6aaca2c65531d",
"event_timestamp": "2026-01-28T21:48:06.000Z",
"service_request_id": "VC-BSBBCY5Q",
"request_status": "AVAILABLE",
"action": "BROADCAST_RECEIVED",
"data": {
"account_name": "Example Health System",
"agreed_for_time": "2026-01-22T17:30:00.000Z",
"change_request_enabled": true,
"collection_id": "VC-COL8X2KM",
"destination_location": {
"address": "123 Hospital Way, Anytown, CA, 94000, United States",
"city": "Anytown",
"country": "United States",
"lat": 37.94,
"lng": -122.36,
"name": "Example Hospital",
"state": "CA",
"street": "123 Hospital Way",
"zip": "94000"
},
"facility_name": "Example Health System - Main Campus",
"is_round_trip_first_trip": true,
"is_round_trip_return_trip": false,
"round_trip_other_service_request_id": "VC-RTN4K7PQ",
"organization_id": "X5318RVM",
"patient_active_membership": true,
"patient_age": 72,
"patient_coverages": ["Medicare", "Acme Health Plan"],
"patient_date_of_birth": "1953-08-15",
"patient_first_name": "Jane",
"patient_gender": "Female",
"patient_girth_inches": 42,
"patient_height_inches": 64,
"patient_id": "VC-PFEROY7O",
"patient_interpreter_required": false,
"patient_language_spoken": "English",
"patient_language_written": "English",
"patient_last_name": "Doe",
"patient_membership_primary_id": "1EG4-TE5-MK72",
"patient_membership_primary_prefix": "MRN",
"patient_membership_secondary_id": "H1234567890",
"patient_membership_secondary_prefix": "MCARE",
"patient_middle_name": "Q",
"patient_over_300p": false,
"patient_weight_kg": 68.0,
"patient_weight_lbs": 150.0,
"pickup_date_time": "2026-01-22T17:55:24.000Z",
"pickup_location": {
"address": "456 Nursing Home Lane, Anytown, CA, 94001, United States",
"city": "Anytown",
"country": "United States",
"lat": 37.90,
"lng": -122.54,
"name": "Example Skilled Nursing Facility",
"state": "CA",
"street": "456 Nursing Home Lane",
"zip": "94001"
},
"responder_user_email": "dispatcher@example.com",
"responder_user_first_name": "Bob",
"responder_user_last_name": "Smith",
"requester_email": "requester@example.com",
"requester_first_name": "Alice",
"requester_last_name": "Johnson",
"request_current_state": "accepted",
"scheduling_option": "specific",
"scheduling_type": "round_trip",
"service_level_type": "BLS",
"service_request_id": "VC-BSBBCY5Q",
"service_request_web_url": "https://hub.vectorcare.com/service_request/o/X5318RVM/permalink/VC-BSBBCY5Q/",
"service_type": "scheduled-transport",
"additional_passenger_name": "John Doe",
"additional_passenger_phone": "555-555-1234",
"additional_passenger_relationship": "Spouse",
"additional_passenger_weight": "180",
"additional_personnel": ["RN"],
"appointment_datetime": "2026-01-22T19:00:00.000Z",
"arrival_airport": {
"address": "100 Airport Blvd, Anytown, CA, 94002, United States",
"city": "Anytown",
"country": "United States",
"lat": 37.62,
"lng": -122.38,
"name": "Example Regional Airport",
"state": "CA",
"street": "100 Airport Blvd",
"zip": "94002"
},
"authorizing_physician": "Dr. Smith",
"can_ambulate": false,
"case_number": "CASE-2026-001234",
"cct_criteria": ["Ventilator dependent", "Continuous cardiac monitoring"],
"contact_name": "John Doe",
"contact_phone": "555-555-1234",
"departure_airport": {
"address": "200 Departure Dr, Othertown, CA, 94003, United States",
"city": "Othertown",
"country": "United States",
"lat": 37.71,
"lng": -122.22,
"name": "Example Municipal Airport",
"state": "CA",
"street": "200 Departure Dr",
"zip": "94003"
},
"destination_address_detail": "Building B",
"destination_exact_location": "Radiology Department",
"destination_is_home": false,
"destination_facility_name": "Example Hospital",
"destination_facility_type": "Hospital",
"destination_phone_number": "555-555-8000",
"destination_phone_number_extension": "4521",
"destination_room_number": "RAD-102",
"destination_stair_steps": "0",
"diagnosis_notes": "Post-hip replacement, CT scan follow-up",
"dry_run_reason": ["Patient not ready", "Patient refused transport"],
"escalated": false,
"external_authorization": "AUTH-98765",
"gl_code": "4520-MED-TRANS",
"has_own_wheelchair": false,
"hospice": false,
"intravenous_therapy": ["Normal Saline", "Antibiotics"],
"is_dialysis_trip": false,
"is_inpatient": true,
"is_recent_onset": false,
"isolation_precaution": false,
"medical_supervision": ["Cardiac monitoring", "Pulse oximetry"],
"medications": ["Lisinopril", "Metformin"],
"mental_health_hold": ["5150"],
"note": "Patient is hard of hearing, please speak clearly",
"number_of_drips": "2",
"o2": "2",
"other_requirements": "Patient needs extra time for transfers",
"override_approver": "Dr. Jones",
"override_reason": ["Medical necessity", "Patient condition changed"],
"patient_is_ready": true,
"patient_bmi": "25.8",
"payment_option_primary": "Medicare",
"payment_option_primary_group_number": "12345",
"payment_option_primary_subscriber_id": "1EG4-TE5-MK72",
"payment_option_secondary": "Acme Health Plan",
"payment_option_secondary_group_number": "67890",
"payment_option_secondary_subscriber_id": "XYZ987654",
"payment_plan_primary": "Medicare Part B",
"payment_plan_secondary": "PPO",
"pickup_exact_location": "Main Entrance",
"pickup_is_home": false,
"pickup_facility_name": "Example Skilled Nursing Facility",
"pickup_facility_type": "SNF",
"pickup_phone_number": "555-555-9000",
"pickup_phone_number_extension": "100",
"pickup_room_number": "214A",
"pickup_stair_steps": "0",
"pre_authorization_number": "PA-2026-78432",
"receiving_practitioner": "Dr. Williams",
"receiving_practitioner_2": "Dr. Brown",
"requester_phone_number": "555-555-9000",
"requester_phone_number_extension": "205",
"required_equipment": ["Stretcher", "Oxygen"],
"return_date_time": "2026-01-22T21:00:00.000Z",
"return_on_will_call": true,
"revised_eta": "2026-01-22T18:15:00.000Z",
"special_equipment": ["Bariatric stretcher"],
"transport_reason": ["Medical appointment", "Diagnostic imaging"],
"travel_authorization_number": "TA-445566",
"trip_priority_level": "Scheduled",
"transporting_practitioner": "EMT Davis",
"under_isolation": ["Contact", "Droplet"],
"wait_and_return": false
}
}

| Field | Type | Nullable | Description | |---|---|---|---| | event_id | string | | Unique identifier for this webhook event. Chronologically sortable. IDs generated later are lexicographically greater. Use to deduplicate retried webhooks and determine event ordering. | | event_timestamp | string | | When the webhook was sent (ISO 8601 UTC) | | service_request_id | string | | Unique identifier for this service request (e.g., VC-BSBBCY5Q) | | request_status | string | | High-level status indicator (see Request Status) | | action | string | | What triggered this webhook (see Actions) | | data | object | nullable | Full request details (see Data Object Fields below). Null when request_status is UNAVAILABLE. |


All fields are always present but many will be null depending on request state and service configuration. Healthcare organizations configure which fields are collected for their transport requests.

| Field | Type | Nullable | Description | |---|---|---|---| | service_request_id | string | | Unique identifier for this service request (e.g., VC-BSBBCY5Q) | | request_current_state | string | | Internal VectorCare workflow state (e.g., awaiting, accepted) | | change_request_enabled | boolean | | Whether you can submit a Change Request to propose a new pickup time for this request | | service_type | string | | Type of transport service (custom configured by requesting organization) | | service_level_type | string | nullable | Medical service level (custom configured, e.g., ALS, BLS, CCT, Wheelchair) | | scheduling_option | string | | How the pickup time was scheduled (e.g., specific, asap) | | scheduling_type | string | | Trip direction: one_way or round_trip | | organization_id | string | | Unique identifier for the requesting organization | | account_name | string | | Display name of the organization that created the request | | facility_name | string | nullable | Name of the specific facility within the organization | | collection_id | string | nullable | Groups related trips together (e.g., standing orders) | | service_request_web_url | string | | URL to view this service request in the VectorCare web application. The user following this link must be logged in to VectorCare (this is a web session login, not related to API credentials). |

| Field | Type | Nullable | Description | |---|---|---|---| | agreed_for_time | string | nullable | Confirmed pickup time (ISO 8601 UTC). When present, this is the authoritative pickup time and may differ from pickup_date_time. null until both parties have agreed on the pickup time. Fall back to pickup_date_time when this field is null. | | pickup_date_time | string | nullable | Originally requested pickup time (ISO 8601 UTC). This is not the confirmed pickup time. See the separate agreed_for_time field, which should be used as the authoritative pickup time when it is present. | | appointment_datetime | string | nullable | Patient's appointment time at destination | | return_date_time | string | nullable | Scheduled time for return trip pickup | | revised_eta | string | nullable | Updated estimated time of arrival if changed from original |

| Field | Type | Nullable | Description | |---|---|---|---| | pickup_location | location | nullable | Pickup address with GPS coordinates (see Location Object) | | pickup_facility_name | string | nullable | Name of the facility at pickup location | | pickup_facility_type | string | nullable | Category of the pickup facility (e.g., hospital, SNF) | | pickup_is_home | boolean | nullable | Indicates if pickup location is the patient's residence | | pickup_exact_location | string | nullable | Specific location within the facility (e.g., "ER Bay 3") | | pickup_room_number | string | nullable | Room or bed number at the pickup location | | pickup_stair_steps | string | nullable | Number of stair steps at pickup (for accessibility) | | pickup_phone_number | string | nullable | Contact phone number for pickup location | | pickup_phone_number_extension | string | nullable | Phone extension for pickup location | | destination_location | location | nullable | Destination address with GPS coordinates (see Location Object) | | destination_facility_name | string | nullable | Name of the facility at destination | | destination_facility_type | string | nullable | Category of the destination facility | | destination_is_home | boolean | nullable | Indicates if destination is the patient's residence | | destination_exact_location | string | nullable | Specific location within the destination facility | | destination_address_detail | string | nullable | Additional address info (unit number, suite, building) | | destination_room_number | string | nullable | Room or bed number at destination | | destination_stair_steps | string | nullable | Number of stair steps at destination | | destination_phone_number | string | nullable | Contact phone number for destination | | destination_phone_number_extension | string | nullable | Phone extension for destination | | departure_airport | location | nullable | Departure airport, air transport only (see Location Object) | | arrival_airport | location | nullable | Arrival airport, air transport only (see Location Object) |

| Field | Type | Nullable | Description | |---|---|---|---| | patient_id | string | nullable | VectorCare patient identifier | | patient_first_name | string | nullable | Patient's first name | | patient_middle_name | string | nullable | Patient's middle name | | patient_last_name | string | nullable | Patient's last name | | patient_date_of_birth | string | nullable | Patient's date of birth in YYYY-MM-DD format | | patient_age | number | nullable | Patient's age in years | | patient_gender | string | nullable | Patient's gender | | patient_weight_lbs | number | nullable | Patient's weight in pounds | | patient_weight_kg | number | nullable | Patient's weight in kilograms | | patient_height_inches | number | nullable | Patient's height in inches | | patient_girth_inches | number | nullable | Patient's girth measurement in inches | | patient_bmi | string | nullable | Patient's body mass index | | patient_over_300p | boolean | nullable | Indicates if patient weighs over 300 lbs (bariatric) | | patient_language_spoken | string | nullable | Patient's preferred spoken language | | patient_language_written | string | nullable | Patient's preferred written language | | patient_interpreter_required | boolean | nullable | Indicates if an interpreter is needed for the transport | | patient_membership_primary_id | string | nullable | Primary member ID or medical record number (MRN) | | patient_membership_primary_prefix | string | nullable | Prefix for the primary member ID | | patient_membership_secondary_id | string | nullable | Secondary member ID or MRN | | patient_membership_secondary_prefix | string | nullable | Prefix for the secondary member ID | | patient_active_membership | boolean | nullable | Indicates if patient has an active membership | | patient_coverages | array | nullable | Patient's insurance coverage information |

| Field | Type | Nullable | Description | |---|---|---|---| | diagnosis_notes | string | nullable | Clinical notes or diagnosis information | | can_ambulate | boolean | nullable | Indicates if patient can walk independently | | patient_is_ready | boolean | nullable | Indicates if patient is ready for pickup | | is_inpatient | boolean | nullable | Indicates if patient is currently admitted | | is_dialysis_trip | boolean | nullable | Indicates if transport is for dialysis treatment | | is_recent_onset | boolean | nullable | Indicates if patient's condition is recent onset | | hospice | boolean | nullable | Indicates if patient is under hospice care | | o2 | string | nullable | Oxygen flow rate in liters per minute | | intravenous_therapy | array | nullable | IV therapy details and requirements | | number_of_drips | string | nullable | Number of active IV drips during transport | | medications | array | nullable | Medications being administered during transport | | cct_criteria | array | nullable | Criteria met for critical care transport level | | medical_supervision | array | nullable | Required medical supervision level | | mental_health_hold | array | nullable | Mental health hold status (e.g., 5150) | | isolation_precaution | boolean | nullable | General isolation precaution flag | | under_isolation | array | nullable | Specific isolation types required (e.g., contact, airborne) |

| Field | Type | Nullable | Description | |---|---|---|---| | has_own_wheelchair | boolean | nullable | Indicates if patient will bring their own wheelchair | | required_equipment | array | nullable | Medical equipment needed for transport | | special_equipment | array | nullable | Additional specialized equipment requirements |

| Field | Type | Nullable | Description | |---|---|---|---| | requester_first_name | string | | First name of the person who created the request | | requester_last_name | string | | Last name of the person who created the request | | requester_email | string | | Email address of the requester | | requester_phone_number | string | nullable | Phone number of the requester | | requester_phone_number_extension | string | nullable | Phone extension for the requester | | responder_user_first_name | string | nullable | First name of the assigned transport provider user | | responder_user_last_name | string | nullable | Last name of the assigned transport provider user | | responder_user_email | string | nullable | Email of the assigned transport provider user | | contact_name | string | nullable | Name of alternate contact person for this transport | | contact_phone | string | nullable | Phone number of alternate contact | | additional_passenger_name | string | nullable | Name of person accompanying the patient | | additional_passenger_phone | string | nullable | Phone number of accompanying person | | additional_passenger_relationship | string | nullable | Accompanying person's relationship to patient | | additional_passenger_weight | string | nullable | Weight of accompanying person in pounds | | additional_personnel | array | nullable | Additional crew or staff requirements | | authorizing_physician | string | nullable | Physician who authorized the transport | | receiving_practitioner | string | nullable | Practitioner receiving the patient at destination | | receiving_practitioner_2 | string | nullable | Additional practitioner receiving the patient | | transporting_practitioner | string | nullable | Practitioner accompanying patient during transport |

| Field | Type | Nullable | Description | |---|---|---|---| | trip_priority_level | string | nullable | Urgency level assigned to the request | | escalated | boolean | nullable | Indicates if the request has been escalated | | note | string | nullable | Free-text notes added by the requester | | transport_reason | array | nullable | Selected reasons for the transport | | other_requirements | string | nullable | Free-text field for additional transport requirements |

| Field | Type | Nullable | Description | |---|---|---|---| | payment_option_primary | string | nullable | Primary payer or insurance provider | | payment_option_primary_group_number | string | nullable | Group number for primary insurance | | payment_option_primary_subscriber_id | string | nullable | Subscriber ID for primary insurance | | payment_plan_primary | string | nullable | Payment plan for primary payer | | payment_option_secondary | string | nullable | Secondary payer or insurance provider | | payment_option_secondary_group_number | string | nullable | Group number for secondary insurance | | payment_option_secondary_subscriber_id | string | nullable | Subscriber ID for secondary insurance | | payment_plan_secondary | string | nullable | Payment plan for secondary payer | | pre_authorization_number | string | nullable | Insurance pre-authorization number | | external_authorization | string | nullable | External system authorization reference | | travel_authorization_number | string | nullable | Travel-specific authorization number | | gl_code | string | nullable | General ledger code for billing | | case_number | string | nullable | External case or reference number |

| Field | Type | Nullable | Description | |---|---|---|---| | is_round_trip_first_trip | boolean | | True if this request is the outbound leg of a round trip | | is_round_trip_return_trip | boolean | | True if this request is the return leg of a round trip | | round_trip_other_service_request_id | string | nullable | Service request ID of the linked trip leg | | wait_and_return | boolean | nullable | Indicates if crew should wait at destination for return | | return_on_will_call | boolean | nullable | Indicates if return trip is on will-call |

| Field | Type | Nullable | Description | |---|---|---|---| | override_approver | string | nullable | Name of person who approved a service level override | | override_reason | array | nullable | Reasons provided for the service level override | | dry_run_reason | array | nullable | Reasons for dry run (crew arrived but patient was not transported) |


All location fields share this structure:

| Field | Type | Nullable | Description | |---|---|---|---| | address | string | nullable | Full formatted address string | | city | string | nullable | City name | | country | string | nullable | Country name | | lat | number | nullable | GPS latitude coordinate | | lng | number | nullable | GPS longitude coordinate | | name | string | nullable | Location display name or facility name | | state | string | nullable | State or province abbreviation | | street | string | nullable | Street address line | | zip | string | nullable | ZIP or postal code |