How do I create an ABOR configuration module?

Providing you have suitable access control permissions, you can create an ABOR configuration module.

To do this, you must have already created a chart of accounts (CoA) with general ledger accounts, posting modules and (optionally) cleardown modules and general ledger profiles.

Subsequently, you can create an ABOR that references the ABOR configuration module.

Using the LUSID web app

  1. Sign in to the LUSID web app as a user with suitable permissions.

  2. From the top left menu, select Financial Reporting > Mapping.

  3. On the ABOR Configurations dashboard, click the Create abor configuration button and follow the instructions:

     

Using Luminesce

You can use the Lusid.AborConfiguration.Writer provider.

Using the LUSID API

  1. Obtain an API access token.

  2. Call the CreateAborConfiguration 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 (the code must be unique within the scope).

    • Optionally, a displayName and description. Note these are informational fields only.

    • A recipeId that uniquely identifies a recipe able to value the portfolio(s) you intend to create an ABOR for. Note this recipe must not have the allowPartiallySuccessfulEvaluation option set to True.

    • chartOfAccountsId that uniquely identifies a CoA.

    • In the postingModuleCodes collection, the code of at least one posting module belonging to this CoA. Note the order of multiple posting module codes is significant; LUSID evaluates the posting rules they contain in the order specified.

    • Optionally in the cleardownModuleCodes collection, the code of one or more cleardown modules belonging to this CoA. Note the order of multiple cleardown module codes is significant; LUSID evaluates the cleardown rules they contain in the order specified.

    • Optionally in the properties collection, any number of custom properties from the AborConfiguration domain to extend the data model. Alternatively, you can add or remove properties using the UpsertAborConfigurationProperties API at any time.

Consider the following example, of a module with a scope of Abor (in the URL) and a code of Standard (in the body). Note the codes of the posting modules must exist in the CoA, and posting rules in the DailyNAV posting module are evaluated before posting rules in the EoYNAV posting module:

curl -X POST 'https://<your-domain>.lusid.com/api/api/aborconfiguration/Abor'
  -H 'Content-Type: application/json-patch+json' 
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "code": "Standard",
  "description": "Standard ABOR configuration module",
  "displayName": "Standard AborConfig",
  "chartOfAccountsId": {
    "scope": "Abor",
    "code": "Standard"
  },
  "recipeId": {
    "scope": "Recipes",
    "code": "Equities"
  },
  "postingModuleCodes": [
    "DailyNAV", "EoYNAV"
  ],
  "cleardownModuleCodes": [
    "EoY"
  ],
  "properties": {
    "AborConfiguration/Abor/AborAdministrator": {
      "key": "AborConfiguration/Abor/AborAdministrator",
      "value": {
        "labelValue": "Harry Jones"
      },
      "effectiveFrom": "2020-03-05T00:00:00.0000000+00:00"
    }
  }
}'

In the response, LUSID confirms the identifier of the module consists of the scope and code:

{
  "id": {
    "scope": "Abor",
    "code": "Standard"
  },
  "description": "Standard ABOR configuration module",
  "displayName": "Standard AborConfig",
  "recipeId": {
    "scope": "Recipes",
    "code": "Equities"
  },
  "chartOfAccountsId": {
    "scope": "Abor",
    "code": "Standard"
  },
  "postingModuleCodes": [
    "DailyNAV", "EoYNAV"
  ],
  "cleardownModuleCodes": [
    "EoY"
  ],
  "properties": {
    "AborConfiguration/Abor/AborAdministrator": {
      "key": "AborConfiguration/Abor/AborAdministrator",
      "value": {
        "labelValue": "Harry Jones"
      },
      "effectiveFrom": "2020-03-05T00:00:00.0000000+00:00",
      "effectiveUntil": "9999-12-31T23:59:59.9999999+00:00"
    }
  },
  ...
}