Webhook Event Types
All webhook payloads are wrapped in a WebhookEventData<T> envelope:
{
"EventType": "<event type name>",
"Data": { ... }
}Webhooks are delivered as POST requests with the following headers:
X-Webhook-Signature— HMAC-SHA256 signature of the payloadX-Webhook-Event-Id— unique event GUIDContent-Type: application/json
Active Event Types
These event types are actively dispatched by the platform.
SubscriptionStatus
Description: Fired when an investor's transaction changes status. This webhook is published at every status transition throughout the transaction lifecycle. See the Transaction State Transitions for a list of all stage changes.
Payload:
| Field | Type | Description |
|---|---|---|
subscriptionId | Guid | Unique ID of the subscription |
spvId | Guid | ID of the Pre-IPO Company SPV |
investorId | Guid | ID of the investor |
amountOfShares | decimal | Number of shares in the subscription |
amountOfDollars | decimal | Dollar amount of the subscription |
status | string | Current subscription status (Pending, Processing, Settled, Complete, Rejected) |
orderReferenceId | string? | Optional external order reference ID |
spvAccountId | long? | SPV account ID (included when status is Complete) |
Example:
{
"eventType": "SubscriptionStatus",
"data": {
"subscriptionId": "11be86e2-0d1c-47c2-8591-e8a34b805e87",
"spvId": "50135e1a-d36e-46d0-a134-4480bfa1a722",
"investorId": "3f095838-e9e1-419c-adda-eabba652afb6",
"amountOfShares": 3400,
"amountOfDollars": 642600,
"status": "COMPLETE",
"orderReferenceId": "OrderRef123"
}
}RegisteredFundTransactionStatus
Description: Fired when a registered fund transaction's status changes. Tracks buy/sell transactions within registered funds.
Payload:
| Field | Type | Description |
|---|---|---|
transactionId | Guid | Unique ID of the transaction |
registeredFundId | Guid | ID of the registered fund |
investorId | Guid | ID of the investor |
side | string | Transaction side (Buy/Sell) |
amountOfShares | decimal? | Number of shares |
amountOfDollars | decimal? | Dollar amount |
status | string | Current transaction status |
PreIPOCompanySPV
Description: Published throughout the lifecycle of a Pre-IPO Company SPV at every stage change. See the SPV State Transitions for a list of all stage changes. In addition to stage changes, webhooks are also sent whenever underlying information about the SPV changes during the PRIMARY_FUNDRAISE stage — specifically, any change to numberOfSeatsRemaining, remainingDollarAllocation, or remainingShareAllocation will trigger a webhook. When triggered by one of these field changes, the payload includes the SPV ID, Company ID, and the new value of whichever fields changed.
Payload:
| Field | Type | Description |
|---|---|---|
id | Guid | Unique ID of the SPV |
name | string | Name of the SPV |
monarkStage | string | Current Monark stage of the SPV |
preIPOCompanyId | Guid | ID of the parent Pre-IPO company |
prospectiveOfferingId | Guid? | Associated prospective offering ID, if any |
Example:
{
"eventType": "PreIPOCompanySPV",
"data": {
"id": "50135e1a-d36e-46d0-a134-4480bfa1a722",
"name": "SpaceX LLC",
"monarkStage": "PRIMARY_FUNDRAISE",
"preIPOCompanyId": "b2ace6bd-9ee4-4386-a557-c67f92e1bae7"
}
}PreIPOCompanySPVUpdate
Description: Fired when a Pre-IPO Company SPV is created or updated (e.g., field changes on the SPV entity).
Payload:
| Field | Type | Description |
|---|---|---|
preIPOCompanySPVId | Guid | ID of the SPV that was updated |
updatedFields | Dictionary<string, object?> | Map of field names to their new values |
changeType | string | Type of change (Created, Updated, Deleted) |
PreIPOCompanySPVDocumentUpdate
Description: Fired when a document is added to or updated on a Pre-IPO Company SPV.
Payload:
| Field | Type | Description |
|---|---|---|
preIPOCompanySPVId | Guid | ID of the SPV the document belongs to |
documentId | Guid | ID of the document |
documentType | string | Type of the document (e.g., SubscriptionAgreement, OfferingMemorandum) |
changeType | string | Type of change (Created, Updated, Deleted) |
PreIPOCompanySPVSubscriptionActionDefinitionUpdate
Description: Fired when a subscription action definition is updated on a Pre-IPO Company SPV (e.g., changes to required transaction actions).
Payload:
| Field | Type | Description |
|---|---|---|
preIPOCompanySPVId | Guid | ID of the SPV |
actionName | string | Name of the action definition |
actionType | string | Type of the transaction action |
changeType | string | Type of change (Created, Updated, Deleted) |
ProspectiveOfferingAccessGained
Description: Sent when a prospective offering goes live and a partner gains access to it. This can be triggered by: an offering being created as public, an offering being published (private to public), visibility changing to include the partner's financial institution, or a financial institution being explicitly granted access to an offering.
Payload:
| Field | Type | Description |
|---|---|---|
id | Guid | Unique ID of the prospective offering |
targetId | Guid | ID of the target company/asset |
targetName | string | Name of the target |
targetAssetType | string | Asset type (e.g., PreIPOCompany, RegisteredFund) |
logoUrl | string | URL to the target's logo |
availableVolume | decimal? | Available volume of shares/securities |
minimumInvestment | string? | Minimum investment amount |
structure | string? | Offering structure description |
closingDate | DateTime? | Expected closing date |
estimatedValuation | object? | Estimated valuation with single, high, and low fields |
estimatedValuationText | string? | Estimated valuation as display text |
estimatedPricePerShare | object? | Estimated price per share with single, high, and low fields |
estimatedPricePerShareText | string? | Estimated price per share as display text |
researchReport | string? | Research report URL/content |
createdAt | DateTime | Creation timestamp |
Example:
{
"eventType": "ProspectiveOfferingAccessGained",
"data": {
"id": "dc90aba8-2801-4ab6-821f-4a3e8b9e6f4f",
"targetId": "5d724dc3-c39d-484c-b949-6b061b60e129",
"targetName": "Anduril",
"targetAssetType": "PreIPOCompany",
"logoUrl": "https://images.prismic.io/sacra/20d9de0b-e3f8-47f5-8bb6-7f92638e50fd_download.png?auto=format,compress",
"availableVolume": 100000,
"minimumInvestment": "10000",
"structure": "ok",
"closingDate": "2026-02-26T19:14:41.3495476Z",
"estimatedValuation": {
"single": null,
"high": 5000,
"low": 4000
},
"estimatedValuationText": "$5k to $4k",
"estimatedPricePerShare": {
"single": null,
"high": 50,
"low": 40
},
"estimatedPricePerShareText": "$50 to $40 per share",
"researchReport": "https://www.anduril.com",
"createdAt": "2026-02-26T19:14:41.3495476Z"
}
}ProspectiveOfferingAccessLost
Description: Sent when a prospective offering is closed and a partner loses access to it. This can be triggered by: an offering being unpublished (public to private), an offering being deleted, visibility changing to exclude the partner's financial institution, or a financial institution's explicit access being removed.
Payload: Same as ProspectiveOfferingAccessGained (full ProspectiveOffering object).
IndicationOfInterestClosed
Description: Sent when outstanding pending IOIs are automatically closed due to a prospective offering becoming inaccessible. This can happen in either of the following scenarios:
- The associated ProspectiveOffering has closed and is now a live SPV
- The associated ProspectiveOffering has closed and the indication is no longer active
In either case, the indication of interest will have an isActive status of false.
Payload:
| Field | Type | Description |
|---|---|---|
id | Guid | Unique ID of the IOI |
investorId | Guid? | ID of the investor who submitted the IOI |
advisorId | Guid? | ID of the advisor who submitted the IOI (if applicable) |
targetId | Guid | ID of the target asset |
targetAssetType | string | Asset type (e.g., ProspectiveOffering) |
numberOfClients | int? | Number of clients represented (for aggregated IOIs) |
notionalAmount | double | Notional dollar amount of the IOI |
currency | string | Currency (USD) |
createdAt | DateTime | Creation timestamp |
updatedAt | DateTime? | Last update timestamp |
partnerName | string | Name of the partner |
investorFirstName | string | Investor's first name |
investorLastName | string | Investor's last name |
targetName | string? | Name of the target asset |
isActive | bool | Whether the IOI is currently active (will be false) |
Example:
{
"eventType": "IndicationOfInterestClosed",
"data": {
"id": "guid",
"investorId": "guid",
"advisorId": null,
"targetId": "guid",
"targetAssetType": "ProspectiveOffering",
"numberOfClients": 1,
"notionalAmount": 100000.0,
"currency": "USD",
"createdAt": "2026-01-15T10:00:00Z",
"updatedAt": "2026-01-20T14:30:00Z",
"partnerName": "Acme Capital",
"investorFirstName": "John",
"investorLastName": "Doe",
"targetName": "SpaceX",
"isActive": false
}
}PendingSubscriptionReminder
Description: A "reminder" webhook sent 24 hours after a transaction reaches the Pending status and remains there. Can be used as a trigger for "empty cart" email or push notification outreach to investors, prompting them to complete their transaction. The event type PendingSubscriptionReminder can be used to filter for reminders vs. regular SubscriptionStatus events.
Payload:
| Field | Type | Description |
|---|---|---|
subscriptionId | Guid | Unique ID of the subscription |
spvId | Guid | ID of the Pre-IPO Company SPV |
investorId | Guid | ID of the investor |
amountOfShares | decimal | Number of shares |
amountOfDollars | decimal | Dollar amount |
status | string | Subscription status (Pending) |
orderReferenceId | string? | Optional external order reference ID |
createdAt | DateTime | When the subscription was created |
CorporateAction
Description: Fired when a corporate action is created or updated (e.g., status, type, or estimated date changes). Sent to partners whose investors have subscriptions in SPVs under the affected Pre-IPO company.
Payload:
| Field | Type | Description |
|---|---|---|
id | Guid | Unique ID of the corporate action |
preIPOCompanyId | Guid | ID of the Pre-IPO company |
type | string | Corporate action type |
status | string | Corporate action status |
estimatedDate | DateTime? | Estimated date of the corporate action |
createdAt | DateTime | Creation timestamp |
updatedAt | DateTime | Last update timestamp |
FinancialInstitution
Description: Fired when a new financial institution is created. Sent to the partner that owns the financial institution.
Payload:
| Field | Type | Description |
|---|---|---|
id | Guid | Unique ID of the financial institution |
partnerId | Guid | ID of the owning partner |
partnerName | string? | Name of the partner |
legalName | string | Legal name of the institution |
crdNumber | string | CRD number |
financialInstitutionType | string | Type of financial institution |
kycRequired | string | KYC requirements |
isDefault | bool | Whether this is the default FI for the partner |
city | string | City |
state | string | State code |
zipCode | string | Zip code |
countryCode | string | Country code |
createdAt | DateTime | Creation timestamp |
updatedAt | DateTime | Last update timestamp |
financialInstitutionReferenceId | string? | Optional external reference ID |
FinancialInstitutionUpdate
Description: Fired when an existing financial institution is updated. Includes a map of which fields changed and their new values.
Payload:
| Field | Type | Description |
|---|---|---|
financialInstitutionId | Guid | ID of the updated financial institution |
updatedFields | Dictionary<string, object?> | Map of changed field names to new values |
changeType | string | Type of change (Created, Updated, Deleted) |
Reserved Event Types (Not Currently Dispatched)
The following event types are defined in the WebhookEventType enum but are not currently dispatched by any service in the codebase. They may be reserved for future use.
| Event Type | Description |
|---|---|
PreIPOCompany | Reserved. Intended for Pre-IPO company lifecycle events. |
PreIPOCompanyInvestment | Reserved. Intended for Pre-IPO company investment events. |
Investor | Reserved. Intended for investor lifecycle events. |
Document | Reserved. Intended for general document events. |
InvestorSubscriptionAction | Reserved. Intended for investor subscription action events. |
