Related resources:




Providing you have suitable access control permissions, you can create a side to determine how a movement in a transaction type to which the side is ultimately assigned impacts a holding.

Note the following:

  • LUSID provides a set of built-in sides. It might be worth checking whether one of these is suitable before creating a custom side.
  • You can assign a side to any number of movements in any number of transaction types, providing those transaction types are domiciled in the same scope as the side.
  • Once assigned to movements in live transaction types, you should only modify a side under exceptional circumstances.
  • If you do modify a side, the PUT SetSide* APIs operate differently to the standard PUSH Upsert* model used elsewhere in LUSID. A side is replaced rather than updated, so it's important to specify the entire definition each time. And note the SetSideDefinitions API replaces all sides in a scope.

For examples of creating custom sides, see the following tutorials:

The following methods are available:


  1. Obtain an API access token.
  2. Call the SetSideDefinition API to create a side in a particular scope (see below), or the SetSideDefinitions API to create all your sides in a scope in a single operation, passing in your API token and specifying the following parameters in the URL:
    • side name uniquely identifying the side in its scope.
    • A scope if transaction types to which the side will ultimately be assigned are domiciled in a custom transaction type scope. If you omit this parameter, the side is created in the default scope, and can only be assigned to transaction types domiciled in the default scope.

    More information about transaction type scopes.

  3. In the body of the API request, specify:
    • One of the allowed values for each of the mandatory security, currency, rate, units and amount fields.
    • Optionally for transactions in Future or CFD instruments, one of the allowed values for the notionalAmount field, for example the Transaction/default/NotionalAmount system property.

Consider the following example of a call to the SetSideDefinition API:

curl -X PUT 'https://<your-domain>'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "security": "Txn:SettleCcy",
  "currency": "Txn:SettlementCurrency",
  "rate": "SettledToPortfolioRate",
  "units": "Transaction/MyProperties/Commission",
  "amount": "Transaction/MyProperties/Commission",
  "notionalAmount": "Transaction/default/NotionalAmount"


Using the LUSID web app

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