Skip to main content

createBrokerageFirm

Creates a brokerage firm and its first firm admin.

The firm registry is shared across partners and deduplicated on EIN: if a firm with this EIN already exists it is returned rather than duplicated, and no second firm admin is provisioned. Check status to tell the two outcomes apart.

For a limited period ein may be omitted. The firm is then matched on its normalized name instead (see CreateBrokerageFirmInput.ein). A single name match is returned as ALREADY_EXISTED with matchedBy: NAME and nothing attached: none of organizationUlids is assigned, and no firm admin is provisioned. Confirm that it is the right firm, then attach your organizations by calling assignOrganizationsToFirm with its firm.id. A name that matches no firm creates the firm with a placeholder EIN (see BrokerageFirm.einIsPlaceholder).

Request-level failures return BadRequestError, whose code is FIRM_INACTIVE (the EIN or, without an EIN, the name matched an authorized firm that has been deactivated and organizationUlids was non-empty; reactivating the firm is a manual step), NOT_FOUND (the EIN matched a firm outside the caller's current firm-side authority and organizationUlids was non-empty), or BAD_REQUEST for a malformed request. A request without an EIN whose name matches more than one firm is also refused with a BadRequestError whose code is BAD_REQUEST, asking for the EIN; nothing is written. Neither domain code can occur when organizationUlids is absent or empty: that request returns the existing firm as ALREADY_EXISTED, including its inactiveAt state.

createBrokerageFirm(
input: CreateBrokerageFirmInput!
): CreateBrokerageFirmResponse

Arguments​

createBrokerageFirm.input ● CreateBrokerageFirmInput! non-null input​

Type​

CreateBrokerageFirmResponse union​

Union representing possible return types when creating a brokerage firm