Client Management Systems API

Saxo Group monitors the CMS API and has failover procedures and backup systems. Internal failures are therefore handled immediately through Saxo Group's incident management process and are normally not noticeable to the White Label.

Faults

CMS uses Faults to communicate possible error scenarios back to its clients.

Fault Types

There are two types of declared faults (SOAP faults that are defined in the service contract), ValidationFault and ServiceFault. See Section 5.3 for more details.

Error Codes for ServiceFaults

Login and Security

Id

Code

Description

Name

Code

Description

Unknown/NotSet

100000

Is unknown, and should be handled as a system error. Please contact technical support at Saxo Bank if this exception is returned.

AccessDenied

100001

Is returned when the login fails or a request is done towards a web service interface that the user does not have access to.

AccountLockedOut

100002

Is returned when the server user has failed to logon five times. Saxo Bank must reactivate it.

InvalidSessionId

100003

The session id that is attached in the web service request is not known by the server.

SessionIdExpired

100004

The session id expires 8 hours after login is called and needs to be renewed.

PasswordExpired

100005

The password expires every third month and needs to be changed by the ChangePassword request.

InvalidIPAddress

100006

All requests must be done from the same IP address as the login request.

UnknownUser

100007

The certificate used on the client does not match with a known User.

The Fault names market with gray can be solved by renewing the ticket, i.e. call Login again and receive a new ticket.

User Password

Id

Code

Description

UserPwLockedOut

420009

User is locked out. Too many validate password attempts.

C

UserPwExpired

420010

Password is expired.

C

ClientNotActive

420011

Counterpart owning the user is not active.

C

UserNotActive

420012

User is not active.

C

UserNotAuthorizedForPlatform

420013

User is not authorized for platform.

N/A

UserPwAnotherChallengeNeeded

420014

Another challenge is needed.

N/A

UserPwChallengeResponseWrong

420015

Challenge response wrong.

N/A

UserPwComplexity

410016

The password does not meet the security complexity requirements.

U

UserPwRecentlyChanged

410017

The password has recently been changed.

U

UserPwReuse

410018

This password has already been used. Please select another password.

U

UserPwUnknown

410021

Unknown error in change password functionality.

U

Cash Transfer

Id

Code

Description

CounterpartFundingAccount

410009

When issuing cash transfers, one counterpart account and one funding account must be supplied.

U

CounterpartFundingAccountRelation

410010

The provided counterpart account is accessible by the owner of the funding account. The counterpart account is on a higher level than the funding account.

U

InvalidCashCurrency

410012

The currency must be the same as the currency of the counterpart account and the funding account.

U

ValueDateNotValid

410015

The provided value date is not valid. The value date cannot be more that 6 months ahead of current time.

U

InsufficientCash

420005

From Account has insufficient cash.

U

AccountNotCash

420006

Account is not valid for cash transfers. This often indicates that the Account is missing required products.

U

CashInactiveAccount

420007

From or to Account is inactive.

U

UnknownCash

430501

Cash Transfer failed. This indicates that an internal cash transfer error has occurred. Please contact technical support at Saxo Bank.

Relief at Source

Id

Code

Description

ReliefAtSourceNotEnabledForOwner

430101

ReliefAtSource information provided, but is not enabled for owner.

C

ReliefAtSourceTypeNotAllowedForOwner

430102

ReliefAtSourceType is not allowed for the current owner.

C

ReliefAtSourceNifIdInvalid

430103

Provided NifId is not valid.

U

ReliefAtSourceNifIdMustBeSpecifiedForPortuguese

430104

NifId must be specified for Portuguese relief at source types.

U

ReliefAtSourceNifIdMustNotBeSpecifiedForPortuguese

430105

NifId must not be specified for non-Portuguese relief at source types.

U

ReliefAtSourceNifIdExpiryDateMustNotBeSpecified

430106

Expiry date must not be specified for non us Portuguese relief at source types.

U

Counterpart, Account and User related errors

Id

Code

Description

TemplateNotEnabled

310003

Template is not enabled.

C

TemplateAccessDenied

310004

Template does not belong to current Owner.

U

TemplateWrongType

310005

Template is of wrong type.

U

AccountNumberInvalidPrefix

410004

The Account number does not have a valid prefix.

U

AccountNumberNotUnique

410007

Account number for account is not unique.

U

UserLoginNotUnique

410008

