Providing you have suitable access control permissions, you can create a fund configuration module that identifies general ledger accounts in the underlying ABOR responsible for recording activity such as dealing (subscriptions and redemptions) and P&L.
Once created, you can create a fund that references the fund configuration module.
Using the LUSID web app
Coming soon.
Using Luminesce
You can use the Lusid.FundConfiguration.Writer
provider. More information.
Using the LUSID API
Call the CreateFundConfiguration API, specifying a scope in the URL and, in the body of the request:
A
code
that, together with the scope, uniquely identifies the module in LUSID.A
displayName
and, optionally, adescription
.In the
dealingFilters
collection, a set of rules identifying dealing accounts in the underlying ABOR. Each rule must consist of:A
filterId
that uniquely identifies the rule in the set.A
filter
expression. Syntax and allowed values.
In the
pnlFilters
collection, a set of rules identifying P&L account(s) in the underlying ABOR in the same way as above.Optionally in the
properties
collection, any number of custom properties from theFundConfiguration
domain to extend the data model. Alternatively, you can add or remove properties independently using the UpsertFundConfigurationProperties API.
Note: Set
backOutFilters
to an empty collection for now.
Consider the following request, of a fund configuration module with a scope of MyFunds
(in the URL) and a code of StandardFundConfig
(in the body):
curl -X POST 'https://<your-domain>.lusid.com/api/api/fundconfigurations/MyFunds'
-H 'Content-Type: application/json-patch+json'
-H 'Authorization: Bearer <your-API-access-token>'
-d '{
"code": "StandardConfigModule",
"displayName": "Standard Fund Configuration",
"dealingFilters": [
{
"filterId": "SUBS",
"filter": "generalLedgerAccountCode eq '3-Subscriptions'"
},
{
"filterId": "REDS",
"filter": "generalLedgerAccountCode eq '4-Redemptions'"
}
],
"pnlFilters": [
{
"filterId": "PnL",
"filter": "generalLedgerAccountCode eq '5-PnL'"
}
],
"backOutFilters": []
}'
Providing the request is successful, the response confirms the unique ID of the entity consists of its scope and code:
{
"id": {
"scope": "MyFunds",
"code": "StandardConfigModule"
},
"displayName": "Standard Fund Configuration Module",
...
}
Syntax and allowed values
The syntax of a filter
expression is:
<attribute> <operator> <value>
...where:
<attribute>
and<value>
are explained in the table below.<operator>
is one of the LUSID filter operators.
Note the following:
A
filter
expression is case-insensitive.A string
<value>
must be enclosed in single straight quote marks (the%27
UTF-8 encoding).You can concatenate expressions using the
and
andor
operators. If you use both, standard boolean operator precedence applies.
| Data type | Example expression | Explanation/origin of |
An account field | System-defined |
| This can be any of the stored fields for an account, prefixed by |
An account property | User-defined |
| This can be any property with a 3-stage key in the |
An ABOR property | User-defined |
| This can be any property with a 3-stage key in the |