Model Order Events

Event TypeWhen it is sentPayload
OmnibusModelOrderCreatedAfter a completed model order passes Monark's checks, and it and its linked individual orders are saved and handed to settlement. The model order moves from Processing to Received. Requests refused in an API response do not send itOmnibusModelOrderResponse
OmnibusModelOrderAcceptedWhen downstream processing accepts the aggregate model order. The model order and its linked individual orders move to PendingExecutionOmnibusModelOrderResponse
OmnibusModelOrderRejectedWhen a completed model order fails Monark's checks while it is Processing, or when downstream processing rejects the aggregate model order after it was created. The model order and its linked individual orders move to Rejected. A model order rejected while Processing has no linked individual orders, and rejectedOrderReferenceId names the line that failed, when one line caused itOmnibusModelOrderResponse
OmnibusModelOrderSentWhen the aggregate model order has been sent to the transfer agent. The model order and its linked individual orders move to Executed. Nothing is filled until the transfer agent confirmsOmnibusModelOrderResponse
OmnibusModelOrderCancelledWhen a model order cancellation is accepted. The model order and its linked individual orders move to Cancelled. Also sent when a draft model order is cancelled, by you or at the overnight draft cut-off (statusReasonCode of DraftExpired)OmnibusModelOrderResponse
OmnibusModelOrderCancelRejectedWhen downstream processing rejects a cancellation request that was accepted as Pending. Cancellations refused in the API response do not send itCancelOmnibusModelOrderResponse
OmnibusModelOrderPartiallyFilledRetired and never sent. Fills in the netting queue don't send an event of their own; read them with GET /primary/v1/omnibus/order/{id}—
OmnibusModelOrderSettledWhen the transfer agent confirms the aggregate model order. The confirmed amount is allocated across the linked individual orders pro rata to each line's amount, and every line moves to SettledOmnibusModelOrderResponse
OmnibusModelOrderFailedWhen a completed model order can't be processed (ModelOrderProcessingFailed) or handed to settlement (SettlementPublishFailed), or when downstream settlement or execution processing fails the aggregate model order. The model order and its linked individual orders move to FailedOmnibusModelOrderResponse

Model order events are sent to the platform that submitted the model order and, if different, the platform the third-party custodian is set up under.

OmnibusModelOrderResponse

{
  "eventType": "OmnibusModelOrderSettled",
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "externalId": "string",
    "referenceId": "string",
    "modelId": "string",
    "omnibusFundId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "omnibusShareClassId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "financialInstitutionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "side": "Buy",
    "quantity": null,
    "notionalAmount": 100000.00,
    "filledQuantity": 4000,
    "filledNotionalAmount": 100000.00,
    "remainingQuantity": 0,
    "remainingNotionalAmount": 0,
    "currency": "USD",
    "distributionElection": "Cash",
    "taxLotElection": "FIFO",
    "requestedRouteInstruction": "DirectToTa",
    "routeInstruction": "DirectToTa",
    "submittedAtUtc": "2026-07-14T15:29:49.462Z",
    "acceptedAtUtc": "2026-07-14T15:29:51.017Z",
    "status": "Settled",
    "statusReasonCode": null,
    "rejectedStatusReasonMessage": null,
    "rejectedOrderReferenceId": null,
    "orders": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "referenceId": "string",
        "accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "personId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "externalAccountNumber": "string",
        "financialAdvisorId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "status": "Settled",
        "quantity": null,
        "notionalAmount": 40000.00
      }
    ],
    "receivedOrderCount": 2
  }
}

For buys, filledNotionalAmount and remainingNotionalAmount are net of each line's order fee. Each line's feeAmount and effectiveNotionalAmount are on GET /primary/v1/omnibus/order/{id}.

CancelOmnibusModelOrderResponse (Rejected)

{
  "eventType": "OmnibusModelOrderCancelRejected",
  "data": {
    "cancelRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "modelOrderId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "status": "Rejected",
    "reasonCode": "string",
    "message": "string",
    "createdAtUtc": "2026-07-14T15:29:49.462Z",
    "updatedAtUtc": "2026-07-14T15:29:49.462Z"
  }
}

Notes:

  • Model order webhooks describe the aggregate model order. The payload includes the linked individual orders in data.orders, and the number of lines added to the model order in data.receivedOrderCount. data.orders is empty for a draft and for a model order rejected while Processing.
  • The linked individual orders do not send OmnibusOrder events of their own. Read each line with GET /primary/v1/omnibus/order/{id} for its fills and settlement details.
  • A model order cancellation API response with status Pending does not mean the model order is cancelled. You receive OmnibusModelOrderCancelled only after the cancellation is accepted.