This article outlines how to sleeve and un-sleeve accounts using the following API endpoint:
[POST] https://api.orionadvisor.com/api/v1/Trading/Sleeve/Registrations/Action/Process
Utilizing this API allows users to:
- Sleeve newly created accounts, and
- Un-sleeve existing accounts
- Update existing sleeved accounts
Creating New Sleeved Accounts
When creating new sleeves, ensure the following key data points are included in the request payload:
- New account IDs must be set to 0
- This tells the system these are new sleeved accounts needing to be set up
- Existing Custodial sleeve should use the existing account ID
- (Only new sleeves should use ID =0)
- Sum of Target Allocations within the JSON equal to 100% between all normal sleeved accounts
- Exclude custodial/contribution/distribution sleeves
- Valid Registration ID must be set and isActive must be true
Example JSON:
{
"accountSleeves": [{
"accountId": 12345,
"targetAllocation": 0,
"contributionAllocation": 0,
"distributionAllocation": 0,
"corporateActionAllocation": 0,
"toleranceUpper": 0,
"toleranceLower": 0,
"sleeveType": "Custodial account",
"subAdvisorId": null,
"modelAggId": null,
"managementStyleId": null,
"targetBalanceType": "Percent",
"doNotTrade": false
}, {
"accountId": 0,
"targetAllocation": 20,
"contributionAllocation": 20,
"distributionAllocation": 20,
"corporateActionAllocation": 0,
"toleranceUpper": 0,
"toleranceLower": 0,
"sleeveType": "Normal sleeve",
"subAdvisorId": null,
"modelAggId": 1290,
"managementStyleId": null,
"targetBalanceType": "Percent",
"doNotTrade": false
}, {
"accountId": 0,
"targetAllocation": 80,
"contributionAllocation": 80,
"distributionAllocation": 80,
"corporateActionAllocation": 0,
"toleranceUpper": 0,
"toleranceLower": 0,
"sleeveType": "Normal sleeve",
"subAdvisorId": null,
"modelAggId": 1291,
"managementStyleId": null,
"targetBalanceType": "Percent",
"doNotTrade": false
}
],
"registrationId": 54321,
"sleeveStrategyAggId": null,
"sleeveStrategyId": null,
"isActive": true,
"isDoNotTrade": false,
"custodialAccountNumber": "SLVTEST303",
"contributionAllocationMethod": "Sleeve Target",
"distributionAllocationMethod": "Sleeve Target",
"corporateActionAllocationMethod": "Assigned",
"autoRebalFrequency": "None",
"autoRebalMonth": 0,
"autoRebalDay": 0
}
For users attempting to delete existing sleeves, a few key data points must be set within the payload being sent.
- Must include only the Custodial/Contribution/Distribution sleeves in JSON
- Not including the normal sleeved accounts will tell the system you intend to un-sleeve account
- Account IDs for each must be added
- Set the registration to IsActive = False
- Target Allocations on Custodial/Contribution/Distribution sleeves set to 0
Example JSON:
{
"AccountSleeves": [
{
"AccountId": 12345,
"TargetAllocation": 0,
"ContributionAllocation": 0,
"DistributionAllocation": 0,
"CorporateActionAllocation": 0,
"ToleranceUpper": 0,
"ToleranceLower": 0,
"SleeveType": "Custodial account",
"SubAdvisorId": null,
"ModelAggId": null,
"ManagementStyleId": 133,
"TargetBalanceType": "Percent",
"DoNotTrade": false
},
{
"AccountId": 2222,
"TargetAllocation": 0,
"ContributionAllocation": 0,
"DistributionAllocation": 0,
"CorporateActionAllocation": 0,
"ToleranceUpper": 0,
"ToleranceLower": 0,
"SleeveType": "Contribution sleeve",
"SubAdvisorId": null,
"ModelAggId": null,
"ManagementStyleId": null,
"TargetBalanceType": "Percent",
"DoNotTrade": false
},
{
"AccountId": 1111,
"TargetAllocation": 0,
"ContributionAllocation": 0,
"DistributionAllocation": 0,
"CorporateActionAllocation": 0,
"ToleranceUpper": 0,
"ToleranceLower": 0,
"SleeveType": "Distribution sleeve",
"SubAdvisorId": null,
"ModelAggId": null,
"ManagementStyleId": null,
"TargetBalanceType": "Percent",
"DoNotTrade": false
}
],
"RegistrationId": 54321,
"SleeveStrategyAggId": null,
"SleeveStrategyId": null,
"IsActive": false,
"IsDoNotTrade": false,
"CustodialAccountNumber": "SLVTEST303",
"ContributionAllocationMethod": "Most Out Of Balance",
"DistributionAllocationMethod": "Most Out Of Balance",
"CorporateActionAllocationMethod": "Sleeve Current Percent",
"AutoRebalFrequency": "None",
"AutoRebalMonth": 1,
"AutoRebalDay": 1
}