> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://developer.fortresstech.io/webhooks/webhook-events/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.fortresstech.io/_mcp/server. # Webhook Events > The events Fortress delivers by webhook, one page per event type Every event shares the same [envelope](/webhooks/webhooks#the-event-envelope). Each event type has its own page covering what goes in `data`, when it fires, and — just as importantly — the cases where it is deliberately *not* sent. Read the [Webhooks](/webhooks/webhooks) guide first for signature verification, retries, and idempotency. > **Note** > > New event types are added over time and are opt-in per subscription. Route on `eventType` and ignore > values you do not recognize; a subscription only receives the events it was provisioned for. ## Available Delivered today. Subscribe and build against these. | Event | Fires when | | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | | [`prospect.created`](/webhooks/webhook-events/webhooks/prospect-created) | A new prospect record is created in Fortress | | [`message.received`](/webhooks/webhook-events/webhooks/message-received) | A new inbound message is received | | [`application.completed`](/webhooks/webhook-events/webhooks/application-completed) | An application's status moves to APPROVED, CANCELED, DENIED, ABANDONED or WAITLIST | | [`application.signed`](/webhooks/webhook-events/webhooks/application-signed) | Each time the last required adult in a household e-signs their application form | | [`requirement.upload_received`](/webhooks/webhook-events/webhooks/requirement-upload-received) | A document is uploaded to a requirement | | [`requirement.upload_removed`](/webhooks/webhook-events/webhooks/requirement-upload-removed) | A document is removed from a requirement | | [`agent.state_changed`](/webhooks/webhook-events/webhooks/agent-state-changed) | Staff enable or disable an agent (`cora` or `leslie`) for a property (`scope` `PROPERTY`), or change the CORA cadence policy of a property | | [`compliance_review.opened`](/webhooks/webhook-events/webhooks/compliance-review-opened) | Staff open a manual compliance review on an application | | [`compliance_review.closed`](/webhooks/webhook-events/webhooks/compliance-review-closed) | Staff close the manual compliance review on an application | Every `requirement.*` event describes one [requirement](/ai-team-members/cora/overview#the-bundle-model); they fire for `DOCUMENT` slots only. ## Defined, not yet delivered Documented so that you can build and test your receiver with the [trigger](/api-reference/webhooks/trigger-webhook-event). Real deliveries start when the publisher ships. Subscriptions may list these event types today. | Event | Fires when | | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | | [`subscription.created`](/webhooks/webhook-events/webhooks/subscription-created) | A resident subscription starts | | [`subscription.updated`](/webhooks/webhook-events/webhooks/subscription-updated) | A resident subscription changes plan or status | | [`subscription.ended`](/webhooks/webhook-events/webhooks/subscription-ended) | A resident subscription ends | | [`customer.updated`](/webhooks/webhook-events/webhooks/customer-updated) | A customer with a live subscription changes a watched field | | [`lease.updated`](/webhooks/webhook-events/webhooks/lease-updated) | The lease of a household with a live subscription changes a watched field | > The events Fortress delivers by webhook, one page per event type ## Docs - [prospect.created](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/prospect-created.md): Delivered when a new prospect is created for a property your subscription covers - [message.received](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/message-received.md): Delivered when an inbound message is received for a property your subscription covers - [application.completed](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/application-completed.md): Delivered when an application reaches a final status — APPROVED, CANCELED, DENIED, ABANDONED or WAITLIST - [application.signed](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/application-signed.md): Delivered each time the last required adult of a household signs electronically - [requirement.upload_received](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/requirement-upload-received.md): Delivered when a document is uploaded to a requirement - [requirement.upload_removed](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/requirement-upload-removed.md): Delivered when a document is removed from a requirement - [agent.state_changed](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/agent-state-changed.md): Delivered when staff enable or disable an agent for a property, or change the CORA cadence policy - [compliance_review.opened](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/compliance-review-opened.md): Delivered when staff open a manual compliance review - [compliance_review.closed](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/compliance-review-closed.md): Delivered when staff close a manual compliance review - [subscription.created](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/subscription-created.md): Delivered when a resident subscription starts - [subscription.updated](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/subscription-updated.md): Delivered when a resident subscription changes plan or status - [subscription.ended](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/subscription-ended.md): Delivered when a resident subscription ends - [customer.updated](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/customer-updated.md): Delivered when a customer with a live subscription changes a watched field - [lease.updated](https://developer.fortresstech.io/webhooks/webhook-events/webhooks/lease-updated.md): Delivered when the active lease of a household with a live subscription changes a watched field