Related resources:



How-to guides

When you create an instrument in LUSID, you must specify at least one identifier. See a list of available identifiers.

Each identifier maps the instrument to a particular security identification scheme, whether this is to an open standard such as FIGI or PermID, an industry scheme such as ISIN, CUSIP or SEDOL, or to your own internal security database. When data is loaded into LUSID from different sources—each likely referencing the same financial asset using a different identifier—it can be automatically resolved to the same, correct instrument, thereby guaranteeing a consistent economic impact but without transforming ingested data in any way, so it remains meaningful to the originating system.

Identifiers are classed as either unique or non-unique within an instrument scope. You must specify at least one unique identifier for an instrument. In addition, LUSID automatically generates a LUSID Unique ID (or LUID), an internal identifier that is guaranteed to be unique and never change. You can specify as many other identifiers of either class as you like; the more you add, the more successful LUSID will be at consolidating data from different systems.

For example, imagine you are creating a instrument to model a simple equity such as BP PLC $0.25 shares traded in London. You could assign the following identifiers to the instrument:

  • A FIGI of BBG000C05BD1
  • A SEDOL of 0798059
  • An ISIN of GB0007980591
  • A ClientInternal of bp-plc-ldn (this represents your internal security database for demonstration purposes)

When transactional or other data items identifying BP PLC $0.25 shares using any of the above values are loaded into LUSID, they can be automatically resolved to the correct instrument. 

Note: If LUSID cannot resolve a data item, it is mapped to the unknown instrument. This prevents the data load operation failing, but you should take steps to manually resolve unknown instruments.

You can call the LUSID UpsertInstruments API to create an instrument with a set of identifiers, for example:

curl -X POST "https://<your-domain>"
   -H "Authorization: Bearer <your-API-access-token>"
   -H "Content-Type: application/json"
   -d '{"upsert-request-1": {
    "name": "BP $0.25 LDN",
    "identifiers": {
      "Figi": {"value": "BBG000C05BD1"},
      "Sedol": {"value": "0798059"}
      "Isin": {"value": "GB0007980591"},
      "ClientInternal": {"value": "bp-plc-ldn"}

    "definition": {
      "instrumentType": "Equity",
      "domCcy": "GBP",

Note the response reveals the automatically-generated LUID:

    "values": {
        "upsert-request-1": {
            "href": "",
            "lusidInstrumentId": "LUID_00003D5C",
            "version": {
                "effectiveFrom": "0001-01-01T00:00:00.0000000+00:00",
                "asAtDate": "2021-11-23T10:14:07.7454320+00:00"
            "name": "BP $0.25 LDN",
            "identifiers": {
                "Figi": "BBG000C05BD1",
                "ClientInternal": "bp-plc-ldn",
                "LusidInstrumentId": "LUID_00003D5C",
                "Sedol": "0798059",
                "Isin": "GB0007980591"

You can address an instrument in subsequent API calls using any of its identifiers. For the BP PLC $0.25 instrument, this would be:

Identifier type (case-sensitive) Example identifier value 3-stage key (case-sensitive) Unique?
LusidInstrumentId LUID_00003D5C Instrument/default/LusidInstrumentId YES
ClientInternal bp-plc-ldn Instrument/default/ClientInternal YES
Figi BBG000C05BD1 Instrument/default/Figi YES
Sedol 0798059 Instrument/default/Sedol NO
Isin GB0007980591 Instrument/default/Isin NO

Note the following:

  • As mentioned above, identifiers are classed as either unique or non-unique within a particular scope. You cannot assign a unique identifier to more than one instrument in that scope; conversely, a non-unique identifier can match more than one instrument in a scope. You must specify at least one unique (market) identifier for an instrument (that is, in addition to the automatically-generated LUID).
  • An identifier is given a 3-stage key (like properties), where the first stage is the scope (Instrument), the second is the code (default, which means internal to LUSID), and the third is the instrument name. You use this key to address the instrument in several places, notably when upserting transactions.
  • In the real world, it's possible for certain identifiers to change or be recycled. If this happens, you can delete an identifier from one instrument and add it to another.