openapi: 3.0.1
info:
title: Services.AutoTrading Account Values Accounts API
description: 'The AutoTrading service group provides endpoints for interacting with Saxo Bank''s SaxoSelect offering.Through these interfaces a client application can get Saxo Select trade leaders, portfolios and investments. Portfolio investments can be created and modifed.
Note: This service is subject to special licensing agreements and not generally available to all OpenAPI applications.
'
version: 2.4.138+710c760591
x-framework-version: 38.0.2+439c5b0ec3
x-machine: SIMOAWEB11-DK2
servers:
- url: https://gateway.saxobank.com/sim/openapi
tags:
- name: Accounts
description: Provide services to get account template and create account.
paths:
/cm/v2/accounts:
post:
tags:
- Accounts
summary: Create account
description: Create an additional account for an existing client
operationId: AccountsV2CreateAccount
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Models.CreateAccount'
example:
ChoiceOfAccount: '65'
ClientKey: BxS0VWLta8lJ3SBpjGBQjw==
responses:
'201':
description: Account successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/Models.AccountDetails'
example:
AccountId: '2147279960'
AccountKey: BxS0VWLta8lJ3SBpjGBQjw==
'500':
description: Internal Server Error
'400':
description: Bad Request
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- DocumentVerificationError
type: string
example: None
x-enum-descriptions:
DocumentVerificationError: Document verification error
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'404':
description: Not Found
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- AccountTemplateNotFound
type: string
example: None
x-enum-descriptions:
AccountTemplateNotFound: Account template not found
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
confidential: Write
/port/v1/accounts/subscriptions/{ContextId}/{ReferenceId}:
delete:
tags:
- Accounts
summary: Remove subscription
description: Removes subscription for the current session identified by subscription id.
operationId: AccountsV1DeleteSubscription
parameters:
- name: ContextId
in: path
description: Unique streaming context ID part of the streaming session
required: true
schema:
type: string
example: '29931122'
- name: ReferenceId
in: path
description: Unique reference ID of the subscription.
required: true
schema:
type: string
example: A74231
responses:
'204':
description: No Content
'202':
description: Subscription delete request will be processed eventually.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Subscribe
community: Subscribe
/port/v1/accounts/subscriptions/{ContextId}:
delete:
tags:
- Accounts
summary: Remove subscriptions by tag
description: Removes all subscriptions for the current session on this resource marked with a specific tag, and frees all resources on the server.
operationId: AccountsV1DeleteSubscriptions
parameters:
- name: ContextId
in: path
description: Unique streaming context ID part of the streaming session.
required: true
schema:
type: string
example: '29931122'
- name: Tag
in: query
description: Tag that subscriptions are marked with
schema:
type: string
example: CORE
responses:
'204':
description: No Content
'202':
description: Subscription delete request will be processed eventually.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Subscribe
community: Subscribe
/port/v1/accounts/subscriptions:
post:
tags:
- Accounts
summary: Subscribe to accounts
description: Creates a subscription on a list accounts, makes it active and returns an initial snapshot containing a list of accounts as specified by the parameters in the request.
operationId: AccountsV1AddActiveSubscription
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsSubscriptionRequest'
example:
Arguments:
AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
AccountKey: LZTc7DdejXODf-WSl2aCyQ==
ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
ContextId: '20221030064905067'
Format: application/json
ReferenceId: A21312
RefreshRate: 500
Tag: MyAccountRelatedSubscriptions
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsSubscriptionResponse'
example:
ContextId: '20221030064905073'
Format: application/json
InactivityTimeout: 1500
ReferenceId: A70755
RefreshRate: 500
Snapshot:
Data:
- AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
AccountId: 192134INET
AccountKey: LZTc7DdejXODf-WSl2aCyQ==
AccountType: Normal
Active: true
CanUseCashPositionsAsMarginCollateral: false
CfdBorrowingCostsActive: false
ClientId: '654321'
ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
CreationDate: '2017-01-01T13:00:00Z'
Currency: EUR
CurrencyDecimals: 2
DirectMarketAccess: false
FractionalOrderEnabled: false
IndividualMargining: false
IsCurrencyConversionAtSettlementTime: false
IsMarginTradingAllowed: true
IsShareable: true
IsTrialAccount: false
LegalAssetTypes:
- FxSpot
- Stock
- ContractFutures
ManagementType: Client
MarginCalculationMethod: Default
MarginLendingEnabled: None
PortfolioBasedMarginEnabled: false
Sharing:
- TradingFloor
SupportsAccountValueProtectionLimit: false
UseCashPositionsAsMarginCollateral: false
State: Active
Tag: MyAccountRelatedSubscriptions
'400':
description: Bad Request
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- InvalidClientId
- InvalidInput
- InvalidModelState
- UnsupportedSubscriptionFormat
type: string
example: None
x-enum-descriptions:
InvalidModelState: Error code returned when model state is invalid.
UnsupportedSubscriptionFormat: Error code returned when a subscription format that isn't supported by the publisher is requested.
InvalidClientId: Indicates that the requested client id was invalid.
InvalidInput: An error was encountered when processing given input parameters.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'409':
description: Conflict
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- SubscriptionLimitExceeded
type: string
example: None
x-enum-descriptions:
SubscriptionLimitExceeded: Error code returned when more than the maximum allowed number of subscriptions for a specified type, is exceeded.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Subscribe
community: Subscribe
x-streaming-type:
$ref: '#/components/schemas/AccountResponseArray'
/port/v1/accounts/{AccountKey}/reset:
put:
tags:
- Accounts
summary: Reset trial account
description: Resets a trial account. Cannot be used in live environment.
operationId: AccountsV1ResetAccount
parameters:
- name: AccountKey
in: path
description: Required unique key identifying the account.
required: true
schema:
minLength: 1
type: string
x-type-name: AccountKey
example: LZTc7DdejXODf-WSl2aCyQ==
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResetRequest'
example:
NewBalance: 50000000
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NoValidInput
- ResetAccountBalanceExceedsMaximum
- ResetAccountNegativeBalanceNotAllowed
type: string
example: None
x-enum-descriptions:
ResetAccountNegativeBalanceNotAllowed: Negative balances are not allowed.
ResetAccountBalanceExceedsMaximum: Balance exceeds maximum allowed value.
NoValidInput: No valid input values passed.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Write
/port/v1/accounts:
get:
tags:
- Accounts
summary: Get accounts of a client
description: Returns a list of all accounts owned by the specified client
operationId: GET_AccountsV1GetAccounts
parameters:
- name: $inlinecount
in: query
description: Specifies that the response to the request should include a count of the number of entries in the collection
schema:
enum:
- AllPages
- None
type: string
x-enum-descriptions:
None: The result will not contain an inline count
AllPages: The result will contain a total count of items in the queried collection
example: AllPages
- name: $skip
in: query
description: The number of entries to skip from the beginning of the collection
schema:
minimum: 0
type: integer
format: int32
example: 1
- name: $top
in: query
description: The number of entries to return from the beginning of the collection
schema:
minimum: 0
type: integer
format: int32
default: 1000
example: 1
- name: ClientKey
in: query
description: 'The client to which the accounts belong. Default: Logged-in user''s client.'
schema:
title: 'The client to which the accounts belong. Default: Logged-in user''s client.'
minLength: 1
type: string
x-type-name: ClientKey
example: 493b43a5-fe85-4d1f-9071-dd4a9d4e42a4
- name: IncludeSubAccounts
in: query
description: Optionally set true to request that all sub accounts are returned.
schema:
title: Optionally set true to request that all sub accounts are returned.
type: boolean
example: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResponseListResult'
example:
__next: /openapi/port/....../?$top=1&$skip=1
Data:
- AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
AccountId: 192134INET
AccountKey: LZTc7DdejXODf-WSl2aCyQ==
AccountType: Normal
Active: true
CanUseCashPositionsAsMarginCollateral: false
CfdBorrowingCostsActive: false
ClientId: '654321'
ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
CreationDate: '2017-01-01T13:00:00Z'
Currency: EUR
CurrencyDecimals: 2
DirectMarketAccess: false
FractionalOrderEnabled: false
IndividualMargining: false
IsCurrencyConversionAtSettlementTime: false
IsMarginTradingAllowed: true
IsShareable: true
IsTrialAccount: false
LegalAssetTypes:
- FxSpot
- Stock
- ContractFutures
ManagementType: Client
MarginCalculationMethod: Default
MarginLendingEnabled: None
PortfolioBasedMarginEnabled: false
Sharing:
- TradingFloor
SupportsAccountValueProtectionLimit: false
UseCashPositionsAsMarginCollateral: false
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Read
community: Read
/port/v1/accounts/me:
get:
tags:
- Accounts
summary: Get accounts
description: Returns all accounts under a particular client to which the logged in user belongs.
operationId: AccountsV1GetAccounts
parameters:
- name: $inlinecount
in: query
description: Specifies that the response to the request should include a count of the number of entries in the collection
schema:
enum:
- AllPages
- None
type: string
x-enum-descriptions:
None: The result will not contain an inline count
AllPages: The result will contain a total count of items in the queried collection
example: AllPages
- name: $skip
in: query
description: The number of entries to skip from the beginning of the collection
schema:
minimum: 0
type: integer
format: int32
example: 1
- name: $top
in: query
description: The number of entries to return from the beginning of the collection
schema:
minimum: 0
type: integer
format: int32
default: 1000
example: 1
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResponseListResult'
example:
__next: /openapi/port/....../?$top=1&$skip=1
Data:
- AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
AccountId: 192134INET
AccountKey: LZTc7DdejXODf-WSl2aCyQ==
AccountType: Normal
Active: true
CanUseCashPositionsAsMarginCollateral: false
CfdBorrowingCostsActive: false
ClientId: '654321'
ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
CreationDate: '2017-01-01T13:00:00Z'
Currency: EUR
CurrencyDecimals: 2
DirectMarketAccess: false
FractionalOrderEnabled: false
IndividualMargining: false
IsCurrencyConversionAtSettlementTime: false
IsMarginTradingAllowed: true
IsShareable: true
IsTrialAccount: false
LegalAssetTypes:
- FxSpot
- Stock
- ContractFutures
ManagementType: Client
MarginCalculationMethod: Default
MarginLendingEnabled: None
PortfolioBasedMarginEnabled: false
Sharing:
- TradingFloor
SupportsAccountValueProtectionLimit: false
UseCashPositionsAsMarginCollateral: false
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Read
community: Read
/port/v1/accounts/{AccountKey}:
get:
tags:
- Accounts
summary: Get account
description: Returns the details about a single account
operationId: AccountsV1GetAccount
parameters:
- name: AccountKey
in: path
description: Unique key for the account.
required: true
schema:
minLength: 1
type: string
x-type-name: AccountKey
example: LZTc7DdejXODf-WSl2aCyQ==
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResponse'
example:
AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
AccountId: 192134INET
AccountKey: LZTc7DdejXODf-WSl2aCyQ==
AccountType: Normal
Active: true
CanUseCashPositionsAsMarginCollateral: false
CfdBorrowingCostsActive: false
ClientId: '654321'
ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
CreationDate: '2017-01-01T13:00:00Z'
Currency: EUR
CurrencyDecimals: 2
DirectMarketAccess: false
FractionalOrderEnabled: false
IndividualMargining: false
IsCurrencyConversionAtSettlementTime: false
IsMarginTradingAllowed: true
IsShareable: true
IsTrialAccount: false
LegalAssetTypes:
- FxSpot
- Stock
- ContractFutures
ManagementType: Client
MarginCalculationMethod: Default
MarginLendingEnabled: None
PortfolioBasedMarginEnabled: false
Sharing:
- TradingFloor
SupportsAccountValueProtectionLimit: false
UseCashPositionsAsMarginCollateral: false
'400':
description: Bad Request
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- InvalidInput
type: string
example: None
x-enum-descriptions:
InvalidInput: An error was encountered when processing given input parameters.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Read
community: Read
patch:
tags:
- Accounts
summary: Update account
description: Updates account details, particularly the user account shield value, the benchmark instrument or the account display name.
operationId: AccountsV1UpdateAccount
parameters:
- name: AccountKey
in: path
description: Unique key of the account to share.
required: true
schema:
minLength: 1
type: string
x-type-name: AccountKey
example: LZTc7DdejXODf-WSl2aCyQ==
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AccountUpdateRequest'
example:
DisplayName: Trading Account
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- DisableUseCashPositionsAsMarginCollateralNotAllowed
- InvalidInput
- NoValidInput
- WouldExceedMargin
type: string
example: None
x-enum-descriptions:
NoValidInput: No valid input values passed.
InvalidInput: An error was encountered when processing given input parameters.
WouldExceedMargin: Disabling UseCashPositionsAsMarginCollateral would cause the account margin limits to be exceeded and is not allowed. To change this setting, please increase account collateral or reduce margin exposure first.
DisableUseCashPositionsAsMarginCollateralNotAllowed: Disabling UseCashPositionsAsMarginCollateral not allowed.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Write
components:
schemas:
AccountSubType:
title: Describes the sub type of the account.
enum:
- EquitySaving
- None
- NorwayASK
- PEA
- PEA_PME
- SwedenISK
type: string
example: None
x-enum-descriptions:
None: Default , used for None.
EquitySaving: Equity Saving Account.
PEA: PEA.
PEA_PME: PEA-PME.
NorwayASK: Norway ASK ( Tax saving Account).
SwedenISK: Sweden ISK ( Tax Saving Account).
ManagementType:
title: Account Management Type
enum:
- Advisory
- Client
- Discretionary
- ExternallyManaged
- ModelAdvisory
- ModelManaged
- SelfPeriodicInvestment
- TradeAdvisory
type: string
example: TradeAdvisory
x-enum-descriptions:
Client: The account is managed by the client. (Default).
TradeAdvisory: Advisors can call clients with trade suggestions across products, but trades are accepted by the client.
ModelAdvisory: The account is managed by a model, but client has to accept changes to the model.
ModelManaged: The account is managed by a model. Client cannot trade on the account.
ExternallyManaged: The account is managed externally (not in a saxo bank system). Client cannot trade on the account, but authorized dealers can.
SelfPeriodicInvestment: Client can schedule periodic investments on one or multiple Instruments
Discretionary: The account is managed by partner. Client (beneficial owner of the account) cannot trade on this account but authorized dealers can. Client will not receive any trade notifications.
Advisory: The account is managed by partner. Client (beneficial owner of the account) cannot trade on this account but authorized dealers can. However, client will get trade notifications.
AccountResponseArray:
type: array
items:
$ref: '#/components/schemas/AccountResponse'
example:
- AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
AccountId: 192134INET
AccountKey: LZTc7DdejXODf-WSl2aCyQ==
AccountType: Normal
Active: true
CanUseCashPositionsAsMarginCollateral: false
CfdBorrowingCostsActive: false
ClientId: '654321'
ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
CreationDate: '2017-01-01T13:00:00Z'
Currency: EUR
CurrencyDecimals: 2
DirectMarketAccess: false
FractionalOrderEnabled: false
IndividualMargining: false
IsCurrencyConversionAtSettlementTime: false
IsMarginTradingAllowed: true
IsShareable: true
IsTrialAccount: false
LegalAssetTypes:
- FxSpot
- Stock
- ContractFutures
ManagementType: Client
MarginCalculationMethod: Default
MarginLendingEnabled: None
PortfolioBasedMarginEnabled: false
Sharing:
- TradingFloor
SupportsAccountValueProtectionLimit: false
UseCashPositionsAsMarginCollateral: false
AccountBenchmarkInstrument:
title: Sets the instrument to be used as comparison then evaluating account performance.
required:
- BenchmarkInstrumentUic
type: object
properties:
BenchmarkInstrumentAssetType:
title: The instrument asset type of the benchmark instrument.
allOf:
- $ref: '#/components/schemas/AssetType'
BenchmarkInstrumentUic:
title: The instrument identifier of the benchmark instrument.
type: integer
format: int32
example: 99
additionalProperties: false
example:
BenchmarkInstrumentAssetType: FxKnockOutOption
BenchmarkInstrumentUic: 99
AccountsSubscriptionResponse:
title: Public response contract returned after setting up a subscription on accounts for a client.
type: object
properties:
ContextId:
title: The streaming context id that this response is associated with.
type: string
example: ContextId-1
x-display-order: 1
ReferenceId:
title: The reference id that (along with streaming context id and session id) identifies the subscription (within the context of a specific service/subscription type)
type: string
example: ReferenceId-1
x-display-order: 2
Format:
title: The media type (RFC 2046), of the serialized data updates that are streamed to the client.
type: string
example: application/json
InactivityTimeout:
title: The time (in seconds) that the client should accept the subscription to be inactive before considering it invalid.
type: integer
format: int32
example: 0
RefreshRate:
title: Actual refresh rate assigned to the subscription according to the customers SLA.
type: integer
format: int32
example: 0
Snapshot:
title: Snapshot of the current data on hand, when subscription was created.
allOf:
- $ref: '#/components/schemas/AccountResponseListResult'
State:
title: The value "Active".
type: string
description: This property is kept for backwards compatibility.
example: Active
Tag:
title: Client specified tag assigned to the subscription, if specified in the request.
type: string
example: ClientTag
additionalProperties: false
example:
ContextId: '20221030064905073'
Format: application/json
InactivityTimeout: 1500
ReferenceId: A70755
RefreshRate: 500
Snapshot:
Data:
- AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
AccountId: 192134INET
AccountKey: LZTc7DdejXODf-WSl2aCyQ==
AccountType: Normal
Active: true
CanUseCashPositionsAsMarginCollateral: false
CfdBorrowingCostsActive: false
ClientId: '654321'
ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
CreationDate: '2017-01-01T13:00:00Z'
Currency: EUR
CurrencyDecimals: 2
DirectMarketAccess: false
FractionalOrderEnabled: false
IndividualMargining: false
IsCurrencyConversionAtSettlementTime: false
IsMarginTradingAllowed: true
IsShareable: true
IsTrialAccount: false
LegalAssetTypes:
- FxSpot
- Stock
- ContractFutures
ManagementType: Client
MarginCalculationMethod: Default
MarginLendingEnabled: None
PortfolioBasedMarginEnabled: false
Sharing:
- TradingFloor
SupportsAccountValueProtectionLimit: false
UseCashPositionsAsMarginCollateral: false
State: Active
Tag: MyAccountRelatedSubscriptions
AccountResetRequest:
title: A parameter wrapper for Account Reset operations. queries
required:
- NewBalance
type: object
properties:
NewBalance:
title: The new balance. 0 is minimum and 10.000.000 is maximum.
type: number
example: 10
additionalProperties: false
example:
NewBalance: 50000000
AccountResponse:
title: Data contract for an account.
required:
- AccountId
type: object
properties:
AccountGroupKey:
title: Unique ID of the account group used for selection
minLength: 1
type: string
x-type-name: AccountGroupKey
AccountGroupName:
title: Name of the account group, displayed to the user
type: string
example: stringValue
AccountId:
title: Unique ID of the account, displayed to the user
type: string
example: stringValue
AccountKey:
title: Unique ID of the account.
minLength: 1
type: string
x-type-name: AccountKey
AccountSubType:
title: Sub type of the account.
allOf:
- $ref: '#/components/schemas/AccountSubType'
AccountType:
title: Type of the account.
allOf:
- $ref: '#/components/schemas/AccountType'
AccountValueProtectionLimit:
title: "If set, this value shields the account value from going below the given limit by automatically triggering closing of positions should the limit be exceeded.\n A limit of zero means there is no limit."
type: number
example: 10
Active:
title: Indicates whether the account is active or not.
type: boolean
example: true
AutoTradingInvestmentId:
title: If the account follows a trade leader on AutoTrading/SaxoSelect, this is the leader identifier.
type: integer
format: int32
example: 99
BenchmarkInstrument:
title: Contains the instrument to be used as comparison then evaluating account performance.
allOf:
- $ref: '#/components/schemas/AccountBenchmarkInstrument'
CanUseCashPositionsAsMarginCollateral:
title: If true, the user may enable/disable the use of cash positions as margin trading collateral on the given account.
type: boolean
example: true
CfdBorrowingCostsActive:
title: Indicates if the account is configured for CFD borrowing costs.
type: boolean
example: true
ClientId:
title: Unique ID of the client owning the account
type: string
example: stringValue
ClientKey:
title: Unique ID of the client - for navigation purposes
minLength: 1
type: string
x-type-name: ClientKey
CreationDate:
title: The UTC date and time the account was created.
type: string
format: date-time
x-type-name: UtcDateTime
Currency:
title: Account currency.
type: string
example: stringValue
CurrencyDecimals:
title: Number of decimals used in currency.
type: integer
format: int32
example: 99
DirectMarketAccess:
title: Indicates direct market access for the account.
type: boolean
example: true
DirectMarketExchangesIds:
title: Lists exchanges for which the account is direct market access enabled.
type: array
items:
type: string
example: stringValue
example:
- stringValue
DisplayName:
title: User customizable account name.
type: string
example: stringValue
FractionalOrderEnabled:
title: FractionalOrder is enabled or not for the account.
type: boolean
example: true
IndividualMargining:
title: Indicates that the margin exposure is calculated for this account only, without cross margining to other accounts within the same account group.
type: boolean
example: true
IsCurrencyConversionAtSettlementTime:
title: If true, currency conversions between trade and account currency take place at time of trade settlement. Typically end of business day.
type: boolean
example: true
IsMarginTradingAllowed:
title: Indicates whether trading on margin is allowed for the account.
type: boolean
example: true
IsShareable:
title: "Indicates whether or not the account can be shared.\n An account can only be shared if it is the only account of its client and it is not a trial account."
type: boolean
example: true
IsTrialAccount:
title: IsTrialAccount - Is this a trial account.
type: boolean
example: true
LegalAssetTypes:
title: AssetTypes that can be traded on this account.
type: array
items:
$ref: '#/components/schemas/AssetType'
example:
- FxVanillaOption
ManagementType:
title: Account's Management Type.
allOf:
- $ref: '#/components/schemas/ManagementType'
MarginCalculationMethod:
title: Calculation method for assessing margin utilization.
allOf:
- $ref: '#/components/schemas/PortfolioMarginMethod'
MarginLendingEnabled:
title: Margin Lending Enabled.
allOf:
- $ref: '#/components/schemas/MarginLendingEnabled'
PortfolioBasedMarginEnabled:
title: Portfolio Based Margin (PBM) is a method for mapping the risk of an investment portfolio. True if enabled else false.
type: boolean
example: true
Sharing:
title: Returns a list of application identifiers that the account has been shared with.
type: array
items:
type: string
example: stringValue
example:
- stringValue
SupportsAccountValueProtectionLimit:
title: If true, an AccountValueProtectionLimit may be set on this account. If it is false, the AccountValueProtectionLimit can be set on client or account group.
type: boolean
example: true
UseCashPositionsAsMarginCollateral:
title: Enable/disable the use of cash positions for margin trading collateral.
type: boolean
example: true
additionalProperties: false
example:
AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
AccountId: 192134INET
AccountKey: LZTc7DdejXODf-WSl2aCyQ==
AccountType: Normal
Active: true
CanUseCashPositionsAsMarginCollateral: false
CfdBorrowingCostsActive: false
ClientId: '654321'
ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
CreationDate: '2017-01-01T13:00:00.0000000+00:00'
Currency: EUR
CurrencyDecimals: 2
DirectMarketAccess: false
FractionalOrderEnabled: false
IndividualMargining: false
IsCurrencyConversionAtSettlementTime: false
IsMarginTradingAllowed: true
IsShareable: true
IsTrialAccount: false
LegalAssetTypes:
- FxSpot
- Stock
- ContractFutures
ManagementType: Client
MarginCalculationMethod: Default
MarginLendingEnabled: None
PortfolioBasedMarginEnabled: false
Sharing:
- TradingFloor
SupportsAccountValueProtectionLimit: false
UseCashPositionsAsMarginCollateral: false
AccountsRequest:
title: "Represents a request for one or more accounts.\n At least one of the following must be specified."
type: object
properties:
AccountGroupKey:
title: The key of the account group to which the accounts belong.
minLength: 1
type: string
x-type-name: AccountGroupKey
AccountKey:
title: The key of the account to monitor.
minLength: 1
type: string
x-type-name: AccountKey
ClientKey:
title: 'Unique key identifying the client that owns the accounts. Default: Logged-in user''s client.'
minLength: 1
type: string
x-type-name: ClientKey
additionalProperties: false
example:
AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
AccountKey: LZTc7DdejXODf-WSl2aCyQ==
ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
AssetType:
title: The possible AssetTypes for which you can get a quote or place an order or a trade.
enum:
- Bond
- Cash
- CertificateBonus
- CertificateCappedBonus
- CertificateCappedCapitalProtected
- CertificateCappedOutperformance
- CertificateConstantLeverage
- CertificateDiscount
- CertificateExpress
- CertificateTracker
- CertificateUncappedCapitalProtection
- CertificateUncappedOutperformance
- CfdIndexOption
- CfdOnCompanyWarrant
- CfdOnEtc
- CfdOnEtf
- CfdOnEtn
- CfdOnFund
- CfdOnFutures
- CfdOnIndex
- CfdOnRights
- CfdOnStock
- CompanyWarrant
- ContractFutures
- Etc
- Etf
- Etn
- Fund
- FuturesOption
- FuturesStrategy
- FxBinaryOption
- FxForwards
- FxKnockInOption
- FxKnockOutOption
- FxNoTouchOption
- FxOneTouchOption
- FxSpot
- FxVanillaOption
- GuaranteeNote
- IpoOnStock
- ManagedFund
- MiniFuture
- MutualFund
- PortfolioNote
- Rights
- SrdOnEtf
- SrdOnStock
- Stock
- StockIndex
- StockIndexOption
- StockOption
- Warrant
- WarrantDoubleKnockOut
- WarrantKnockOut
- WarrantOpenEndKnockOut
- WarrantSpread
type: string
example: FxForwards
x-enum-descriptions:
FxSpot: Forex Spot.
FxForwards: Forex Forward.
FxVanillaOption: Forex Vanilla Option.
FxKnockInOption: Forex Knock In Option.
FxKnockOutOption: Forex Knock Out Option.
FxBinaryOption: Forex Binary Option.
FxOneTouchOption: Forex One Touch Option.
FxNoTouchOption: Forex No Touch Option.
ContractFutures: Contract Futures.
FuturesStrategy: Futures Strategy.
Stock: Stock.
StockOption: Stock Option.
Bond: Bond.
FuturesOption: Futures Option.
StockIndexOption: Stock Index Option.
ManagedFund: 'Obsolete: Managed Fund.'
Cash: Cash. Not tradeable!
CfdOnStock: Cfd on Stock.
CfdOnIndex: Cfd on Stock Index.
CfdOnFutures: Cfd on Futures.
StockIndex: Stock Index.
MutualFund: Mutual Fund.
CfdIndexOption: Cfd Index Option.
CfdOnEtf: Cfd on Etf
CfdOnEtc: Cfd on Etc
CfdOnEtn: Cfd on Etn
CfdOnFund: Cfd on Fund
CfdOnRights: Cfd on Rights
CfdOnCompanyWarrant: Cfd on unlisted warrant issued by a corporation.
Etf: Exchange traded fund.
Etc: Etc
Etn: Etn
Fund: Fund
Rights: Rights
Warrant: Warrant
MiniFuture: MiniFuture.
WarrantSpread: Warrant with built-in spread.
WarrantKnockOut: Warrant with a knock-out barrier.
WarrantOpenEndKnockOut: Knock-out Warrant with no expiry.
WarrantDoubleKnockOut: Warrant with two knock-out barriers.
CertificateUncappedCapitalProtection: Guarantees a percentage increase of the underlying asset's value above the issue price at expiry/maturity. Max loss is the amount invested multiplied by the CapitalProtection percentage.
CertificateCappedCapitalProtected: Guarantees a capped percentage increase of the underlying asset's value above the issue price at expiry/maturity. Max loss is the amount invested multiplied by the CapitalProtection percentage.
CertificateDiscount: Yields a capped return if the underlying asset's value is above the specified cap level at expiry. If the underlying's value is below the strike at expiry, the investor received the underlying or equivalent value. Offers direct exposure in underlying at a lower price (discount) with a capped potential profit and limited loss.
CertificateCappedOutperformance: Capped Outperformance Certificate.
CertificateCappedBonus: Certificate Capped Bonus.
CertificateExpress: Certificate Express kick out.
CertificateTracker: A certificate that mirrors the price movement of the underlying instrument. Often used to trade movements in indicies. Movements can be a fixed ratio of the underlying and can be inverted for bearish/short speculation. Risk is equivalent to owning the underlying.
CertificateUncappedOutperformance: Provides leveraged returns when the underlying price exceeds the threshold strike price. The amount leverage is defined by the Participation %. When the underlying is below the strike price, the certificate mirrors the underlying price 1:1.
CertificateBonus: Mirrors the price movement of the underlying only if and when the underlying price exceeds the defined barrier. If the certificate expires below the barrier, it offers partial protection/return of investment.
CertificateConstantLeverage: Certificate Constant Leverage.
SrdOnStock: SRD. (Service de Règlement Différé) on Stock.
SrdOnEtf: SRD. (Service de Règlement Différé) on Etf.
IpoOnStock: IPO on Stock
CompanyWarrant: Unlisted warrant issued by a corporation, often physically settled.
PortfolioNote: Danish pooled investment scheme (“Pulje”). Not online tradeable.
GuaranteeNote: Danish investment scheme (“Grantbevis”). Not online tradeable.
PortfolioMarginMethod:
title: Specifies the margin calculaion method for the given entity.
enum:
- Default
- JanusMarginReplication
- SpanForFutures
- SpanForFuturesAndOptions
type: string
example: SpanForFutures
x-enum-descriptions:
Default: Uses Saxo exposure based margin.
SpanForFutures: Uses rules-based SPAN methods to calculate margin on futures alone.
SpanForFuturesAndOptions: Uses rules-based SPAN methods to calculate margin on futures and options.
JanusMarginReplication: Uses rules-based the Janus methodology to calculate margin.
AccountResponseListResult:
type: object
properties:
Data:
type: array
items:
$ref: '#/components/schemas/AccountResponse'
description: The collection of entities for this feed.
MaxRows:
type: number
description: The maximum number of rows that can be returned (if applicable).
__count:
type: number
description: The total count of items in the feed.
__next:
type: string
description: The link for the next page of items in the feed.
additionalProperties: false
example:
__next: /openapi/port/....../?$top=1&$skip=1
Data:
- AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
AccountId: 192134INET
AccountKey: LZTc7DdejXODf-WSl2aCyQ==
AccountType: Normal
Active: true
CanUseCashPositionsAsMarginCollateral: false
CfdBorrowingCostsActive: false
ClientId: '654321'
ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
CreationDate: '2017-01-01T13:00:00Z'
Currency: EUR
CurrencyDecimals: 2
DirectMarketAccess: false
FractionalOrderEnabled: false
IndividualMargining: false
IsCurrencyConversionAtSettlementTime: false
IsMarginTradingAllowed: true
IsShareable: true
IsTrialAccount: false
LegalAssetTypes:
- FxSpot
- Stock
- ContractFutures
ManagementType: Client
MarginCalculationMethod: Default
MarginLendingEnabled: None
PortfolioBasedMarginEnabled: false
Sharing:
- TradingFloor
SupportsAccountValueProtectionLimit: false
UseCashPositionsAsMarginCollateral: false
MarginLendingEnabled:
title: Margin Lending Enabled.
enum:
- false
- None
- true
type: string
example: true
x-enum-descriptions:
None: Default. Margin Lending is not applicable.
true: Margin Lending is enabled.
false: Margin Lending is disabled.
Models.AccountDetails:
title: Account Details
type: object
properties:
AccountId:
title: Account Id
type: string
example: stringValue
AccountKey:
title: Account Key
type: string
example: stringValue
additionalProperties: false
example:
AccountId: '2147279960'
AccountKey: BxS0VWLta8lJ3SBpjGBQjw==
AccountUpdateRequest:
title: A parameter wrapper for Account update operations.
type: object
properties:
AccountValueProtectionLimit:
title: "If set, this value shields the account value from going below the given limit by automatically triggering closing of positions should the limit be exceeded.\n A limit of zero means there is no limit."
type: number
example: 10
BenchmarkInstrument:
title: Sets the instrument to be used as comparison then evaluating account performance.
allOf:
- $ref: '#/components/schemas/AccountBenchmarkInstrument'
DisplayName:
title: The nickname the client would like to give the account.
type: string
example: stringValue
UseCashPositionsAsMarginCollateral:
title: Enable/disable the use of cash positions for margin trading collateral.
type: boolean
example: true
additionalProperties: false
example:
DisplayName: Trading Account
ModelStateDictionary:
type: object
additionalProperties:
type: array
items:
type: string
AccountsSubscriptionRequest:
title: Public request contract for setting up a subscription on accounts for a client.
required:
- ContextId
- ReferenceId
type: object
properties:
ContextId:
title: "The streaming context id that this request is associated with.\n This parameter must only contain letters (a-z) and numbers (0-9) as well as - (dash) and _ (underscore). It is case insensitive. Max length is 50 characters."
pattern: ^[a-zA-Z0-9_-]{1,50}$
type: string
example: ContextId-1
x-display-order: 1
ReferenceId:
title: "Mandatory client specified reference id for the subscription.\n This parameter must only contain alphanumberic characters as well as - (dash) and _ (underscore). Cannot start with _. It is case insensitive. Max length is 50 characters."
pattern: ^[a-zA-Z0-9-][a-zA-Z0-9_-]{0,49}$
type: string
example: ReferenceId-1
x-display-order: 2
Arguments:
title: Arguments for the subscription request.
allOf:
- $ref: '#/components/schemas/AccountsRequest'
Format:
title: "Optional Media type (RFC 2046) of the serialized data updates that are streamed to the client.\n Currently only application/json and application/x-protobuf is supported.\n If an unrecognized format is specified, the subscription end point will return HTTP status code 400 - Bad format."
type: string
example: application/json
RefreshRate:
title: "Optional custom refresh rate, measured in milliseconds, between each data update.\n Note that it is not possible to get a refresh rate lower than the rate specified in the\n customer service level agreement (SLA)."
maximum: 2147483647
minimum: 0
type: integer
format: int32
example: 0
ReplaceReferenceId:
title: Reference id of the subscription that should be replaced.
pattern: ^[a-zA-Z0-9-][a-zA-Z0-9_-]{0,49}$
type: string
example: ReplaceReferenceId-1
Tag:
title: Optional client specified tag used for grouping subscriptions.
type: string
example: ClientTag
additionalProperties: false
example:
Arguments:
AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
AccountKey: LZTc7DdejXODf-WSl2aCyQ==
ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
ContextId: '20221030064905067'
Format: application/json
ReferenceId: A21312
RefreshRate: 500
Tag: MyAccountRelatedSubscriptions
Models.CreateAccount:
title: Create Account
required:
- ClientKey
- ChoiceOfAccount
type: object
properties:
ChoiceOfAccount:
title: Choice Of Account (from Options)
type: string
example: stringValue
ClientKey:
title: Client Key of the user for which new account is to be created
minLength: 1
type: string
x-type-name: ClientKey
additionalProperties: false
example:
ChoiceOfAccount: '65'
ClientKey: BxS0VWLta8lJ3SBpjGBQjw==
AccountType:
title: Describes the type of account.
enum:
- AutoTradingFollower
- AutoTradingLeader
- BlockTrading
- Collateral
- Commission
- Funding
- Interest
- MarginLending
- Normal
- Omnibus
- Other
- Pension
- Settlement
- SettlementTrading
- Tax
- TaxFavoredAccount
type: string
example: BlockTrading
x-enum-descriptions:
Normal: Default. Used for normal client accounts.
BlockTrading: Account used for allocating large block orders.
SettlementTrading: For FX Settlement trading clients, this account type is used for the main trading account.
Collateral: Account used to hold collateral assets. Not used for trading.
Funding: Account used to transfer funds between client accounts. Not used for trading.
Commission: Booking account for comissions only. Not used for trading.
Interest: Booking account for interest only. Not used for trading.
Omnibus: Partner account used to execute and clear client trades.
Settlement: Used in connection with SettlementTrading accounts. SettlementTrading accounts is used on the actual trading account. Settlement accounts are used on the sub accounts. Not used for trading.
Tax: Retention account for accumulating or withholding taxes. Not used for trading.
AutoTradingLeader: Account Type for AutoTrading leader accounts.
AutoTradingFollower: Account Type for AutoTrading follower accounts.
TaxFavoredAccount: Tax favored account.
MarginLending: Margin Lending.
Pension: Pension account.
Other: Account type not mapped.
responses:
ServiceUnavailable:
description: Service Unavailable.
Unauthorized:
description: Indicates that the request was rejected because the 'Authorization' header was missing in the request or contained an invalid security token.
TooManyRequests:
description: The request was rejected due to rate limit being exceeded.
BadRequest:
description: One or more of the provided parameters are invalid.
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- InvalidRequest
type: string
example: None
x-enum-descriptions:
InvalidRequest: Default error code returned when it cannot be determined which part of the request is malformed.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
securitySchemes:
OpenApiJWTSecurityScheme:
type: http
scheme: bearer
bearerFormat: JWT
OpenApiOAuthSecurityScheme:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://sim.logonvalidation.net/authorize
tokenUrl: https://sim.logonvalidation.net/token
scopes: {}