Accounts & Eligibility

Create the client accounts that orders are placed for, label them in your UI, and check each account against a fund's investor eligibility.

Every Omnibus order is placed for an account. The account's id is the accountId you send when you evaluate requirements, submit orders, and read positions, orders, and distributions. Set accounts up once, when a client is onboarded to your platform, and reuse them for every order afterwards.

Endpoints used

MethodEndpointPurpose
POST/primary/v2/personCreate an individual owner
POST/primary/v2/entityCreate an entity owner, such as a trust or LLC
POST/primary/v2/entity/{id}/individualsAdd an individual to an entity
POST/primary/v2/accountCreate an account for its owners
GET/primary/v2/accountList accounts, optionally for one owner (partyId)
GET/primary/v2/account/{id}Retrieve one account
PUT/primary/v2/account/{id}/accreditationRecord the account's accreditation status

How accounts are structured

An account is held at one custodian, identified by its financialInstitutionId, and has owners: exactly one, or two Person owners for a Joint account. Each owner is a party - a Person or an Entity - that is created separately under the same financialInstitutionId and referenced by its partyId. One owner is marked as the primary owner.

FieldDescription
idThe accountId used across the Omnibus endpoints.
financialInstitutionIdThe custodian that holds the account.
externalAccountNumberThe custodian's account number for the client. Stored trimmed and upper-cased, and must be unique for the custodian. Returned on every order placed for the account.
registrationTypeIndividual, Joint, Retirement, or Entity.
registrationSubtypeFurther detail for Joint and Retirement accounts. See the table below.
owners[]Each owner's partyId, type (Person or Entity), and isPrimary flag.
accreditationStatusEmpty until set. Otherwise the basis on which the account is accredited, NOT_APPLICABLE (not accredited), or NOT_SPECIFIED (not collected).
accreditationUpdatedAtWhen the accreditation was last set.
statusActive or Closed.
registrationTypeAccepted registrationSubtype values
IndividualNone
JointJointTenantsWithRightsOfSurvivorship, TenantsInCommon, TenantsByEntirety, CommunityProperty
RetirementTraditionalIRA, RothIRA, RolloverIRA, SEPIRA, SimpleIRA, BeneficiaryIRA, BeneficiaryRothIRA
EntityNone

Create an account

  1. Create each owner with POST /primary/v2/person or POST /primary/v2/entity, using the same financialInstitutionId as the account. Keep the id that is returned - this is the owner's partyId.
  2. For an entity owner, add at least one individual with POST /primary/v2/entity/{id}/individuals.
  3. Create the account with POST /primary/v2/account, listing every owner and marking one as primary. Owners created under a different financialInstitutionId are refused with 400.
POST /primary/v2/account
{
  "financialInstitutionId": "75a1c2e4-0000-4000-8000-000000000001",
  "registrationType": "Joint",
  "registrationSubtype": "JointTenantsWithRightsOfSurvivorship",
  "externalAccountNumber": "8841-2207",
  "owners": [
    { "partyId": "0a4f6c1e-0000-4000-8000-000000000011", "type": "Person", "isPrimary": true },
    { "partyId": "0a4f6c1e-0000-4000-8000-000000000012", "type": "Person", "isPrimary": false }
  ]
}

Important: An account registered to an entity cannot place orders until the entity has at least one active individual associated with it (for a trust, an active trustee). Orders for an account that is not fully set up are refused with 400 and AccountInvalid.

Send the custodian's account number as externalAccountNumber. It is echoed on every order for the account, which lets your operations team reconcile Monark's order records against your own without maintaining a separate ID mapping.

Display accounts

Accounts have no display name of their own. Label an account with the names of its owners, primary owner first, and resolve each name from the owner's partyId:

  • For a Person, call GET /primary/v2/person/{id}.
  • For an Entity, call GET /primary/v2/entity/{id}.
UI elementSourceNotes
Account namePerson.firstName + Person.lastName, or Entity.legalNameOne name per entry in owners[]. Show the owner with isPrimary: true first.
Account numberAccount.externalAccountNumberThe custodian's account number. May be null if you did not supply one.
RegistrationAccount.registrationType, Account.registrationSubtypeFor example, "Joint - JTWROS" or "Retirement - Roth IRA".
StatusAccount.statusHide or disable Closed accounts.

On advisor platforms, list the accounts of an advisor's clients by calling GET /primary/v2/account with the partyId of each client, and cache owner names alongside the account so the picker does not re-resolve them on every page load.

Check eligibility

Each fund declares the investor types it accepts. Read these flags from the fund (see Fund Detail) and compare them with what you know about the account before you offer the fund. Monark does not check these flags when an order is placed, so your platform is responsible for applying them.

Fund fieldWhen true
allInvestorsThe fund is open to all investors, including non-accredited investors.
accreditedInvestorThe fund requires accredited investors.
qualifiedClientInvestorThe fund requires qualified clients.
qualifiedPurchaserInvestorThe fund requires qualified purchasers.
nonUSInvestorInformational only. Non-US investors are not supported on Omnibus, so do not offer funds to non-resident alien or foreign accounts.

Separately from the fund's flags, Monark checks the account's accreditation on every order. Orders are refused with 403 and AccountAccreditationInvalid if the accreditation is missing, was set more than 12 months ago, or is NOT_APPLICABLE. This currently applies to every fund, including funds with allInvestors. Once your platform has established the account's status, record it:

PUT /primary/v2/account/{id}/accreditation
{
  "accreditationStatus": "NET_WORTH_GT_1M"
}

The accepted values are listed in the Update Account Accreditation reference. For a sample self-attestation flow, see the Accreditation guide.

Note: Monark stores the accreditation status that you report and makes it available to the custodian. Apply your firm's own verification policy before you update it. Values that don't fit the account's registration type, such as a joint-only value on an individual account, are refused with 400.

Eligibility flags are a first-pass filter for your catalogue. They do not replace the fund's own disclosures and suitability questions, which Monark evaluates for each account at order time. See Pre-Order Requirements.

Next steps


Did this page help you?