User login name is not unique.

U

OmnibusAccountMissing

420003

No Omnibus Account found belonging to the current Owner.

C

VatNotEnabledForOwner

430000

Vat information is provided, but is not enabled for owner.

C

MissingChildTemplateAccounts

430201

Account Templates supplied, do not correspond with the Child Account Templates belonging to the Counterpart TemplateId.

U

MissingMasterAccount

430202

One Account should have the same currency as the base currency on the counterpart.

U

MissingAccounts

430203

No Accounts supplied when creating counterpart.

U

MissingVPAccountInformation

430204

CdIdentNumber needs to be specified, if it is not present on the Account Template used.

U

AccountContainsOpenPositions

430205

Account contains open positions and cannot be moved to another counterpart.

U

AccountInvalidCashBalance

430206

Account has a cash balance that is not zero and cannot be moved to another counterpart.

U

NotAllowedToUpdateCurrency

430301

It is not allowed to update Currency on existing Account

U

NotAllowedToUpdateCounterpartType

430302

It is not allowed to change the CounterpartType of an existing Counterpart.

U

NotAllowedToChangeOwner

430303

It is not allowed to change the OwnerId of an existing Counterpart.

U

NotAllowedToChangeInterestProfile

430304

It is not allowed to update the InterestProfileId on an existing Account

U

NotAllowedToChangeCounterpart

430305

It is not allowed to change Counterpart Owner on an existing Account

U

NotAllowedToChangeAccountProfile

430306

It is not allowed to update AccountRiskProfileId on an existing Account

U

NotAllowedToChangeCfdInterestProfile

430307

It is not allowed to update CfdInterestProfileId on an existing Account

U

NotAllowedToChangeMarginProfile

430309

It is not allowed to change the MarginProfile of an existing Counterpart.

U

NotAllowedToChangeMarginCallProfile

430310

It is not allowed to change the MarginCallProfile of an existing Counterpart

U

InvalidInstruments

430311

Provided Instruments are not allowed for the current Owner.

C

NotAllowedToProvideTinForCorporateCounterparts

430312

It is not allowed to provide Tin number on the Primary User when creating a Corporate Counterpart.

U

CrnShouldNotBeIncludedForNoneCorporate

430401

CompanyRegistrationNumber should not be supplied for none Corporate Counterpart Types

U

Other

Id

Code

Description

Unknown

300000 400000

Is unknown and should be handled as a system Fault. Please contact technical support at Saxo Bank.

ValueNotAllowed

310001

The provided value is not allowed. Please contact Saxo Bank if value should be allowed.

C

NotOwner

310002

The Owner does not have access to the entity.

U

Fault Type Examples

Fault

Overall Description

                                     Example

ValidationFault

Used to give clients field level validation feedback. And about common business rules. Examples could be validation like Required, StringLength, DataType, Account Number etc.

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <s:Fault>
         <faultcode>s:Client</faultcode>
         <faultstring xml:lang="da-DK">Validation failed on some Service Parameter provided to Operation CreateCounterpart. See the Detail property for more info</faultstring>
         <detail>
            <ValidationFault xmlns="http://www.saxobank.com/service/cms/2013/08" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
               <TrackingCode i:nil="true"/>
               <ErrorCode>100</ErrorCode> --Validation Error
               <Details xmlns:a="http://schemas.datacontract.org/2004/07/Iit.Sem.Cms.Contract.DataContracts">
                  <ValidationDetail>
                     <a:Key>Counterpart.Language</a:Key>
                     <a:Message>Property Language must contain a 2 letter alphanumeric code according to the ISO 639-1 standard</a:Message>
                  </ValidationDetail>
               </Details>
            </ValidationFault>
         </detail>
      </s:Fault>
   </s:Body>
</s:Envelope>

ServiceFault

Used for all other possible types of faults. An error code will be used, so the client can identify the specific error reason and act upon it.   

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <s:Fault>
         <faultcode>s:Client </faultcode>
         <faultstring>ReliefAtSource information provided, but is not enabled for owner 3086666</faultstring>
         <detail>
            <ServiceFault xmlns="http://www.saxobank.com/service/cms/2013/08" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
               <TrackingCode i:nil="true"/>
               <ErrorCode>320001</ErrorCode> --100000-999999
            </ServiceFault>
         </detail>
      </s:Fault>
   </s:Body>
</s:Envelope>