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