# Subscription model This page explains how webhook subscriptions are structured, how you can control which events to receive, and how delivery to your endpoints works. ## Supported subscription models Spotnana supports two ways to configure webhook subscriptions depending on how your system is set up. ### Option A: Organization specific webhooks Each customer organization has its own dedicated webhook subscription with a separate endpoint URL and authentication credentials. Spotnana delivers events for that organization exclusively to the configured endpoint. ```mermaid flowchart LR S([Spotnana]) --> E1[[Endpoint A]] S --> E2[[Endpoint B]] S --> E3[[Endpoint C]] E1 --> O1[(Org A)] E2 --> O2[(Org B)] E3 --> O3[(Org C)] ``` This model is a good fit for partners who manage distinct integrations per customer. **Note:** While our platform supports this subscription model we do not prefer this approach as it requires manual setup for each organization. We recommend using option B instead. ### Option B: Single TMC-level webhook (recommended) One webhook subscription that covers all of your customers. Spotnana delivers all events across all organizations to a single endpoint, and you route them internally based on the organization identifier (i.e., an `organizationId`) included in every payload. ```mermaid flowchart LR S[Spotnana] --> E[Single TMC partner's endpoint] E --> R{Route by organization ID} R --> O1[Org A] R --> O2[Org B] R --> O3[Org C] ``` This is the **recommended** model for partners integrating across multiple customers. It is easier to scale, gives you full control over your endpoint and monitoring, and reduces the overhead of managing multiple subscriptions. ## Event and operation filtering Partners can choose which event and operations that they wish to receive. You can: - Subscribe to only specific webhook events (e.g., [PNR_V3](/openapi/webhookeventapi/webhooks/paths/pnr_v3/post)). - Filter by specific organizations using the `audience.organizationId` field in the payload. - Exclude specific operation types within a webhook (e.g., subscribe to [PNR_V3](/openapi/webhookeventapi/webhooks/paths/pnr_v3/post) but exclude `SCHEDULE_CHANGE` operation). **Note:** Currently the operation filtering is implemented as a blacklist (i.e., to exclude specific operations that you don't want to receive). ## Event delivery Here are some important points to note regarding webhook delivery: - Webhooks support payload delivery to one endpoint per subscription. - The same message cannot be delivered to multiple endpoints from a single subscription. - Multiple delivery subscriptions can be configured upon request if needed.