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 PUSHUpsert*
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 theSetSideDefinitions
API replaces all sides in a scope.
For examples of creating custom sides, see the following tutorials:
- Reducing the cash balance by the cost of broker commission
- Breaking out broker commission as a separate cost holding
The following methods are available:
- Method 1: Using the LUSID REST API
- Method 2: Using the LUSID web app
Using the LUSID REST API
- Obtain an API access token.
- 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:
- A
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 thedefault
scope, and can only be assigned to transaction types domiciled in thedefault
scope.
- A
- In the body of the API request, specify:
- One of the allowed values for each of the mandatory
security
,currency
,rate
,units
andamount
fields. - Optionally for transactions in Future or CFD instruments, one of the allowed values for the
notionalAmount
field, for example theTransaction/default/NotionalAmount
system property.
- One of the allowed values for each of the mandatory
Consider the following example of a call to the SetSideDefinition
API:
curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/sides/BuyWithCommission?scope=Ibor' -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
- Sign in to the LUSID web app.
- Navigate to the System Settings > Transaction Types dashboard and open the Sides tab (highlighted in red).
- Click the Add side button (highlighted in green) and follow the instructions: