Development Guides

Account Change Workflow

Purpose: The best practice for making key detail changes on an account in Orion is to use the Account Change functionality. While changes to account details can be applied directly to an Account using a PUT call with the Account ID on an appropriate endpoint, Orion’s reporting platform will only track and calculate using these changes in time if they are made using the Account Change process. 

Simple Use Case: User wants to change the model on an account, keeping track of the change date so a report can show performance before and after the model change. Also wants this tracked for composite reporting.

Scope and Outputs: The account change is used to log the change date, the previous value, and then the new value for the following attributes: Inception date of the account, management style, sub-advisor, fee schedule, payout schedule, share class, qualified plan, if the account is managed, model (aggregate), and bill pay method.

Process Overview:

  1. Review lists of account changes as needed.
  2. GET and form the change request body.
  3. Update and POST changes to the account.
  4. Remove or Delete Account Change (Re-applying the previous state).

Process Steps:

  1. Using the Account ID, review a list of current changes applied to the account.

GET /Portfolio/Accounts/{account ID}/Changes

  1. Gather the JSON body needed to complete the change request.

GET /Portfolio/Accounts/{Account ID}/Changes/New

The body will look the same or similar to this:

{
  "accountId": 1009,
  "changes": {},
  "original": {
    "inceptionDate": {
      "useFirstTransactionDate": true,
      "customDate": null
    },
    "managementStyle": {
      "id": 24,
      "name": "Managed Account"
    },
    "feeSchedule": {
      "id": 34,
      "name": "LinearFee"
    },
    "payoutSchedule": {
      "id": 17,
      "name": "Advisor 60%"
    },
    "billPayMethod": {
      "id": 1,
      "name": "Direct from Fund"
    },
    "shareClass": {
      "id": 1,
      "name": "0"
    },
    "managedUnmanaged": {
      "id": 1,
      "name": "True"
    }
  },
  "changeDate": "2021-11-13"
}
  1. Update the JSON body with the changes being made to the account, especially the changeDate for when you want the change to be effective. You may need to look the available options for one or more of the attributes such as managementStyle, feeSchedule, or  Model. You need to include the Account ID, the change date and then ONLY the fields/attributes that you are updating with the change request:

For Example, a Model change would need to include:

{
"accountIds":[1016],
"changes":{
   "modelAggregate":{
      "id":194,"name":"Aggressive Mode"
      }
   },
"changeDate":"08/21/2021"
}
  1. You will then POST this body to /Portfolio/Accounts/Changes/New

POST /Portfolio/Accounts/Changes/New

Example POST:

{
"accountIds":[1016],
"changes":{
   "modelAggregate":{
      "id":194,"name":"Aggressive Mode"
      }
   },
"changeDate":"08/21/2021"
}
  1. Removing an account change does NOT revert the account back to the previous state or details. Before deleting a change, you should repeat step 1 to review/record the previous state of the change so that you can directly apply the attributes to the account. This will also provide the change ID needed to delete the record.

Once ready, simply POST the ID of the change  you want to delete to the following endpoint in brackets.

POST /Portfolio/Accounts/{Account ID}/Changes/Action/Delete

Example POST:

[46]

Process Visualization:

Process Tips or Controls:

  1. Deleting an account change will not revert the attributes of the account to the previous state, it simply removes the record of the change and the date of the impact. You must query from the change history the previous state and apply that to the account in addition to deleting the change record.