Configure webhook endpoints in Settings > Webhooks. See
Configure Webhooks for setup instructions.
Payload Structure
Every webhook payload follows this structure:| Field | Type | Description |
|---|---|---|
id | string | Unique event identifier. Use for deduplication. |
type | string | Event type in resource.action format. |
workspace_id | string | The workspace where the event occurred. |
timestamp | string | ISO 8601 timestamp of when the event occurred. |
data | object | Event-specific payload. Structure varies by event type. |
Trip Events
| Event Type | Trigger |
|---|---|
trip.created | A new trip is created (manually or from a portal request). |
trip.updated | Trip details are modified (route, dates, crew, etc.). |
trip.confirmed | Trip status changes to Confirmed. |
trip.cancelled | Trip is cancelled. |
trip.completed | Trip status changes to Completed. |
trip.crew_assigned | A crew member is assigned to the trip. |
trip.crew_removed | A crew member is removed from the trip. |
trip.passenger_added | A passenger is added to the trip manifest. |
trip.passenger_removed | A passenger is removed from the trip manifest. |
Example: trip.created
Trip Request Events
| Event Type | Trigger |
|---|---|
trip_request.created | A client submits a trip request through the portal. |
trip_request.accepted | Operations team accepts the request. |
trip_request.declined | Operations team declines the request. |
trip_request.quoted | A quote is sent to the client. |
trip_request.quote_accepted | Client accepts the quote. |
trip_request.quote_declined | Client declines the quote. |
trip_request.cancelled | Client cancels the request. |
Safety Events
| Event Type | Trigger |
|---|---|
safety_report.submitted | A new safety report is submitted. |
safety_report.updated | A safety report is updated. |
safety_report.closed | A safety report is closed. |
investigation.created | A new investigation is opened. |
investigation.completed | An investigation is marked as complete. |
cpa.created | A corrective/preventive action is created. |
cpa.completed | A CPA is marked as complete. |
cpa.overdue | A CPA has passed its due date. |
hazard.identified | A new hazard is added to the hazard register. |
hazard.mitigated | A hazard is marked as mitigated. |
Crew Events
| Event Type | Trigger |
|---|---|
crew.currency_expiring | A crew member’s currency will expire within 30 days. |
crew.currency_expired | A crew member’s currency has expired. |
crew.duty_limit_warning | A crew member is approaching duty time limits. |
crew.training_due | A crew member has training coming due. |
Aircraft Events
| Event Type | Trigger |
|---|---|
aircraft.status_changed | Aircraft status changes (available, maintenance, etc.). |
aircraft.inspection_due | An inspection is coming due within the configured threshold. |
aircraft.discrepancy_reported | A new discrepancy is reported. |
aircraft.mel_deferral_expiring | An MEL deferral is approaching its expiration. |
Invoice Events
| Event Type | Trigger |
|---|---|
invoice.created | A new invoice is created. |
invoice.sent | An invoice is sent to the client. |
invoice.paid | Payment is recorded for an invoice. |
invoice.overdue | An invoice has passed its due date without payment. |
Member Events
| Event Type | Trigger |
|---|---|
member.invited | A new member invitation is sent. |
member.joined | A member accepts their invitation and joins. |
member.role_changed | A member’s role is changed. |
member.removed | A member is removed from the workspace. |
Portal Events
| Event Type | Trigger |
|---|---|
portal.client_invited | A portal invitation is sent to a client. |
portal.client_joined | A client accepts their portal invitation. |
portal.client_suspended | A client’s portal access is suspended. |
portal.message_sent | A client sends a message through the portal. |
Delivery Headers
Each webhook delivery includes these HTTP headers:| Header | Description |
|---|---|
Content-Type | Always application/json. |
X-PlaneConnection-Signature | HMAC-SHA256 signature for payload verification. |
X-PlaneConnection-Event | The event type (e.g., trip.created). |
X-PlaneConnection-Delivery-ID | Unique delivery ID for tracking retries. |
X-PlaneConnection-Timestamp | Delivery timestamp (ISO 8601). |
Related
Configure Webhooks
Set up webhook endpoints.
API Webhooks
API-level webhook documentation.
API Authentication
How to verify webhook signatures.