Holding

Overview

Once the consumer adds an investment account in your application, your application can display the holding details of the accounts added. This section provides instructions on how to achieve the same.

Prerequisites

  • The consumer should have aggregated at least one investment account.
  • The aggregated accounts must have been refreshed.

Step 1: Get the UserContext

Obtain a valid UserContext. For information on getting a UserContext, see the Authentication Service section.

Step 2: Fetch Holdings Information

Use the getItemSummaries API to fetch the investment account details. The API requires two input parameters:

  • UserContext – use the UserContext obtained in Step 1.
  • SummaryRequest – Create an object and set the container criteria as INVESTMENT (as shown in the code snippet below).

The API returns a list of ItemSummary objects. The ItemSummary will contain an account list and each account in the list will contain the InvestmentData object. The InvestmentData object will contain the HoldingList object which contains the holding data such as the Holding Symbol, Quantity, Description, and so on. 

Code Snippet

SummaryRequest sr = new SummaryRequest();
List list = new List();
list.setElements(new String[] {ContainerTypesHelper.INVESTMENT });
sr.setContainerCriteria(list);
Object[] itemSummaries = null;
List itemSummariesList = null;
try {
    itemSummariesList = dataService.getItemSummaries1(userContext, sr);
    if (itemSummariesList != null){
        itemSummaries = itemSummariesList.getElements();
    }
} catch (StaleConversationCredentialsExceptionFault e) {
                                    e.printStackTrace();
                        } catch (InvalidConversationCredentialsExceptionFault e) {
                                    e.printStackTrace();
                        } catch (CoreExceptionFault e) {
                                    e.printStackTrace();
                        } catch (IllegalArgumentTypeExceptionFault e) {
                                    e.printStackTrace();
                        } catch (IllegalArgumentValueExceptionFault e) {
                                    e.printStackTrace();
                        } catch (InvalidUserContextExceptionFault e) {
                                    e.printStackTrace();
                        } catch (IllegalDataExtentExceptionFault e) {
                                    e.printStackTrace();
                        } catch (RemoteException e) {
                                    e.printStackTrace();
}
for (int i = 0; i < itemSummaries.length; i++) {
     ItemSummary is = (ItemSummary) itemSummaries[i];
      DisplayItemInfo displayItemInfo = new DisplayItemInfo ();
      displayItemInfo.displayItemSummaryInfo (is);
      ItemData id = is.getItemData();
            List accountsList = null;
      accountsList = id.getAccounts();;
      Object[] accounts = null;
      if (accountsList != null){
            accounts = accountsList.getElements();
      }
      for (int accts = 0; accts < accounts.length; accts++) {
                        InvestmentData investment = (InvestmentData) accounts[accts];
System.out.println("\tAccount Name: "+ investment.getAccountName() );
System.out.println("\tAccount Number: "+ investment.getAccountNumber() );
System.out.println("\tAccount Holder: "+ investment.getAccountHolder() );
System.out.println("\tAccount Type: "+
investment.getAcctType() );
System.out.println("\tCash: "+ Formatter.formatMoney(investment.getCash()) );
System.out.println("\tTotal Balance: "+ Formatter.formatMoney(investment.getTotalBalance()) );
System.out.println("\tTotal Vested Balance: "+ Formatter.formatMoney(investment.getTotalVestedBalance()) );
System.out.println("\tTotal Unvested Balance: "+ Formatter.formatMoney(investment.getTotalUnvestedBalance()) );
System.out.println("\tMargin Balance: "+ Formatter.formatMoney(investment.getMarginBalance()) );
           List holdingsList = investment.getHoldings();
            Object[] holdings = null;
            if (holdingsList != null){
                        holdings = holdingsList.getElements();
            }
            if(holdings == null || holdings.length == 0 ){
                        System.out.println("\t\tNo HoldingData");
            }else {
                        System.out.println("\t\t**HoldingData**");
                  for (int hol = 0; hol < holdings.length; hol++) {
                                                HoldingData holding = (HoldingData) holdings[hol];
System.out.println("\t\tHoldingData Symbol: " + holding.getSymbol() );
System.out.println("\t\tHoldingData Quantity: " + holding.getQuantity() );
System.out.println("\t\tHoldingData Vested Quantity: " + holding.getVestedQuantity() );
System.out.println("\t\tHoldingData Unvested Quantity: " + holding.getUnvestedQuantity() );
System.out.println("\t\tHoldingData Value: " + Formatter.formatMoney(holding.getValue()) );
System.out.println("\t\tHoldingData Vested Value: " + Formatter.formatMoney(holding.getVestedValue()) );
System.out.println("\t\tHoldingData Unvested Value: " + Formatter.formatMoney(holding.getUnvestedValue()) );
System.out.println("\t\tHoldingData Description: " + holding.getDescription() );
System.out.println("\t\tHoldingData Price: " + Formatter.formatMoney(holding.getPrice()) );
System.out.println("\t\tHoldingData Link: " + holding.getLink() );
System.out.println("\t\tHoldingData HoldingType: " + holding.getHoldingType() );
System.out.println("\t\tHoldingData HoldingTypeId: " + holding.getHoldingTypeId() );
System.out.println("\t\tHoldingData Percentage Allocaton: " + holding.getPercentAllocation() );
System.out.println("\t\tHoldingData Percantage Change: " + holding.getPercentageChange() );
System.out.println("\t\tHoldingData Employee Contribution: " + Formatter.formatMoney(holding.getEmployeeContribution()) );
System.out.println("\t\tHoldingData Employeer Contribution: " + Formatter.formatMoney(holding.getEmployerContribution()) );
System.out.println("\t\tHoldingData Cusip Number: " + holding.getCusipNumber() );
System.out.println("\t\tHoldingData Daily Change: " + Formatter.formatMoney(holding.getDailyChange()) );
System.out.println("\t\tHoldingData Cost Basis: " + Formatter.formatMoney(holding.getCostBasis()) );
                                    }
                        }
}
}