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 payload
  • X-Webhook-Event-Id — unique event GUID
  • Content-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:

FieldTypeDescription
subscriptionIdGuidUnique ID of the subscription
spvIdGuidID of the Pre-IPO Company SPV
investorIdGuidID of the investor
amountOfSharesdecimalNumber of shares in the subscription
amountOfDollarsdecimalDollar amount of the subscription
statusstringCurrent subscription status (Pending, Processing, Settled, Complete, Rejected)
orderReferenceIdstring?Optional external order reference ID
spvAccountIdlong?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:

FieldTypeDescription
transactionIdGuidUnique ID of the transaction
registeredFundIdGuidID of the registered fund
investorIdGuidID of the investor
sidestringTransaction side (Buy/Sell)
amountOfSharesdecimal?Number of shares
amountOfDollarsdecimal?Dollar amount
statusstringCurrent 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:

FieldTypeDescription
idGuidUnique ID of the SPV
namestringName of the SPV
monarkStagestringCurrent Monark stage of the SPV
preIPOCompanyIdGuidID of the parent Pre-IPO company
prospectiveOfferingIdGuid?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:

FieldTypeDescription
preIPOCompanySPVIdGuidID of the SPV that was updated
updatedFieldsDictionary<string, object?>Map of field names to their new values
changeTypestringType of change (Created, Updated, Deleted)

PreIPOCompanySPVDocumentUpdate

Description: Fired when a document is added to or updated on a Pre-IPO Company SPV.

Payload:

FieldTypeDescription
preIPOCompanySPVIdGuidID of the SPV the document belongs to
documentIdGuidID of the document
documentTypestringType of the document (e.g., SubscriptionAgreement, OfferingMemorandum)
changeTypestringType 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:

FieldTypeDescription
preIPOCompanySPVIdGuidID of the SPV
actionNamestringName of the action definition
actionTypestringType of the transaction action
changeTypestringType 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:

FieldTypeDescription
idGuidUnique ID of the prospective offering
targetIdGuidID of the target company/asset
targetNamestringName of the target
targetAssetTypestringAsset type (e.g., PreIPOCompany, RegisteredFund)
logoUrlstringURL to the target's logo
availableVolumedecimal?Available volume of shares/securities
minimumInvestmentstring?Minimum investment amount
structurestring?Offering structure description
closingDateDateTime?Expected closing date
estimatedValuationobject?Estimated valuation with single, high, and low fields
estimatedValuationTextstring?Estimated valuation as display text
estimatedPricePerShareobject?Estimated price per share with single, high, and low fields
estimatedPricePerShareTextstring?Estimated price per share as display text
researchReportstring?Research report URL/content
createdAtDateTimeCreation 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:

FieldTypeDescription
idGuidUnique ID of the IOI
investorIdGuid?ID of the investor who submitted the IOI
advisorIdGuid?ID of the advisor who submitted the IOI (if applicable)
targetIdGuidID of the target asset
targetAssetTypestringAsset type (e.g., ProspectiveOffering)
numberOfClientsint?Number of clients represented (for aggregated IOIs)
notionalAmountdoubleNotional dollar amount of the IOI
currencystringCurrency (USD)
createdAtDateTimeCreation timestamp
updatedAtDateTime?Last update timestamp
partnerNamestringName of the partner
investorFirstNamestringInvestor's first name
investorLastNamestringInvestor's last name
targetNamestring?Name of the target asset
isActiveboolWhether 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:

FieldTypeDescription
subscriptionIdGuidUnique ID of the subscription
spvIdGuidID of the Pre-IPO Company SPV
investorIdGuidID of the investor
amountOfSharesdecimalNumber of shares
amountOfDollarsdecimalDollar amount
statusstringSubscription status (Pending)
orderReferenceIdstring?Optional external order reference ID
createdAtDateTimeWhen 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:

FieldTypeDescription
idGuidUnique ID of the corporate action
preIPOCompanyIdGuidID of the Pre-IPO company
typestringCorporate action type
statusstringCorporate action status
estimatedDateDateTime?Estimated date of the corporate action
createdAtDateTimeCreation timestamp
updatedAtDateTimeLast update timestamp

FinancialInstitution

Description: Fired when a new financial institution is created. Sent to the partner that owns the financial institution.

Payload:

FieldTypeDescription
idGuidUnique ID of the financial institution
partnerIdGuidID of the owning partner
partnerNamestring?Name of the partner
legalNamestringLegal name of the institution
crdNumberstringCRD number
financialInstitutionTypestringType of financial institution
kycRequiredstringKYC requirements
isDefaultboolWhether this is the default FI for the partner
citystringCity
statestringState code
zipCodestringZip code
countryCodestringCountry code
createdAtDateTimeCreation timestamp
updatedAtDateTimeLast update timestamp
financialInstitutionReferenceIdstring?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:

FieldTypeDescription
financialInstitutionIdGuidID of the updated financial institution
updatedFieldsDictionary<string, object?>Map of changed field names to new values
changeTypestringType 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 TypeDescription
PreIPOCompanyReserved. Intended for Pre-IPO company lifecycle events.
PreIPOCompanyInvestmentReserved. Intended for Pre-IPO company investment events.
InvestorReserved. Intended for investor lifecycle events.
DocumentReserved. Intended for general document events.
InvestorSubscriptionActionReserved. Intended for investor subscription action events.