GetPositions returns holdings of securities and cash positions on accounts. Each entry (GetPositionResponseRow) in the answer contains identifier for the Account and Asset, ie cash or instrument.

Each field is explained in the definition of GetPositionResponseRow below:

Filter inputs

NameTypeDescriptionMandatoryAvailable from version
BalanceDateDateTime?Balance dateYes


ISO-code for DisplayCurrency. For explanation look at the fields in the table for the response rows.


AccountDimensionKey String"T" for traded, "S" for settled and "A" for accountingYes
Accounts Guid[]Filter by array of accounts, to show holdings.

AccountTypeKeys String[]Filter by array of AccountTypeKeys

AccountNo StringFilter by account number 

AccountOwnerGuid?Filter by array of account owner

Assets Guid[] Filter by array of assets (Cash or Instrument)

Asset Guid?Filter by single asset (Cash or Instrument)

AssetTypeKeysstring[]Filter by array of asset type keys (Cash or GenericInstrument)

InstrumentTypes int[]Filter by array of instrument types

Response rows (Array)

NameTypeDescriptionAvailable from version
Account GuidThe account id
Asset GuidThe id of the cash or instrument
AssetTypeStringCash means currency assets like SEK, EUR etc. while GenericInstrument means securities like Stocks, Bonds etc. The type of asset can then be found by sending the Asset GUID as the AssetID to GetInstruments
BalanceDateDateTimeBalance date
Amount Decimal Size of the amount (amount for cash and number of shares of the instrument)
AccountTypeKeyStringType of account, i.e. "HoldingAccount".
AcquisitionValue Double Acquisition value of the position, in the instruments currency.
AcquisitionValueAccountCurrency Double Acquisition value of the account currency.
Opened DateTimeTime when the position was created
AccountDimensionKey StringAccount dimension, "T"=trade balance, "S" = settle balance, "A"=booked balance
Price Double 

Price of the asset. Cash is always 1.0. If 'BalanceDate' is todays date will current price be used (yesterday's closing price) or else the closing price for 'BalanceDate' or if the price is missing from BalanceDate, previous closing price.

FxRate Double The exchange rate of the instrument/cash
BaseRate Double The exchange rate of the accounts base rate.
DisplayCurrencyCode String Display currency
DisplayRate Double Exchange rate for the base rate
MarketValueDouble Market value of the instrument /cash currency. For cash it´s always the same as the amount.
MarketValueAccountCurrencyDouble Market value in the account currency
MarketValueDisplayCurrency Double Market value in the display currency
PreviousMarketValue Double Value of the position of the previous closing price.
PreviousMarketValueDisplayCurrency Double Value of the position of the previous closing price (display currency)
MarketValueChangeDouble Market value change between the previous closing price and the last closing price.
AcquisitionValueDisplayCurrency Double Acquisition value in display currency
AcquisitionPriceDouble AcquisitionPrice
AcquisitionPriceAccountCurrency Double Acquisition price in the base rate of the account 
AcquisitionPriceDisplayCurrencyDouble Acquisition price in the base rate
ReturnValue Double Return Value, acquisition price
ReturnValueAccountCurrency Double Return value in the base rate of the account 
ReturnValueDisplayCurrency Double Return value in the display currancy.
ReturnPercentage Double Return value divided with the acquisition price
ReturnPercentageAccountCurrencyDouble Return value divided with the acquisition price in the base rate of the account 
ReturnPercentageDisplayCurrency Double Return value divided with the acquisition price
ReservedAmount DecimalReserved amount. Amount of current availability reserved. Cash is reserved to buy orders and instrument is reserved to sell orders. 
AvailableAmount DecimalAvailable amount
Account_AccountNostringThe account number
DisplayPercentagePriceBoolIf the price should be displayed in percentage terms2.02
DisplayMultiplierDecimalThe multiplier used to multiply the price for display purposes2.02
ValueMultiplierDecimalThe multiplier used to multiply the value of the position for valuation purposes2.02
XML request example
<s:Envelope xmlns:s="">
  <s:Body xmlns:xsi="" xmlns:xsd="">
    <GetPositions xmlns="">
          <AccountOwner xsi:nil="true" />
          <Asset xsi:nil="true" />
          <InstrumentType xsi:nil="true" />
C# - Get positions for a specific account
            var credentials = new Credentials
                UserName = "UserName",
                Password = "Password"

            var getPositionsRequest = new GetPositionRequest
                Credentials = credentials,
                identify = "uniqueIdentifierForYourBfsInstance",
                Args = new GetPositionArgs
                    DisplayCurrencyCode = "SEK",
                    AccountDimensionKey = "T",
                    BalanceDate = DateTime.Now,
                    AccountOwner = Guid.Parse("79b7b7a1-eb5f-45b1-9246-bf7b459b544f")
                Fields = new GetPositionFields
                    Account = true,
                    BalanceDate = true,
                    Asset = true,
                    AssetType = true,
                    Amount = true,
                    AcquisitionValue = true,
                    AcquisitionValueAccountCurrency = true,
                    Price = true

            var response = client.GetPositions(getPositionsRequest);

            foreach (var position in response.Result)
                Console.WriteLine($"AccountId: {position.Account}");
                Console.WriteLine($"BalanceDate: {position.BalanceDate}");
                Console.WriteLine($"Asset: {position.Asset}");
                Console.WriteLine($"AssetType: {position.AssetType}");
                Console.WriteLine($"Amount: {position.Amount}");
                Console.WriteLine($"AcquisitionValue : {position.AcquisitionValue}");
                Console.WriteLine($"AcquisitionValueAccountCurrency : {position.AcquisitionValueAccountCurrency}");
                Console.WriteLine($"Price: {position.Price}");