--- title: "How do I create a fund share class as an instrument?" slug: "how-do-i-create-a-fund-share-class-as-an-instrument" updated: 2026-02-03T09:43:46Z published: 2026-02-03T09:43:46Z canonical: "support.lusid.com/how-do-i-create-a-fund-share-class-as-an-instrument" --- > ## Documentation Index > Fetch the complete documentation index at: https://support.lusid.com/llms.txt > Use this file to discover all available pages before exploring further. # How do I create a fund share class as an instrument? If your fund has share classes, you must create each share class as an instrument of type `FundShareClass` in the LUSID Security Master. You should then [add these share class to a fund](/v1/docs/how-do-i-create-a-fund) in order to ringfence particular investors. You can add as many more share classes as you like, each mastered as a separate instrument with a distinct short code. ## Using the LUSID web app 1. Sign in to the [LUSID web app](https://www.lusid.com/app) as a user with suitable permissions. 2. From the top left menu, select **Data Management > Instruments**. 3. Click the **Create instrument** button and follow the instructions: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(460).png?sv=2026-02-06&spr=https&st=2026-11-04T01%3A47%3A16Z&se=2026-11-04T02%3A47%3A16Z&sr=c&sp=r&sig=jqEMPChsrR3601Q%2B%2B5oN6Jfzrxv0dYzGN40D2VygMQg%3D) Note the following: - The instrument type must be **FundShareClass**. - You can optionally domicile the share class in a [custom instrument scope](/v1/docs/understanding-instrument-scopes), which is created if it does not exist in the list. Alternatively, you can domicile the share class in the **default** scope with other instruments such as currencies. - You must add at least one [unique identifier](/v1/docs/what-are-unique-and-non-unique-identifiers) and a suitable value, in this case **ClientInternal**. - The short code can be any unique string used to identify the share class when you load transactions into LUSID that are [specific to that class](/v1/docs/preparing-a-fund-for-launch#assigning-particular-transactions-to-share-classes), such as subscriptions and redemptions. - You can add as many [custom properties](/v1/docs/properties) as you like to extend the information recorded about the share class. ## Using Luminesce You can use the `Lusid.Instrument.FundShareClass.Writer` provider. [More information](/v1/docs/lusidinstrumenttypewriter-providers). ## Using the LUSID API 1. [Obtain an API access token](/v1/docs/how-do-i-obtain-and-use-a-short-lived-api-access-token-from-okta). 2. Call the [UpsertInstruments](https://www.lusid.com/docs/api#operation/UpsertInstruments) API, optionally specifying an [instrument scope](/v1/docs/understanding-instrument-scopes) in the URL and, in the body of the request: - An ephemeral ID, to track errors in the response. - An intuitive `name`. - In the `identifiers` object, at least one [unique identifier](/v1/docs/what-are-unique-and-non-unique-identifiers) such as `Figi` or `ClientInternal` with an appropriate `value`. - A suitable economic `definition`: For more information on the fields in the economic definition, select **FundShareClass** from the **definition** dropdown in the [API reference](https://www.lusid.com/docs/api/lusid/endpoints/instruments/UpsertInstruments): ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(114).png?sv=2026-02-06&spr=https&st=2026-11-04T01%3A47%3A16Z&se=2026-11-04T02%3A47%3A16Z&sr=c&sp=r&sig=jqEMPChsrR3601Q%2B%2B5oN6Jfzrxv0dYzGN40D2VygMQg%3D) - The `instrumentType` must be `FundShareClass`. - The `shortCode` can be any intuitive name. - The `fundShareClassType` can be either `Income` or `Accumulation`. - The `distributionPaymentType` can be either `Gross` or `Net`. - The `hedging` currency treatment can be either `None` or `ApplyHedging`. - The `domCcy` can be any [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217). Consider the following example, of an upsert request with a suitable ephemeral ID for a share class instrument domiciled in the `MyShareClassCustomInstrumentScope` (in the URL). Note this scope is created if it does not exist. If you omit the scope query parameter, the instrument is domiciled in the `default` (system) scope: ```json curl -X POST 'https://.lusid.com/api/api/instruments?scope=MyShareClassCustomInstrumentScope'   -H 'Content-Type: application/json-patch+json' \   -H 'Authorization: Bearer ' \   -d '{   "my-ephemeral-id-1": {     "name": "ShareClassA",     "identifiers": {       "ClientInternal": {"value": "ShareClassA-Id"}     },     "definition": {       "instrumentType": "FundShareClass",       "shortCode": "Share class A",       "fundShareClassType": "Income",       "distributionPaymentType": "Net",       "domCcy": "GBP",       "hedging": "None"     }   } }' ``` Providing the request is successful, LUSID reveals the [LUID](/v1/docs/what-is-a-lusid-instrument-id-or-luid) of the mastered instrument: ```json {   "values": {     "my-ephemeral-id-1": {       "scope": "MyShareClassCustomInstrumentScope",       "lusidInstrumentId": "LUID_00003DTJ",       "name": "ShareClassA",       "identifiers": {         "ClientInternal": "ShareClassA-Id",         "LusidInstrumentId": "LUID_00003DTJ"       },       "properties": [],       "instrumentDefinition": {         "shortCode": "Share class A",         "fundShareClassType": "Income",         "distributionPaymentType": "Net",         "hedging": "None",         "domCcy": "GBP",         "instrumentType": "FundShareClass"       },       "state": "Active",       "assetClass": "Equities",       "domCcy": "GBP",       "relationships": []     }   },   "failed": {},  ... } ```