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/"> | ||
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/"> |