GetPositions

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

Name

Type

Description

Mandatory

Available from version

Name

Type

Description

Mandatory

Available from version

BalanceDate

DateTime?

Balance date

Yes



DisplayCurrencyCode

String

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

Yes



AccountDimensionKey 

String

"T" for traded, "S" for settled and "A" for accounting

Yes



Accounts 

Guid[]

Filter by array of accounts, to show holdings.





AccountTypeKeys 

String[]

Filter by array of AccountTypeKeys





AccountNo 

String

Filter by account number 





AccountOwner

Guid?

Filter by account owner





Assets 

Guid[] 

Filter by array of assets (Cash or Instrument)





Asset 

Guid?

Filter by single asset (Cash or Instrument)





AssetTypeKeys

string[]

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





InstrumentTypes 

int[]

Filter by array of instrument types





Response rows (Array)

Name

Type

Description

Available from version

Name

Type

Description

Available from version

Account 

Guid

The account id



Asset 

Guid

The id of the cash or instrument



AssetType

String

Cash 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



BalanceDate

DateTime

Balance date



Amount 

Decimal 

Size of the amount (amount for cash and number of shares of the instrument)



AccountTypeKey

String

Type 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 

DateTime

Time when the position was created



AccountDimensionKey 

String

Account 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



MarketValue

Double 

Market value of the instrument /cash currency. For cash it´s always the same as the amount.



MarketValueAccountCurrency

Double 

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)



MarketValueChange

Double 

Market value change between the previous closing price and the last closing price.



AcquisitionValueDisplayCurrency 

Double 

Acquisition value in display currency



AcquisitionPrice

Double 

AcquisitionPrice



AcquisitionPriceAccountCurrency 

Double 

Acquisition price in the base rate of the account 



AcquisitionPriceDisplayCurrency

Double 

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



ReturnPercentageAccountCurrency

Double 

Return value divided with the acquisition price in the base rate of the account 



ReturnPercentageDisplayCurrency 

Double 

Return value divided with the acquisition price



ReservedAmount 

Decimal

Reserved amount. Amount of current availability reserved. Cash is reserved to buy orders and instrument is reserved to sell orders. 



AvailableAmount 

Decimal

Available amount



Account_AccountNo

string

The account number



DisplayPercentagePrice

Bool

If the price should be displayed in percentage terms

2.02

DisplayMultiplier

Decimal

The multiplier used to multiply the price for display purposes

2.02

ValueMultiplier

Decimal

The multiplier used to multiply the value of the position for valuation purposes

2.02





XML request example
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <GetPositions xmlns="http://tempuri.org/"> <req> <Credentials> <UserName>yourusername</UserName> <Password>yourpassword</Password> </Credentials> <identify>youridentifier</identify> <Args> <BalanceDate>2015-10-23T16:21:59.1659611+02:00</BalanceDate> <DisplayCurrencyCode>SEK</DisplayCurrencyCode> <AccountNo>95708006170</AccountNo> <AccountOwner xsi:nil="true" /> <Asset xsi:nil="true" /> <InstrumentType xsi:nil="true" /> </Args> <Fields> <Account>true</Account> <Asset>true</Asset> <BalanceDate>false</BalanceDate> <Amount>true</Amount> <AcquisitionValue>true</AcquisitionValue> <AcquisitionValueAccountCurrency>true</AcquisitionValueAccountCurrency> <Opened>false</Opened> <AccountDimensionKey>false</AccountDimensionKey> <Price>true</Price> <FxRate>false</FxRate> <BaseRate>false</BaseRate> <DisplayCurrency>false</DisplayCurrency> <MarketValue>true</MarketValue> <MarketValueAccountCurrency>true</MarketValueAccountCurrency> <MarketValueDisplayCurrency>true</MarketValueDisplayCurrency> <PreviousMarketValue>false</PreviousMarketValue> <PreviousMarketValueDisplayCurrency>false</PreviousMarketValueDisplayCurrency> <MarketValueChange>false</MarketValueChange> <AcquisitionValueDisplayCurrency>false</AcquisitionValueDisplayCurrency> <AcquisitionPrice>true</AcquisitionPrice> <AcquisitionPriceAccountCurrency>true</AcquisitionPriceAccountCurrency> <AcquisitionPriceDisplayCurrency>false</AcquisitionPriceDisplayCurrency> <ReturnValue>true</ReturnValue> <ReturnValueAccountCurrency>false</ReturnValueAccountCurrency> <ReturnValueDisplayCurrency>false</ReturnValueDisplayCurrency> <ReturnPercentage>false</ReturnPercentage> <ReturnPercentageAccountCurrency>false</ReturnPercentageAccountCurrency> <ReturnPercentageDisplayCurrency>false</ReturnPercentageDisplayCurrency> <DisplayRate>false</DisplayRate> <ReservedAmount>false</ReservedAmount> <AvailableAmount>false</AvailableAmount> <AssetType>true</AssetType> <Account_AccountNo>true</Account_AccountNo> </Fields> </req> </GetPositions> </s:Body> </s:Envelope>



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}"); }



Terms of License
Change Policy
© 2009 - 2024 Huddlestock Technologies AB All rights reserved