Related resources:




Providing you have suitable access control permissions, you can create a transaction type to determine the precise economic impact of all the transactions belonging to that type on holdings.

Note the following:

  • LUSID provides a set of built-in transaction types. These are useful to get started, but not intended for a production system. See how to remove them.
  • Once created and referenced by live transactions in portfolios, you should only modify a transaction type under exceptional circumstances.
  • If you do modify a transaction type, the PUT SetTransactionType API operates differently to the standard PUSH Upsert* model used elsewhere in LUSID. A transaction type is replaced rather than updated, so it's important to specify the entire definition each time. And note the SetTransactionTypeSource API replaces all transaction types in a source (see below).

For examples of creating custom transaction types, see the following tutorials:

The following creation methods are available:


  1. Obtain an API access token.
  2. Call the SetTransactionType API to create a transaction type for a particular source (see below)—or the SetTransactionTypeSource API to create all your transaction types for a source in a single operation—passing in your API token and specifying the following in the URL:
    • source grouping the transaction type with others from the same data provider, for example Goldman or Bloomberg. You can choose to group with the built-in transaction types provided with LUSID in the default source if you wish.
    • A type specifying a unique name for the transaction type in the source, for example BuyWithCommission. If the transaction type has only one alias (see below), this is the value of its type field. If the transaction type has more than one, choose the most appropriate type field value.
    • Optionally, a scope domiciling the transaction type in a protected scope. If you omit this parameter, the transaction type is domiciled in the default scope with the built-in transaction types.

    More information on scopes and sources.

  3. In the body of the API request, specify:
    • At least one alias in the aliases collection.
    • At least one movement in the movements collection.
    • Optionally in the properties collection, any number of custom properties to extend the data model of the transaction type. These must be from the TransactionConfiguration domain.
    • Optionally in the properties collection, any of the available system properties to change specific behavior for all transactions belonging to the transaction type.


Using the LUSID web app

  1. Sign in to the LUSID web app.
  2. Navigate to the System Settings > Transaction Types dashboard and make sure the Transaction types tab is open (highlighted in red).
  3. Click the Add transaction type button (highlighted in green) and follow the instructions: