---
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)

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)
    - 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://<your-domain>.lusid.com/api/api/instruments?scope=MyShareClassCustomInstrumentScope'
  -H 'Content-Type: application/json-patch+json' \
  -H 'Authorization: Bearer <your-API-access-token>' \
  -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": {},
  ...
}
```
