Introduction

Before you start: An environment-specific WMS origin and a GUEST token.
Keep for the next step: A configured HTTP client and an understanding of the request conventions.
WMS2 is a service-oriented SaaS architecture that offers Restful Web API functionalities for wealth management and pension provision. The platform supports Swiss pillar 3a, vested benefits and pillar 3b investments. Available products and integrations depend on the asset manager configuration. Each portfolio has its own account-holding institution; LIENHARDT is the institution used in the examples in this guide.

Start here: the client journey

Follow one client through the steps below. Choose C# or Java and keep that language throughout. Each code block is a recipe within this journey, rather than a standalone program.

  1. Register the client: follow self-registration using a GUEST token. Administrator-assisted creation is an alternative.
  2. Sign in: obtain the CLIENT access/refresh token pair and keep userId. Registration may already return this pair; sign in again when needed.
  3. Calculate risk and select a proposal: keep the business line, investment category, questionnaire response IDs and the chosen proposalId.
  4. Open the portfolio: save the questionnaire, complete client data, prepare the PDF contract and submit the creation order. Keep orderId and portfolioId, then track the order.
  5. Read the portfolio: retrieve its current snapshot, values, cash accounts and documents as they become available.
  6. Change the strategy: choose an eligible proposal, prepare the contract and submit a modification order.

Use Client data changes when details change. Notifications is a separate administrative integration. Simulation paths contains optional development scenarios.

Setup checklist

  1. Obtain the WMS service origin and GUEST token; use a CLIENT token after authentication. Administrative examples explicitly identify the required role.
  2. C#: use .NET 9, install Newtonsoft.Json with dotnet add package Newtonsoft.Json, then copy the imports and GuideHttp below.
  3. Java: use Java 21 or later and add Gson (Maven coordinates com.google.code.gson:gson) to your build. Copy the imports, Settings, Api and MultiPartBodyPublisher below. Set WMS_BASE_URL to the origin without /api/v1 and set WMS_GUEST_TOKEN. Set administrative tokens only for the administrative flows.
  4. Initialize the HTTP client once, copy the DTOs needed by your chapter and collect the client inputs listed below. C# httpClient.BaseAddress is the service origin with a trailing slash; the snippets append api/v1.

Use the shared helpers and DTO catalog in this page whenever an example references a custom type. The code blocks have a Copy button.

Target groups

Users of this guide should have a certain level of experience in web and software development. The guide is organized as task-oriented recipes, from client registration to portfolio management. We will not cover the software development aspect. Instead, we will focus on the most common APIs and how to use them through examples organized in step-by-step code snippets.

APIs

Use the Swagger/OpenAPI reference provided for your target WMS environment to check request schemas, response schemas, permitted roles and available products. Most responses use JSON; document downloads return binary content. Check the reference for the API version used by your integration; deployment is not needed to read this guide.
WMS API reference in Swagger

Requirements

Protected endpoints require a valid bearer token (JWT). A missing, expired or invalid token normally produces HTTP 401; a valid token with insufficient permissions may produce HTTP 403.
If you need a GUEST token, please contact us at info@descartes.swiss.
Once you have the authorization token, set the HTTP header as shown below:
						
Authorization: Bearer <access-token>

There are different types of authorization tokens: GUEST, CLIENT, SELLER, ADMIN and SUPERADMIN, among others. The permitted roles are specific to each endpoint.
Use a GUEST token to start client self-registration or login. After successful completion, store the returned access token, refresh token and ValidUntil. Use the CLIENT access token for subsequent client requests. Token validity depends on the service configuration.
Application tokens used for server-to-server integration can have a different lifetime. Obtain the correct token for the target environment, and keep administrative tokens in server-side configuration.

HTTP proxy

Once we have received the authorization token, we proceed with the initialization of an HTTP proxy:
									
// WMS_BASE_URL is the WMS service origin, without /api/v1.
var baseUrl = Environment.GetEnvironmentVariable("WMS_BASE_URL") ?? throw new InvalidOperationException("Set WMS_BASE_URL");
var guestToken = Environment.GetEnvironmentVariable("WMS_GUEST_TOKEN") ?? throw new InvalidOperationException("Set WMS_GUEST_TOKEN");
using var httpClient = new HttpClient
{
    BaseAddress = new Uri(baseUrl.TrimEnd('/') + "/")
};
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.AcceptLanguage.Add(new StringWithQualityHeaderValue("de-DE"));
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", guestToken);

									
var httpClient = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .timeout(Duration.ofMinutes(1))
    .uri(Settings.wmsUri("genders/code/MALE"))
    .header("Accept", "application/json")
    .header("Accept-Language", "de-DE")
    .header("Authorization", "Bearer " + Settings.GUEST_TOKEN)
    .GET().build();
var response = httpClient.send(request, BodyHandlers.ofString());
Api.requireSuccess(response);

Using the snippets

The snippets illustrate API requests and their dependencies. They are fragments to adapt to your client, rather than a complete application. Keep the values returned by each step for the next request. Administrative registration and self-registration are separate paths.
C# examples target .NET 9 and use Newtonsoft.Json for explicit payload serialization; GetFromJsonAsync uses the .NET HTTP JSON extensions. Add the Newtonsoft.Json package to your client if it does not already reference it. Java examples use Java 21 or later and Gson. Add Gson to your existing build configuration. Map response JSON names with SerializedName and use String fields for date/timestamp values in these Java DTOs; parse them when your client needs date operations. DTO classes represent the request and response schemas in the API reference; define them in your client with the same fields and JSON names. No downloaded sample application is required.
Values such as clientEmail, clientPassword, phoneNumberPrefix and phoneNumberNumber are collected by your UI. consentTimestamp records when consent is given (C#: DateTime; Java: an ISO 8601 timestamp string). selectedReasonIds is a collection of long identifiers selected by the client; initialize an empty collection when no deviation reasons are required. Set adminToken and superAdminToken from protected server-side configuration when using those paths. C# contractPath is a string; Java contractPath is a Path. Each fragment has its own local scope. Keep the client inputs, identifiers and lookup values referenced by subsequent fragments, as well as the output values listed at the start of each chapter. The examples are sequential; keep each caller's token context separate in your integration.

Carry values between chapters

The same business value can have different variable names in the two languages. Keep these values in your client context; changing chapters does not reset them. Reusing a local name such as response means replacing that request result, not discarding the stored client context.

ValueC# examplesJava examples
Client identity and sessionuserId, accessToken, refreshToken, validUntiluserId, accessToken, refreshToken, validUntil
Product lookup valuesbusinessLineVorsorge.Id, investmentCategory3A.IdbusinessLineId, investmentCategoryId
Questionnaire answers and riskresponseIds, riskresponseIds, riskCategorizationObj
Chosen opening proposalproposalSelectedByUser.IdproposalSelectedByUser.Id (chosen using proposalId)
Completed opening contractpdfContractAsByteArraycontractPath, pointing to the completed PDF
Opening resultorderId, portfolioIdorderId, portfolioId
Strategy-change selection and resultselectedProposalId, modificationOrderIdselectedProposalId, modificationOrderId

Identifiers are API values returned by lookups or previous requests. Example numbers in JSON projections are illustrative; never copy them as real identifiers. In administrative notification examples, adminUserId identifies the recipient and is separate from the client userId.

C# imports


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Net.Http.Json;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

Java imports


import java.io.*;
import java.lang.reflect.Type;
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpResponse.BodyHandlers;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.time.*;
import java.util.*;
import java.util.function.Supplier;
import com.google.gson.*;
import com.google.gson.annotations.SerializedName;
import com.google.gson.reflect.TypeToken;

Shared helper classes

Complete source for every custom helper used in this guide is shown below: GuideHttp (C#), and Settings, Api and MultiPartBodyPublisher (Java). Copy the classes into your own source files and use the imports listed in Using the snippets. Settings reads WMS_BASE_URL, WMS_GUEST_TOKEN, WMS_ADMIN_TOKEN and WMS_SUPERADMIN_TOKEN from environment variables; provide the credentials required by the flow you use.
Client updates and portfolio orders use multipart/form-data. The JSON part is named jsonPayload ; order contracts use userContracts and the optional PDF service uses attachments . Do not set Content-Type manually for C# MultipartFormDataContent: it supplies the boundary. These small helpers use the platform HTTP libraries and can be placed in your existing client. They buffer a PDF in memory and are intended for the small contracts used by this guide.

public static class GuideHttp
{
    public static MultipartFormDataContent CreateMultipartContent(
        object payload,
        byte[]? pdf = null,
        string fileField = "userContracts")
    {
        var content = new MultipartFormDataContent();
        content.Add(new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json"), "jsonPayload");
        if (pdf != null)
        {
            var file = new ByteArrayContent(pdf);
            file.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
            content.Add(file, fileField, "Contract.pdf");
        }

        return content;
    }
}

// Put these helpers in their own source files. They are not WMS API contracts.
final class Settings {
    static final String WMS_BASE_URL = System.getenv("WMS_BASE_URL");
    static final String GUEST_TOKEN = System.getenv("WMS_GUEST_TOKEN");
    static final String ADMIN_TOKEN = System.getenv("WMS_ADMIN_TOKEN");
    static final String SUPERADMIN_TOKEN = System.getenv("WMS_SUPERADMIN_TOKEN");

    static URI wmsUri(String relativePath) {
        if (WMS_BASE_URL == null || WMS_BASE_URL.isBlank()) {
            throw new IllegalStateException("Set WMS_BASE_URL to the WMS service origin");
        }
        String origin = WMS_BASE_URL.replaceAll("/+$", "");
        return URI.create(origin + "/api/v1/" + relativePath);
    }
}

final class Api {
    static void requireSuccess(HttpResponse<?> response) {
        if (response.statusCode() < 200 || response.statusCode() >= 300) {
            throw new IllegalStateException("HTTP " + response.statusCode());
        }
    }
}

final class MultiPartBodyPublisher {
    private final String boundary = "WmsGuide-" + UUID.randomUUID();
    private final List<byte[]> parts = new ArrayList<>();

    String getBoundary() { return boundary; }

    MultiPartBodyPublisher addPart(String name, String value) {
        parts.add(("--" + boundary + "\r\nContent-Disposition: form-data; name=\""
            + name + "\"\r\nContent-Type: application/json; charset=UTF-8\r\n\r\n"
            + value + "\r\n").getBytes(StandardCharsets.UTF_8));
        return this;
    }

    MultiPartBodyPublisher addPart(String name, Supplier<InputStream> source,
    String filename, String contentType) throws IOException {
        parts.add(("--" + boundary + "\r\nContent-Disposition: form-data; name=\""
            + name + "\"; filename=\"" + filename + "\"\r\nContent-Type: "
            + contentType + "\r\n\r\n").getBytes(StandardCharsets.UTF_8));
        try (InputStream input = source.get()) { parts.add(input.readAllBytes()); }
        parts.add("\r\n".getBytes(StandardCharsets.UTF_8));
        return this;
    }

    HttpRequest.BodyPublisher build() {
        List<byte[]> body = new ArrayList<>(parts);
        body.add(("--" + boundary + "--\r\n").getBytes(StandardCharsets.UTF_8));
        return HttpRequest.BodyPublishers.ofByteArrays(body);
    }
}

DTO

To avoid large and difficult to read code snippets, not all DTO definitions are listed. Use the schemas in the API reference to define the DTOs needed by your client. The following example shows the JSON-to-DTO mapping.
For example, this JSON response:
										
{
	"id": 0,
	"code": "string",
	"name": "string"
  }

										
Our DTO looks like:
											
public class GenderOutputModel
{
    public long Id { get; set; }
    public string Code { get; set; }
    public string Name { get; set; }
}

										
											
import com.google.gson.annotations.SerializedName;

public class GenderOutputModel {
    @SerializedName("id")
    public long Id;

    @SerializedName("code")
    public String Code;

    @SerializedName("name")
    public String Name;
}

										

DTO source catalog

These client-side classes expose all public data properties of the models used by the examples, including inherited properties. Server validation attributes and empty base classes are omitted. JSON property names are explicit. Use the imports above; add System.Collections.Generic for C# and java.util.List / java.util.Map for Java. Java uses nullable wrapper types and ISO date strings. Dates in query parameters still use yyyyMMdd; JSON date-only values use yyyy-MM-dd. These definitions describe data shapes; the endpoint controls which fields are required when writing.

Open a model to view and copy its C# or Java definition. Define each class once in your project: use the catalog definition instead of copying a second definition from an earlier illustrative snippet.

AccessTokenOutputModel

C#

public class AccessTokenOutputModel
{
    [JsonProperty("accountNumber")]
    public string AccountNumber { get; set; }
    [JsonProperty("accessToken")]
    public string AccessToken { get; set; }
    [JsonProperty("refreshToken")]
    public string RefreshToken { get; set; }
    [JsonProperty("validUntil")]
    public DateTime ValidUntil { get; set; }
}

Java

public class AccessTokenOutputModel {
    @SerializedName("accountNumber")
    public String AccountNumber;
    @SerializedName("accessToken")
    public String AccessToken;
    @SerializedName("refreshToken")
    public String RefreshToken;
    @SerializedName("validUntil")
    public String ValidUntil;
}
AccountHoldingInstitutionOutputModel

C#

public class AccountHoldingInstitutionOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("street")]
    public string Street { get; set; }
    [JsonProperty("streetNr")]
    public string StreetNr { get; set; }
    [JsonProperty("zipCode")]
    public string ZipCode { get; set; }
    [JsonProperty("city")]
    public string City { get; set; }
    [JsonProperty("countryId")]
    public long CountryId { get; set; }
    [JsonProperty("deleted")]
    public bool Deleted { get; set; }
    [JsonProperty("businessLineIds")]
    public IList<long> BusinessLineIds { get; set; }
}

Java

public class AccountHoldingInstitutionOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("street")
    public String Street;
    @SerializedName("streetNr")
    public String StreetNr;
    @SerializedName("zipCode")
    public String ZipCode;
    @SerializedName("city")
    public String City;
    @SerializedName("countryId")
    public Long CountryId;
    @SerializedName("deleted")
    public Boolean Deleted;
    @SerializedName("businessLineIds")
    public List<Long> BusinessLineIds;
}
AdminOutputModel

C#

public class AdminOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("systemUserTypeId")]
    public long? SystemUserTypeId { get; set; }
    [JsonProperty("accountNumber")]
    public string AccountNumber { get; set; }
    [JsonProperty("isLocked")]
    public bool IsLocked { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("surname")]
    public string Surname { get; set; }
    [JsonProperty("genderId")]
    public long? GenderId { get; set; }
    [JsonProperty("languageId")]
    public long? LanguageId { get; set; }
    [JsonProperty("email")]
    public string Email { get; set; }
    [JsonProperty("phoneNumberPrefix")]
    public string PhoneNumberPrefix { get; set; }
    [JsonProperty("phoneNumberNumber")]
    public string PhoneNumberNumber { get; set; }
    [JsonProperty("isDeleted")]
    public bool IsDeleted { get; set; }
    [JsonProperty("created")]
    public DateTime Created { get; set; }
    [JsonProperty("modified")]
    public DateTime? Modified { get; set; }
    [JsonProperty("avatar")]
    public string Avatar { get; set; }
}

Java

public class AdminOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("systemUserTypeId")
    public Long SystemUserTypeId;
    @SerializedName("accountNumber")
    public String AccountNumber;
    @SerializedName("isLocked")
    public Boolean IsLocked;
    @SerializedName("name")
    public String Name;
    @SerializedName("surname")
    public String Surname;
    @SerializedName("genderId")
    public Long GenderId;
    @SerializedName("languageId")
    public Long LanguageId;
    @SerializedName("email")
    public String Email;
    @SerializedName("phoneNumberPrefix")
    public String PhoneNumberPrefix;
    @SerializedName("phoneNumberNumber")
    public String PhoneNumberNumber;
    @SerializedName("isDeleted")
    public Boolean IsDeleted;
    @SerializedName("created")
    public String Created;
    @SerializedName("modified")
    public String Modified;
    @SerializedName("avatar")
    public String Avatar;
}
AuthenticationSecondFactorOutputModel

C#

public class AuthenticationSecondFactorOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("accountNumber")]
    public string AccountNumber { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("surname")]
    public string Surname { get; set; }
    [JsonProperty("role")]
    public string Role { get; set; }
    [JsonProperty("accessToken")]
    public string AccessToken { get; set; }
    [JsonProperty("validUntil")]
    public DateTime ValidUntil { get; set; }
    [JsonProperty("refreshToken")]
    public string RefreshToken { get; set; }
    [JsonProperty("remainingAttempts")]
    public int RemainingAttempts { get; set; }
}

Java

public class AuthenticationSecondFactorOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("accountNumber")
    public String AccountNumber;
    @SerializedName("name")
    public String Name;
    @SerializedName("surname")
    public String Surname;
    @SerializedName("role")
    public String Role;
    @SerializedName("accessToken")
    public String AccessToken;
    @SerializedName("validUntil")
    public String ValidUntil;
    @SerializedName("refreshToken")
    public String RefreshToken;
    @SerializedName("remainingAttempts")
    public Integer RemainingAttempts;
}
BankAccountTypeOutputModel

C#

public class BankAccountTypeOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
}

Java

public class BankAccountTypeOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("description")
    public String Description;
}
BookingCodeOutputModel

C#

public class BookingCodeOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("accountHoldingInstitutionId")]
    public long AccountHoldingInstitutionId { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("bookingCategoryId")]
    public long BookingCategoryId { get; set; }
}

Java

public class BookingCodeOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("accountHoldingInstitutionId")
    public Long AccountHoldingInstitutionId;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("description")
    public String Description;
    @SerializedName("bookingCategoryId")
    public Long BookingCategoryId;
}
BusinessLineOutputModel

C#

public class BusinessLineOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("alternativeName")]
    public string AlternativeName { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
}

Java

public class BusinessLineOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("alternativeName")
    public String AlternativeName;
    @SerializedName("description")
    public String Description;
}
CashAccountMovementOutputModel

C#

public class CashAccountMovementOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("cashAccountId")]
    public long CashAccountId { get; set; }
    [JsonProperty("userPortfolioId")]
    public long UserPortfolioId { get; set; }
    [JsonProperty("bookingDate")]
    public DateTime BookingDate { get; set; }
    [JsonProperty("amount")]
    public decimal Amount { get; set; }
    [JsonProperty("saldo")]
    public decimal Saldo { get; set; }
    [JsonProperty("transactionId")]
    public string TransactionId { get; set; }
    [JsonProperty("bookingCodeId")]
    public long BookingCodeId { get; set; }
    [JsonProperty("bookingCode")]
    public string BookingCode { get; set; }
    [JsonProperty("bookingCodeType")]
    public string BookingCodeType { get; set; }
    [JsonProperty("bookingDescription")]
    public string BookingDescription { get; set; }
    [JsonProperty("isin")]
    public string Isin { get; set; }
    [JsonProperty("isFirstPayment")]
    public bool IsFirstPayment { get; set; }
    [JsonProperty("usetText")]
    public string UsetText { get; set; }
    [JsonProperty("remitter")]
    public string Remitter { get; set; }
    [JsonProperty("remitterAddress")]
    public string RemitterAddress { get; set; }
    [JsonProperty("remitterIban")]
    public string RemitterIban { get; set; }
    [JsonProperty("message")]
    public string Message { get; set; }
    [JsonProperty("reference")]
    public string Reference { get; set; }
    [JsonProperty("unitPrice")]
    public decimal? UnitPrice { get; set; }
    [JsonProperty("quantity")]
    public decimal? Quantity { get; set; }
}

Java

public class CashAccountMovementOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("cashAccountId")
    public Long CashAccountId;
    @SerializedName("userPortfolioId")
    public Long UserPortfolioId;
    @SerializedName("bookingDate")
    public String BookingDate;
    @SerializedName("amount")
    public java.math.BigDecimal Amount;
    @SerializedName("saldo")
    public java.math.BigDecimal Saldo;
    @SerializedName("transactionId")
    public String TransactionId;
    @SerializedName("bookingCodeId")
    public Long BookingCodeId;
    @SerializedName("bookingCode")
    public String BookingCode;
    @SerializedName("bookingCodeType")
    public String BookingCodeType;
    @SerializedName("bookingDescription")
    public String BookingDescription;
    @SerializedName("isin")
    public String Isin;
    @SerializedName("isFirstPayment")
    public Boolean IsFirstPayment;
    @SerializedName("usetText")
    public String UsetText;
    @SerializedName("remitter")
    public String Remitter;
    @SerializedName("remitterAddress")
    public String RemitterAddress;
    @SerializedName("remitterIban")
    public String RemitterIban;
    @SerializedName("message")
    public String Message;
    @SerializedName("reference")
    public String Reference;
    @SerializedName("unitPrice")
    public java.math.BigDecimal UnitPrice;
    @SerializedName("quantity")
    public java.math.BigDecimal Quantity;
}
CashAccountOutputModel

C#

public class CashAccountOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("number")]
    public string Number { get; set; }
    [JsonProperty("iban")]
    public string Iban { get; set; }
    [JsonProperty("balance")]
    public decimal Balance { get; set; }
    [JsonProperty("balanceDate")]
    public DateTime BalanceDate { get; set; }
    [JsonProperty("openingDate")]
    public DateTime OpeningDate { get; set; }
    [JsonProperty("accountTypeId")]
    public long AccountTypeId { get; set; }
    [JsonProperty("currencyId")]
    public long CurrencyId { get; set; }
    [JsonProperty("connectedPortfolioIds")]
    public IList<long> ConnectedPortfolioIds { get; set; }
}

Java

public class CashAccountOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("number")
    public String Number;
    @SerializedName("iban")
    public String Iban;
    @SerializedName("balance")
    public java.math.BigDecimal Balance;
    @SerializedName("balanceDate")
    public String BalanceDate;
    @SerializedName("openingDate")
    public String OpeningDate;
    @SerializedName("accountTypeId")
    public Long AccountTypeId;
    @SerializedName("currencyId")
    public Long CurrencyId;
    @SerializedName("connectedPortfolioIds")
    public List<Long> ConnectedPortfolioIds;
}
CivilStatusOutputModel

C#

public class CivilStatusOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
}

Java

public class CivilStatusOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
}
ClientAddressOutputModel

C#

public class ClientAddressOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("street")]
    public string Street { get; set; }
    [JsonProperty("streetNr")]
    public string StreetNr { get; set; }
    [JsonProperty("zip")]
    public string Zip { get; set; }
    [JsonProperty("city")]
    public string City { get; set; }
    [JsonProperty("countryId")]
    public long CountryId { get; set; }
    [JsonProperty("coName")]
    public string CoName { get; set; }
    [JsonProperty("coSurname")]
    public string CoSurname { get; set; }
}

Java

public class ClientAddressOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("street")
    public String Street;
    @SerializedName("streetNr")
    public String StreetNr;
    @SerializedName("zip")
    public String Zip;
    @SerializedName("city")
    public String City;
    @SerializedName("countryId")
    public Long CountryId;
    @SerializedName("coName")
    public String CoName;
    @SerializedName("coSurname")
    public String CoSurname;
}
ClientAttachmentOutputModel

C#

public class ClientAttachmentOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("reference")]
    public string Reference { get; set; }
    [JsonProperty("fileName")]
    public string FileName { get; set; }
    [JsonProperty("size")]
    public long Size { get; set; }
    [JsonProperty("contentType")]
    public string ContentType { get; set; }
}

Java

public class ClientAttachmentOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("reference")
    public String Reference;
    @SerializedName("fileName")
    public String FileName;
    @SerializedName("size")
    public Long Size;
    @SerializedName("contentType")
    public String ContentType;
}
ClientExternalIdOutputModel

C#

public class ClientExternalIdOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("userId")]
    public long UserId { get; set; }
    [JsonProperty("externalId")]
    public string ExternalId { get; set; }
    [JsonProperty("investmentCategoryId")]
    public long InvestmentCategoryId { get; set; }
    [JsonProperty("accountHoldingInstitutionId")]
    public long AccountHoldingInstitutionId { get; set; }
    [JsonProperty("deleted")]
    public bool Deleted { get; set; }
}

Java

public class ClientExternalIdOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("userId")
    public Long UserId;
    @SerializedName("externalId")
    public String ExternalId;
    @SerializedName("investmentCategoryId")
    public Long InvestmentCategoryId;
    @SerializedName("accountHoldingInstitutionId")
    public Long AccountHoldingInstitutionId;
    @SerializedName("deleted")
    public Boolean Deleted;
}
ClientLegalAcceptanceOutputModel

C#

public class ClientLegalAcceptanceOutputModel
{
    [JsonProperty("userId")]
    public long UserId { get; set; }
    [JsonProperty("legalAcceptanceId")]
    public long LegalAcceptanceId { get; set; }
    [JsonProperty("acceptedDate")]
    public DateTime AcceptedDate { get; set; }
}

Java

public class ClientLegalAcceptanceOutputModel {
    @SerializedName("userId")
    public Long UserId;
    @SerializedName("legalAcceptanceId")
    public Long LegalAcceptanceId;
    @SerializedName("acceptedDate")
    public String AcceptedDate;
}
ClientNationalityOutputModel

C#

public class ClientNationalityOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
}

Java

public class ClientNationalityOutputModel {
    @SerializedName("id")
    public Long Id;
}
ClientNoteOutputModel

C#

public class ClientNoteOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("accountId")]
    public long AccountId { get; set; }
    [JsonProperty("subject")]
    public string Subject { get; set; }
    [JsonProperty("text")]
    public string Text { get; set; }
    [JsonProperty("created")]
    public DateTime Created { get; set; }
    [JsonProperty("createdByUser")]
    public CreatedByUserOutputModel CreatedByUser { get; set; }
    [JsonProperty("attachmentReferences")]
    public ICollection<ClientAttachmentOutputModel> AttachmentReferences { get; set; }
}

Java

public class ClientNoteOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("accountId")
    public Long AccountId;
    @SerializedName("subject")
    public String Subject;
    @SerializedName("text")
    public String Text;
    @SerializedName("created")
    public String Created;
    @SerializedName("createdByUser")
    public CreatedByUserOutputModel CreatedByUser;
    @SerializedName("attachmentReferences")
    public List<ClientAttachmentOutputModel> AttachmentReferences;
}
ClientOutputModel

C#

public class ClientOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("systemUserTypeId")]
    public long? SystemUserTypeId { get; set; }
    [JsonProperty("isHappyPath")]
    public bool IsHappyPath { get; set; }
    [JsonProperty("accountNumber")]
    public string AccountNumber { get; set; }
    [JsonProperty("titleId")]
    public long? TitleId { get; set; }
    [JsonProperty("nickName")]
    public string NickName { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("nickSurname")]
    public string NickSurname { get; set; }
    [JsonProperty("surname")]
    public string Surname { get; set; }
    [JsonProperty("genderId")]
    public long GenderId { get; set; }
    [JsonProperty("roleId")]
    public long RoleId { get; set; }
    [JsonProperty("languageId")]
    public long LanguageId { get; set; }
    [JsonProperty("taxLiabilityId")]
    public long? TaxLiabilityId { get; set; }
    [JsonProperty("civilStatusId")]
    public long? CivilStatusId { get; set; }
    [JsonProperty("civilStatusDate")]
    public DateTime? CivilStatusDate { get; set; }
    [JsonProperty("workSituationId")]
    public long? WorkSituationId { get; set; }
    [JsonProperty("pensionSituationId")]
    public long? PensionSituationId { get; set; }
    [JsonProperty("birthCountryId")]
    public long? BirthCountryId { get; set; }
    [JsonProperty("email")]
    public string Email { get; set; }
    [JsonProperty("phoneNumberPrefix")]
    public string PhoneNumberPrefix { get; set; }
    [JsonProperty("phoneNumberNumber")]
    public string PhoneNumberNumber { get; set; }
    [JsonProperty("birthDate")]
    public DateTime? BirthDate { get; set; }
    [JsonProperty("isDeleted")]
    public bool IsDeleted { get; set; }
    [JsonProperty("deliverTaxStatement")]
    public bool DeliverTaxStatement { get; set; }
    [JsonProperty("created")]
    public DateTime Created { get; set; }
    [JsonProperty("modified")]
    public DateTime? Modified { get; set; }
    [JsonProperty("isLocked")]
    public bool IsLocked { get; set; }
    [JsonProperty("lastLoginOn")]
    public DateTime? LastLoginOn { get; set; }
    [JsonProperty("avatar")]
    public string Avatar { get; set; }
    [JsonProperty("promoCode")]
    public string PromoCode { get; set; }
    [JsonProperty("createdByUser")]
    public CreatedByUserOutputModel CreatedByUser { get; set; }
    [JsonProperty("onBehalfOfId")]
    public long? OnBehalfOfId { get; set; }
    [JsonProperty("uSPerson")]
    public bool? USPerson { get; set; }
    [JsonProperty("usLawBeneficialOwner")]
    public bool? UsLawBeneficialOwner { get; set; }
    [JsonProperty("role")]
    public RoleOutputModel Role { get; set; }
    [JsonProperty("address")]
    public ClientAddressOutputModel Address { get; set; }
    [JsonProperty("externalIds")]
    public IList<ClientExternalIdOutputModel> ExternalIds { get; set; }
    [JsonProperty("nationalities")]
    public IList<ClientNationalityOutputModel> Nationalities { get; set; }
    [JsonProperty("notes")]
    public IList<ClientNoteOutputModel> Notes { get; set; }
    [JsonProperty("politicalExposures")]
    public IList<ClientPoliticalExposureOutputModel> PoliticalExposures { get; set; }
    [JsonProperty("refundBankAccount")]
    public ClientRefundBankAccountOutputModel RefundBankAccount { get; set; }
    [JsonProperty("legalAcceptance")]
    public ClientLegalAcceptanceOutputModel LegalAcceptance { get; set; }
}

Java

public class ClientOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("systemUserTypeId")
    public Long SystemUserTypeId;
    @SerializedName("isHappyPath")
    public Boolean IsHappyPath;
    @SerializedName("accountNumber")
    public String AccountNumber;
    @SerializedName("titleId")
    public Long TitleId;
    @SerializedName("nickName")
    public String NickName;
    @SerializedName("name")
    public String Name;
    @SerializedName("nickSurname")
    public String NickSurname;
    @SerializedName("surname")
    public String Surname;
    @SerializedName("genderId")
    public Long GenderId;
    @SerializedName("roleId")
    public Long RoleId;
    @SerializedName("languageId")
    public Long LanguageId;
    @SerializedName("taxLiabilityId")
    public Long TaxLiabilityId;
    @SerializedName("civilStatusId")
    public Long CivilStatusId;
    @SerializedName("civilStatusDate")
    public String CivilStatusDate;
    @SerializedName("workSituationId")
    public Long WorkSituationId;
    @SerializedName("pensionSituationId")
    public Long PensionSituationId;
    @SerializedName("birthCountryId")
    public Long BirthCountryId;
    @SerializedName("email")
    public String Email;
    @SerializedName("phoneNumberPrefix")
    public String PhoneNumberPrefix;
    @SerializedName("phoneNumberNumber")
    public String PhoneNumberNumber;
    @SerializedName("birthDate")
    public String BirthDate;
    @SerializedName("isDeleted")
    public Boolean IsDeleted;
    @SerializedName("deliverTaxStatement")
    public Boolean DeliverTaxStatement;
    @SerializedName("created")
    public String Created;
    @SerializedName("modified")
    public String Modified;
    @SerializedName("isLocked")
    public Boolean IsLocked;
    @SerializedName("lastLoginOn")
    public String LastLoginOn;
    @SerializedName("avatar")
    public String Avatar;
    @SerializedName("promoCode")
    public String PromoCode;
    @SerializedName("createdByUser")
    public CreatedByUserOutputModel CreatedByUser;
    @SerializedName("onBehalfOfId")
    public Long OnBehalfOfId;
    @SerializedName("uSPerson")
    public Boolean USPerson;
    @SerializedName("usLawBeneficialOwner")
    public Boolean UsLawBeneficialOwner;
    @SerializedName("role")
    public RoleOutputModel Role;
    @SerializedName("address")
    public ClientAddressOutputModel Address;
    @SerializedName("externalIds")
    public List<ClientExternalIdOutputModel> ExternalIds;
    @SerializedName("nationalities")
    public List<ClientNationalityOutputModel> Nationalities;
    @SerializedName("notes")
    public List<ClientNoteOutputModel> Notes;
    @SerializedName("politicalExposures")
    public List<ClientPoliticalExposureOutputModel> PoliticalExposures;
    @SerializedName("refundBankAccount")
    public ClientRefundBankAccountOutputModel RefundBankAccount;
    @SerializedName("legalAcceptance")
    public ClientLegalAcceptanceOutputModel LegalAcceptance;
}
ClientPoliticalExposureOutputModel

C#

public class ClientPoliticalExposureOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("userId")]
    public long UserId { get; set; }
    [JsonProperty("politicalExposureId")]
    public long PoliticalExposureId { get; set; }
    [JsonProperty("selfDescription")]
    public string SelfDescription { get; set; }
}

Java

public class ClientPoliticalExposureOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("userId")
    public Long UserId;
    @SerializedName("politicalExposureId")
    public Long PoliticalExposureId;
    @SerializedName("selfDescription")
    public String SelfDescription;
}
ClientRefundBankAccountOutputModel

C#

public class ClientRefundBankAccountOutputModel
{
    [JsonProperty("bankName")]
    public string BankName { get; set; }
    [JsonProperty("iban")]
    public string Iban { get; set; }
    [JsonProperty("clientName")]
    public string ClientName { get; set; }
    [JsonProperty("clientSurname")]
    public string ClientSurname { get; set; }
    [JsonProperty("clientZipCode")]
    public string ClientZipCode { get; set; }
    [JsonProperty("clientCity")]
    public string ClientCity { get; set; }
    [JsonProperty("clientCountryId")]
    public long? ClientCountryId { get; set; }
}

Java

public class ClientRefundBankAccountOutputModel {
    @SerializedName("bankName")
    public String BankName;
    @SerializedName("iban")
    public String Iban;
    @SerializedName("clientName")
    public String ClientName;
    @SerializedName("clientSurname")
    public String ClientSurname;
    @SerializedName("clientZipCode")
    public String ClientZipCode;
    @SerializedName("clientCity")
    public String ClientCity;
    @SerializedName("clientCountryId")
    public Long ClientCountryId;
}
CountryOutputModel

C#

public class CountryOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("color")]
    public string Color { get; set; }
    [JsonProperty("order")]
    public int Order { get; set; }
    [JsonProperty("phonePrefix")]
    public string PhonePrefix { get; set; }
    [JsonProperty("clientRegistrationSelecteble")]
    public bool ClientRegistrationSelecteble { get; set; }
}

Java

public class CountryOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("color")
    public String Color;
    @SerializedName("order")
    public Integer Order;
    @SerializedName("phonePrefix")
    public String PhonePrefix;
    @SerializedName("clientRegistrationSelecteble")
    public Boolean ClientRegistrationSelecteble;
}
CreatedByUserOutputModel

C#

public class CreatedByUserOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("surname")]
    public string Surname { get; set; }
}

Java

public class CreatedByUserOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("name")
    public String Name;
    @SerializedName("surname")
    public String Surname;
}
GenderOutputModel

C#

public class GenderOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
}

Java

public class GenderOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
}
InvestmentCategoryOutputModel

C#

public class InvestmentCategoryOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("availableOnlyInCountries")]
    public IList<long> AvailableOnlyInCountries { get; set; }
    [JsonProperty("businessLineId")]
    public long BusinessLineId { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("alternativeName")]
    public string AlternativeName { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
}

Java

public class InvestmentCategoryOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("availableOnlyInCountries")
    public List<Long> AvailableOnlyInCountries;
    @SerializedName("businessLineId")
    public Long BusinessLineId;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("alternativeName")
    public String AlternativeName;
    @SerializedName("description")
    public String Description;
}
LanguageOutputModel

C#

public class LanguageOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
}

Java

public class LanguageOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
}
LegalAcceptanceDescriptionOutputModel

C#

public class LegalAcceptanceDescriptionOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("languageId")]
    public long LanguageId { get; set; }
    [JsonProperty("title")]
    public string Title { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
}

Java

public class LegalAcceptanceDescriptionOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("languageId")
    public Long LanguageId;
    @SerializedName("title")
    public String Title;
    @SerializedName("description")
    public String Description;
}
LegalAcceptanceDocumentOutputModel

C#

public class LegalAcceptanceDocumentOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("languageId")]
    public long LanguageId { get; set; }
    [JsonProperty("reference")]
    public string Reference { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("title")]
    public string Title { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("contentType")]
    public string ContentType { get; set; }
    [JsonProperty("fileName")]
    public string FileName { get; set; }
    [JsonProperty("fileSize")]
    public long FileSize { get; set; }
}

Java

public class LegalAcceptanceDocumentOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("languageId")
    public Long LanguageId;
    @SerializedName("reference")
    public String Reference;
    @SerializedName("code")
    public String Code;
    @SerializedName("title")
    public String Title;
    @SerializedName("description")
    public String Description;
    @SerializedName("contentType")
    public String ContentType;
    @SerializedName("fileName")
    public String FileName;
    @SerializedName("fileSize")
    public Long FileSize;
}
LegalAcceptanceOutputModel

C#

public class LegalAcceptanceOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("status")]
    public string Status { get; set; }
    [JsonProperty("modified")]
    public DateTime Modified { get; set; }
    [JsonProperty("systemNote")]
    public string SystemNote { get; set; }
    [JsonProperty("isUpdatable")]
    public bool IsUpdatable { get; set; }
    [JsonProperty("descriptions")]
    public IList<LegalAcceptanceDescriptionOutputModel> Descriptions { get; set; }
    [JsonProperty("documents")]
    public IList<LegalAcceptanceDocumentOutputModel> Documents { get; set; }
}

Java

public class LegalAcceptanceOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("status")
    public String Status;
    @SerializedName("modified")
    public String Modified;
    @SerializedName("systemNote")
    public String SystemNote;
    @SerializedName("isUpdatable")
    public Boolean IsUpdatable;
    @SerializedName("descriptions")
    public List<LegalAcceptanceDescriptionOutputModel> Descriptions;
    @SerializedName("documents")
    public List<LegalAcceptanceDocumentOutputModel> Documents;
}
NationalityOutputModel

C#

public class NationalityOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("order")]
    public int Order { get; set; }
    [JsonProperty("isDeleted")]
    public bool IsDeleted { get; set; }
}

Java

public class NationalityOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("name")
    public String Name;
    @SerializedName("code")
    public String Code;
    @SerializedName("order")
    public Integer Order;
    @SerializedName("isDeleted")
    public Boolean IsDeleted;
}
PensionSituationOutputModel

C#

public class PensionSituationOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
}

Java

public class PensionSituationOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("description")
    public String Description;
}
PortfolioDocumentOrderOutputModel

C#

public class PortfolioDocumentOrderOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("externalId")]
    public string ExternalId { get; set; }
    [JsonProperty("statusId")]
    public long StatusId { get; set; }
    [JsonProperty("resendingPossible")]
    public bool ResendingPossible { get; set; }
    [JsonProperty("orderIdResending")]
    public long? OrderIdResending { get; set; }
    [JsonProperty("reasonForRejection")]
    public string ReasonForRejection { get; set; }
    [JsonProperty("submissionErrorMessage")]
    public string SubmissionErrorMessage { get; set; }
    [JsonProperty("created")]
    public DateTime Created { get; set; }
    [JsonProperty("createdByUserName")]
    public string CreatedByUserName { get; set; }
    [JsonProperty("createdByUserSurname")]
    public string CreatedByUserSurname { get; set; }
}

Java

public class PortfolioDocumentOrderOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("externalId")
    public String ExternalId;
    @SerializedName("statusId")
    public Long StatusId;
    @SerializedName("resendingPossible")
    public Boolean ResendingPossible;
    @SerializedName("orderIdResending")
    public Long OrderIdResending;
    @SerializedName("reasonForRejection")
    public String ReasonForRejection;
    @SerializedName("submissionErrorMessage")
    public String SubmissionErrorMessage;
    @SerializedName("created")
    public String Created;
    @SerializedName("createdByUserName")
    public String CreatedByUserName;
    @SerializedName("createdByUserSurname")
    public String CreatedByUserSurname;
}
PortfolioDocumentOutputModel

C#

public class PortfolioDocumentOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("portfolioDocumentTypeId")]
    public long PortfolioDocumentTypeId { get; set; }
    [JsonProperty("reference")]
    public string Reference { get; set; }
    [JsonProperty("fileName")]
    public string FileName { get; set; }
    [JsonProperty("size")]
    public long Size { get; set; }
    [JsonProperty("contentType")]
    public string ContentType { get; set; }
    [JsonProperty("note")]
    public string Note { get; set; }
    [JsonProperty("created")]
    public DateTime Created { get; set; }
    [JsonProperty("createdByUserName")]
    public string CreatedByUserName { get; set; }
    [JsonProperty("createdByUserSurname")]
    public string CreatedByUserSurname { get; set; }
    [JsonProperty("orders")]
    public IList<PortfolioDocumentOrderOutputModel> Orders { get; set; }
}

Java

public class PortfolioDocumentOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("portfolioDocumentTypeId")
    public Long PortfolioDocumentTypeId;
    @SerializedName("reference")
    public String Reference;
    @SerializedName("fileName")
    public String FileName;
    @SerializedName("size")
    public Long Size;
    @SerializedName("contentType")
    public String ContentType;
    @SerializedName("note")
    public String Note;
    @SerializedName("created")
    public String Created;
    @SerializedName("createdByUserName")
    public String CreatedByUserName;
    @SerializedName("createdByUserSurname")
    public String CreatedByUserSurname;
    @SerializedName("orders")
    public List<PortfolioDocumentOrderOutputModel> Orders;
}
PortfolioExtendedPropertyOutputModel

C#

public class PortfolioExtendedPropertyOutputModel
{
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("value")]
    public string Value { get; set; }
}

Java

public class PortfolioExtendedPropertyOutputModel {
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("description")
    public String Description;
    @SerializedName("value")
    public String Value;
}
PortfolioFundOriginOutputModel

C#

public class PortfolioFundOriginOutputModel
{
    [JsonProperty("fundOriginId")]
    public long FundOriginId { get; set; }
    [JsonProperty("selfDescription")]
    public string SelfDescription { get; set; }
}

Java

public class PortfolioFundOriginOutputModel {
    @SerializedName("fundOriginId")
    public Long FundOriginId;
    @SerializedName("selfDescription")
    public String SelfDescription;
}
PortfolioModelOutputModel

C#

public class PortfolioModelOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
}

Java

public class PortfolioModelOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("description")
    public String Description;
}
PortfolioOrderDetailOutputModel

C#

public class PortfolioOrderDetailOutputModel
{
    [JsonProperty("securityId")]
    public long SecurityId { get; set; }
    [JsonProperty("currencyId")]
    public long CurrencyId { get; set; }
    [JsonProperty("allocation")]
    public decimal Allocation { get; set; }
    [JsonProperty("quantity")]
    public decimal? Quantity { get; set; }
    [JsonProperty("purchasePrice")]
    public decimal? PurchasePrice { get; set; }
    [JsonProperty("currencyExchange")]
    public decimal? CurrencyExchange { get; set; }
    [JsonProperty("averagePrice")]
    public decimal? AveragePrice { get; set; }
    [JsonProperty("closingDate")]
    public DateTime? ClosingDate { get; set; }
}

Java

public class PortfolioOrderDetailOutputModel {
    @SerializedName("securityId")
    public Long SecurityId;
    @SerializedName("currencyId")
    public Long CurrencyId;
    @SerializedName("allocation")
    public java.math.BigDecimal Allocation;
    @SerializedName("quantity")
    public java.math.BigDecimal Quantity;
    @SerializedName("purchasePrice")
    public java.math.BigDecimal PurchasePrice;
    @SerializedName("currencyExchange")
    public java.math.BigDecimal CurrencyExchange;
    @SerializedName("averagePrice")
    public java.math.BigDecimal AveragePrice;
    @SerializedName("closingDate")
    public String ClosingDate;
}
PortfolioOrderDocumentOrderOutputModel

C#

public class PortfolioOrderDocumentOrderOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("externalId")]
    public string ExternalId { get; set; }
    [JsonProperty("created")]
    public DateTime Created { get; set; }
    [JsonProperty("deliveringDate")]
    public DateTime? DeliveringDate { get; set; }
    [JsonProperty("closingDate")]
    public DateTime? ClosingDate { get; set; }
    [JsonProperty("orderStatusId")]
    public long OrderStatusId { get; set; }
    [JsonProperty("orderStatusDate")]
    public DateTime? OrderStatusDate { get; set; }
    [JsonProperty("submissionErrorMessage")]
    public string SubmissionErrorMessage { get; set; }
    [JsonProperty("reasonForRejectionCode")]
    public string ReasonForRejectionCode { get; set; }
    [JsonProperty("reasonForRejection")]
    public string ReasonForRejection { get; set; }
    [JsonProperty("correlationId")]
    public string CorrelationId { get; set; }
    [JsonProperty("resendingPossible")]
    public bool ResendingPossible { get; set; }
    [JsonProperty("orderIdResending")]
    public long? OrderIdResending { get; set; }
    [JsonProperty("orderRawData")]
    public string OrderRawData { get; set; }
    [JsonProperty("createdByUser")]
    public CreatedByUserOutputModel CreatedByUser { get; set; }
}

Java

public class PortfolioOrderDocumentOrderOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("externalId")
    public String ExternalId;
    @SerializedName("created")
    public String Created;
    @SerializedName("deliveringDate")
    public String DeliveringDate;
    @SerializedName("closingDate")
    public String ClosingDate;
    @SerializedName("orderStatusId")
    public Long OrderStatusId;
    @SerializedName("orderStatusDate")
    public String OrderStatusDate;
    @SerializedName("submissionErrorMessage")
    public String SubmissionErrorMessage;
    @SerializedName("reasonForRejectionCode")
    public String ReasonForRejectionCode;
    @SerializedName("reasonForRejection")
    public String ReasonForRejection;
    @SerializedName("correlationId")
    public String CorrelationId;
    @SerializedName("resendingPossible")
    public Boolean ResendingPossible;
    @SerializedName("orderIdResending")
    public Long OrderIdResending;
    @SerializedName("orderRawData")
    public String OrderRawData;
    @SerializedName("createdByUser")
    public CreatedByUserOutputModel CreatedByUser;
}
PortfolioOrderDocumentOutputModel

C#

public class PortfolioOrderDocumentOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("orderId")]
    public long OrderId { get; set; }
    [JsonProperty("documentType")]
    public string DocumentType { get; set; }
    [JsonProperty("contentType")]
    public string ContentType { get; set; }
    [JsonProperty("reference")]
    public string Reference { get; set; }
    [JsonProperty("size")]
    public long Size { get; set; }
    [JsonProperty("portfolioOrderDocumentTypeCode")]
    public string PortfolioOrderDocumentTypeCode { get; set; }
    [JsonProperty("orders")]
    public IList<PortfolioOrderDocumentOrderOutputModel> Orders { get; set; }
}

Java

public class PortfolioOrderDocumentOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("orderId")
    public Long OrderId;
    @SerializedName("documentType")
    public String DocumentType;
    @SerializedName("contentType")
    public String ContentType;
    @SerializedName("reference")
    public String Reference;
    @SerializedName("size")
    public Long Size;
    @SerializedName("portfolioOrderDocumentTypeCode")
    public String PortfolioOrderDocumentTypeCode;
    @SerializedName("orders")
    public List<PortfolioOrderDocumentOrderOutputModel> Orders;
}
PortfolioOrderExtendedPropertyOutputModel

C#

public class PortfolioOrderExtendedPropertyOutputModel
{
    [JsonProperty("userPortfolioOrderId")]
    public long UserPortfolioOrderId { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("value")]
    public string Value { get; set; }
}

Java

public class PortfolioOrderExtendedPropertyOutputModel {
    @SerializedName("userPortfolioOrderId")
    public Long UserPortfolioOrderId;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("description")
    public String Description;
    @SerializedName("value")
    public String Value;
}
PortfolioOrderOutputModel

C#

public class PortfolioOrderOutputModel
{
    [JsonProperty("portfolioId")]
    public long PortfolioId { get; set; }
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("externalId")]
    public string ExternalId { get; set; }
    [JsonProperty("proposalId")]
    public long ProposalId { get; set; }
    [JsonProperty("created")]
    public DateTime Created { get; set; }
    [JsonProperty("deliveringDate")]
    public DateTime? DeliveringDate { get; set; }
    [JsonProperty("closingDate")]
    public DateTime? ClosingDate { get; set; }
    [JsonProperty("orderStatusId")]
    public long OrderStatusId { get; set; }
    [JsonProperty("orderStatusDate")]
    public DateTime? OrderStatusDate { get; set; }
    [JsonProperty("orderTypeId")]
    public long OrderTypeId { get; set; }
    [JsonProperty("orderIdToFixOrRevoke")]
    public long? OrderIdToFixOrRevoke { get; set; }
    [JsonProperty("submissionErrorMessage")]
    public string SubmissionErrorMessage { get; set; }
    [JsonProperty("reasonForRejectionCode")]
    public string ReasonForRejectionCode { get; set; }
    [JsonProperty("reasonForRejection")]
    public string ReasonForRejection { get; set; }
    [JsonProperty("correlationId")]
    public string CorrelationId { get; set; }
    [JsonProperty("resendingPossible")]
    public bool ResendingPossible { get; set; }
    [JsonProperty("userPortfolioOrderIdResending")]
    public long? UserPortfolioOrderIdResending { get; set; }
    [JsonProperty("orderRawData")]
    public string OrderRawData { get; set; }
    [JsonProperty("scheduledRecurringOrderId")]
    public long? ScheduledRecurringOrderId { get; set; }
    [JsonProperty("createdByUser")]
    public CreatedByUserOutputModel CreatedByUser { get; set; }
    [JsonProperty("portfolioOrderReasonToChangeProposal")]
    public PortfolioOrderReasonToChangeProposalOutModel PortfolioOrderReasonToChangeProposal { get; set; }
    [JsonProperty("extendedProperties")]
    public ICollection<PortfolioOrderExtendedPropertyOutputModel> ExtendedProperties { get; set; }
    [JsonProperty("documents")]
    public ICollection<PortfolioOrderDocumentOutputModel> Documents { get; set; }
    [JsonProperty("details")]
    public ICollection<PortfolioOrderDetailOutputModel> Details { get; set; }
}

Java

public class PortfolioOrderOutputModel {
    @SerializedName("portfolioId")
    public Long PortfolioId;
    @SerializedName("id")
    public Long Id;
    @SerializedName("externalId")
    public String ExternalId;
    @SerializedName("proposalId")
    public Long ProposalId;
    @SerializedName("created")
    public String Created;
    @SerializedName("deliveringDate")
    public String DeliveringDate;
    @SerializedName("closingDate")
    public String ClosingDate;
    @SerializedName("orderStatusId")
    public Long OrderStatusId;
    @SerializedName("orderStatusDate")
    public String OrderStatusDate;
    @SerializedName("orderTypeId")
    public Long OrderTypeId;
    @SerializedName("orderIdToFixOrRevoke")
    public Long OrderIdToFixOrRevoke;
    @SerializedName("submissionErrorMessage")
    public String SubmissionErrorMessage;
    @SerializedName("reasonForRejectionCode")
    public String ReasonForRejectionCode;
    @SerializedName("reasonForRejection")
    public String ReasonForRejection;
    @SerializedName("correlationId")
    public String CorrelationId;
    @SerializedName("resendingPossible")
    public Boolean ResendingPossible;
    @SerializedName("userPortfolioOrderIdResending")
    public Long UserPortfolioOrderIdResending;
    @SerializedName("orderRawData")
    public String OrderRawData;
    @SerializedName("scheduledRecurringOrderId")
    public Long ScheduledRecurringOrderId;
    @SerializedName("createdByUser")
    public CreatedByUserOutputModel CreatedByUser;
    @SerializedName("portfolioOrderReasonToChangeProposal")
    public PortfolioOrderReasonToChangeProposalOutModel PortfolioOrderReasonToChangeProposal;
    @SerializedName("extendedProperties")
    public List<PortfolioOrderExtendedPropertyOutputModel> ExtendedProperties;
    @SerializedName("documents")
    public List<PortfolioOrderDocumentOutputModel> Documents;
    @SerializedName("details")
    public List<PortfolioOrderDetailOutputModel> Details;
}
PortfolioOrderReasonToChangeProposalOutModel

C#

public class PortfolioOrderReasonToChangeProposalOutModel
{
    [JsonProperty("reasonToChangeProposalId")]
    public long ReasonToChangeProposalId { get; set; }
    [JsonProperty("responseIds")]
    public IList<long> ResponseIds { get; set; }
}

Java

public class PortfolioOrderReasonToChangeProposalOutModel {
    @SerializedName("reasonToChangeProposalId")
    public Long ReasonToChangeProposalId;
    @SerializedName("responseIds")
    public List<Long> ResponseIds;
}
PortfolioOutputModel

C#

public class PortfolioOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("externalId")]
    public string ExternalId { get; set; }
    [JsonProperty("accountHoldingInstitutionId")]
    public long AccountHoldingInstitutionId { get; set; }
    [JsonProperty("investmentCategoryId")]
    public long InvestmentCategoryId { get; set; }
    [JsonProperty("userId")]
    public long UserId { get; set; }
    [JsonProperty("proposalId")]
    public long ProposalId { get; set; }
    [JsonProperty("depositNumber")]
    public string DepositNumber { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("systemName")]
    public string SystemName { get; set; }
    [JsonProperty("currencyId")]
    public long CurrencyId { get; set; }
    [JsonProperty("color")]
    public string Color { get; set; }
    [JsonProperty("isTrading")]
    public bool IsTrading { get; set; }
    [JsonProperty("hasPendingOrder")]
    public bool HasPendingOrder { get; set; }
    [JsonProperty("lastOrderStatusId")]
    public long LastOrderStatusId { get; set; }
    [JsonProperty("statusId")]
    public long StatusId { get; set; }
    [JsonProperty("creationDate")]
    public DateTime CreationDate { get; set; }
    [JsonProperty("acceptanceDate")]
    public DateTime? AcceptanceDate { get; set; }
    [JsonProperty("closingRequestDate")]
    public DateTime? ClosingRequestDate { get; set; }
    [JsonProperty("inClosingSinceDate")]
    public DateTime? InClosingSinceDate { get; set; }
    [JsonProperty("closingDate")]
    public DateTime? ClosingDate { get; set; }
    [JsonProperty("isDeleted")]
    public bool IsDeleted { get; set; }
    [JsonProperty("investedAmount")]
    public decimal? InvestedAmount { get; set; }
    [JsonProperty("total")]
    public decimal? Total { get; set; }
    [JsonProperty("marketValue")]
    public decimal? MarketValue { get; set; }
    [JsonProperty("profitOrLost")]
    public decimal? ProfitOrLost { get; set; }
    [JsonProperty("performanceSinceInception")]
    public decimal? PerformanceSinceInception { get; set; }
    [JsonProperty("performanceYearToDate")]
    public decimal? PerformanceYearToDate { get; set; }
    [JsonProperty("portfolioValueDate")]
    public DateTime? PortfolioValueDate { get; set; }
    [JsonProperty("correlationId")]
    public string CorrelationId { get; set; }
    [JsonProperty("iban")]
    public string Iban { get; set; }
    [JsonProperty("userExternalIdId")]
    public long? UserExternalIdId { get; set; }
    [JsonProperty("fee")]
    public decimal Fee { get; set; }
    [JsonProperty("extendedProperties")]
    public IList<PortfolioExtendedPropertyOutputModel> ExtendedProperties { get; set; }
    [JsonProperty("positions")]
    public IList<PortfolioPositionOutputModel> Positions { get; set; }
    [JsonProperty("orders")]
    public IList<PortfolioOrderOutputModel> Orders { get; set; }
    [JsonProperty("fundOrigins")]
    public IList<PortfolioFundOriginOutputModel> FundOrigins { get; set; }
    [JsonProperty("documents")]
    public IList<PortfolioDocumentOutputModel> Documents { get; set; }
}

Java

public class PortfolioOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("externalId")
    public String ExternalId;
    @SerializedName("accountHoldingInstitutionId")
    public Long AccountHoldingInstitutionId;
    @SerializedName("investmentCategoryId")
    public Long InvestmentCategoryId;
    @SerializedName("userId")
    public Long UserId;
    @SerializedName("proposalId")
    public Long ProposalId;
    @SerializedName("depositNumber")
    public String DepositNumber;
    @SerializedName("name")
    public String Name;
    @SerializedName("systemName")
    public String SystemName;
    @SerializedName("currencyId")
    public Long CurrencyId;
    @SerializedName("color")
    public String Color;
    @SerializedName("isTrading")
    public Boolean IsTrading;
    @SerializedName("hasPendingOrder")
    public Boolean HasPendingOrder;
    @SerializedName("lastOrderStatusId")
    public Long LastOrderStatusId;
    @SerializedName("statusId")
    public Long StatusId;
    @SerializedName("creationDate")
    public String CreationDate;
    @SerializedName("acceptanceDate")
    public String AcceptanceDate;
    @SerializedName("closingRequestDate")
    public String ClosingRequestDate;
    @SerializedName("inClosingSinceDate")
    public String InClosingSinceDate;
    @SerializedName("closingDate")
    public String ClosingDate;
    @SerializedName("isDeleted")
    public Boolean IsDeleted;
    @SerializedName("investedAmount")
    public java.math.BigDecimal InvestedAmount;
    @SerializedName("total")
    public java.math.BigDecimal Total;
    @SerializedName("marketValue")
    public java.math.BigDecimal MarketValue;
    @SerializedName("profitOrLost")
    public java.math.BigDecimal ProfitOrLost;
    @SerializedName("performanceSinceInception")
    public java.math.BigDecimal PerformanceSinceInception;
    @SerializedName("performanceYearToDate")
    public java.math.BigDecimal PerformanceYearToDate;
    @SerializedName("portfolioValueDate")
    public String PortfolioValueDate;
    @SerializedName("correlationId")
    public String CorrelationId;
    @SerializedName("iban")
    public String Iban;
    @SerializedName("userExternalIdId")
    public Long UserExternalIdId;
    @SerializedName("fee")
    public java.math.BigDecimal Fee;
    @SerializedName("extendedProperties")
    public List<PortfolioExtendedPropertyOutputModel> ExtendedProperties;
    @SerializedName("positions")
    public List<PortfolioPositionOutputModel> Positions;
    @SerializedName("orders")
    public List<PortfolioOrderOutputModel> Orders;
    @SerializedName("fundOrigins")
    public List<PortfolioFundOriginOutputModel> FundOrigins;
    @SerializedName("documents")
    public List<PortfolioDocumentOutputModel> Documents;
}
PortfolioPositionOutputModel

C#

public class PortfolioPositionOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("allocation")]
    public decimal Allocation { get; set; }
    [JsonProperty("quantity")]
    public decimal Quantity { get; set; }
    [JsonProperty("price")]
    public decimal Price { get; set; }
    [JsonProperty("priceInChf")]
    public decimal PriceInChf { get; set; }
    [JsonProperty("performance")]
    public decimal Performance { get; set; }
    [JsonProperty("date")]
    public DateTime Date { get; set; }
    [JsonProperty("currencyId")]
    public long CurrencyId { get; set; }
    [JsonProperty("securityId")]
    public long SecurityId { get; set; }
}

Java

public class PortfolioPositionOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("allocation")
    public java.math.BigDecimal Allocation;
    @SerializedName("quantity")
    public java.math.BigDecimal Quantity;
    @SerializedName("price")
    public java.math.BigDecimal Price;
    @SerializedName("priceInChf")
    public java.math.BigDecimal PriceInChf;
    @SerializedName("performance")
    public java.math.BigDecimal Performance;
    @SerializedName("date")
    public String Date;
    @SerializedName("currencyId")
    public Long CurrencyId;
    @SerializedName("securityId")
    public Long SecurityId;
}
PortfolioValueOutputModel

C#

public class PortfolioValueOutputModel
{
    [JsonProperty("date")]
    public DateTime Date { get; set; }
    [JsonProperty("performanceSinceInception")]
    public decimal PerformanceSinceInception { get; set; }
    [JsonProperty("performanceYearToDate")]
    public decimal PerformanceYearToDate { get; set; }
    [JsonProperty("profitOrLost")]
    public decimal ProfitOrLost { get; set; }
    [JsonProperty("portfolioMarketValue")]
    public decimal PortfolioMarketValue { get; set; }
    [JsonProperty("cashAmount")]
    public decimal CashAmount { get; set; }
    [JsonProperty("portfolioTotalAssets")]
    public decimal PortfolioTotalAssets { get; set; }
}

Java

public class PortfolioValueOutputModel {
    @SerializedName("date")
    public String Date;
    @SerializedName("performanceSinceInception")
    public java.math.BigDecimal PerformanceSinceInception;
    @SerializedName("performanceYearToDate")
    public java.math.BigDecimal PerformanceYearToDate;
    @SerializedName("profitOrLost")
    public java.math.BigDecimal ProfitOrLost;
    @SerializedName("portfolioMarketValue")
    public java.math.BigDecimal PortfolioMarketValue;
    @SerializedName("cashAmount")
    public java.math.BigDecimal CashAmount;
    @SerializedName("portfolioTotalAssets")
    public java.math.BigDecimal PortfolioTotalAssets;
}
PortfolioValuesContainerOutputModel

C#

public class PortfolioValuesContainerOutputModel
{
    [JsonProperty("portfolioId")]
    public long PortfolioId { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("color")]
    public string Color { get; set; }
    [JsonProperty("values")]
    public IList<PortfolioValueOutputModel> Values { get; set; }
}

Java

public class PortfolioValuesContainerOutputModel {
    @SerializedName("portfolioId")
    public Long PortfolioId;
    @SerializedName("name")
    public String Name;
    @SerializedName("color")
    public String Color;
    @SerializedName("values")
    public List<PortfolioValueOutputModel> Values;
}
ProposalManagementCostOutputModel

C#

public class ProposalManagementCostOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("proposalId")]
    public long ProposalId { get; set; }
    [JsonProperty("accountHoldingInstitutionId")]
    public long AccountHoldingInstitutionId { get; set; }
    [JsonProperty("investmentCategoryId")]
    public long InvestmentCategoryId { get; set; }
    [JsonProperty("upTo")]
    public decimal UpTo { get; set; }
    [JsonProperty("cost")]
    public decimal Cost { get; set; }
}

Java

public class ProposalManagementCostOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("proposalId")
    public Long ProposalId;
    @SerializedName("accountHoldingInstitutionId")
    public Long AccountHoldingInstitutionId;
    @SerializedName("investmentCategoryId")
    public Long InvestmentCategoryId;
    @SerializedName("upTo")
    public java.math.BigDecimal UpTo;
    @SerializedName("cost")
    public java.math.BigDecimal Cost;
}
ProposalOutputModel

C#

public class ProposalOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("investmentCategoryIds")]
    public IList<long> InvestmentCategoryIds { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("color")]
    public string Color { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("riskCategorizationId")]
    public long RiskCategorizationId { get; set; }
    [JsonProperty("isDeleted")]
    public bool IsDeleted { get; set; }
    [JsonProperty("order")]
    public int Order { get; set; }
    [JsonProperty("volatility")]
    public decimal Volatility { get; set; }
    [JsonProperty("expectedReturn")]
    public decimal ExpectedReturn { get; set; }
    [JsonProperty("sharpeRatio")]
    public decimal? SharpeRatio { get; set; }
    [JsonProperty("eSGScore")]
    public decimal? ESGScore { get; set; }
    [JsonProperty("eSGRating")]
    public string ESGRating { get; set; }
    [JsonProperty("cO2Intensity")]
    public decimal? CO2Intensity { get; set; }
    [JsonProperty("probabilityGain")]
    public decimal? ProbabilityGain { get; set; }
    [JsonProperty("probabilityLoss")]
    public decimal? ProbabilityLoss { get; set; }
    [JsonProperty("portfolioModel")]
    public PortfolioModelOutputModel PortfolioModel { get; set; }
    [JsonProperty("positions")]
    public IList<ProposalPositionOutputModel> Positions { get; set; }
    [JsonProperty("proposalManagementCosts")]
    public IList<ProposalManagementCostOutputModel> ProposalManagementCosts { get; set; }
}

Java

public class ProposalOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("investmentCategoryIds")
    public List<Long> InvestmentCategoryIds;
    @SerializedName("name")
    public String Name;
    @SerializedName("description")
    public String Description;
    @SerializedName("color")
    public String Color;
    @SerializedName("code")
    public String Code;
    @SerializedName("riskCategorizationId")
    public Long RiskCategorizationId;
    @SerializedName("isDeleted")
    public Boolean IsDeleted;
    @SerializedName("order")
    public Integer Order;
    @SerializedName("volatility")
    public java.math.BigDecimal Volatility;
    @SerializedName("expectedReturn")
    public java.math.BigDecimal ExpectedReturn;
    @SerializedName("sharpeRatio")
    public java.math.BigDecimal SharpeRatio;
    @SerializedName("eSGScore")
    public java.math.BigDecimal ESGScore;
    @SerializedName("eSGRating")
    public String ESGRating;
    @SerializedName("cO2Intensity")
    public java.math.BigDecimal CO2Intensity;
    @SerializedName("probabilityGain")
    public java.math.BigDecimal ProbabilityGain;
    @SerializedName("probabilityLoss")
    public java.math.BigDecimal ProbabilityLoss;
    @SerializedName("portfolioModel")
    public PortfolioModelOutputModel PortfolioModel;
    @SerializedName("positions")
    public List<ProposalPositionOutputModel> Positions;
    @SerializedName("proposalManagementCosts")
    public List<ProposalManagementCostOutputModel> ProposalManagementCosts;
}
ProposalPositionOutputModel

C#

public class ProposalPositionOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("allocation")]
    public decimal Allocation { get; set; }
    [JsonProperty("price")]
    public decimal? Price { get; set; }
    [JsonProperty("priceDate")]
    public DateTime? PriceDate { get; set; }
    [JsonProperty("currencyId")]
    public long CurrencyId { get; set; }
    [JsonProperty("securityId")]
    public long SecurityId { get; set; }
    [JsonProperty("order")]
    public long Order { get; set; }
}

Java

public class ProposalPositionOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("allocation")
    public java.math.BigDecimal Allocation;
    @SerializedName("price")
    public java.math.BigDecimal Price;
    @SerializedName("priceDate")
    public String PriceDate;
    @SerializedName("currencyId")
    public Long CurrencyId;
    @SerializedName("securityId")
    public Long SecurityId;
    @SerializedName("order")
    public Long Order;
}
QuestionnaireOutputModel

C#

public class QuestionnaireOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("businessLineIds")]
    public IList<long> BusinessLineIds { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("isDeleted")]
    public bool IsDeleted { get; set; }
    [JsonProperty("sections")]
    public IList<QuestionnaireSectionOutputModel> Sections { get; set; }
}

Java

public class QuestionnaireOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("businessLineIds")
    public List<Long> BusinessLineIds;
    @SerializedName("code")
    public String Code;
    @SerializedName("description")
    public String Description;
    @SerializedName("isDeleted")
    public Boolean IsDeleted;
    @SerializedName("sections")
    public List<QuestionnaireSectionOutputModel> Sections;
}
QuestionnaireQuestionOutputModel

C#

public class QuestionnaireQuestionOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("order")]
    public int Order { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("responses")]
    public IList<QuestionnaireResponseOutputModel> Responses { get; set; }
}

Java

public class QuestionnaireQuestionOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("description")
    public String Description;
    @SerializedName("order")
    public Integer Order;
    @SerializedName("code")
    public String Code;
    @SerializedName("responses")
    public List<QuestionnaireResponseOutputModel> Responses;
}
QuestionnaireResponseOutputModel

C#

public class QuestionnaireResponseOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("score")]
    public decimal Score { get; set; }
    [JsonProperty("order")]
    public int Order { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("minValue")]
    public decimal? MinValue { get; set; }
    [JsonProperty("maxValue")]
    public decimal? MaxValue { get; set; }
}

Java

public class QuestionnaireResponseOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("description")
    public String Description;
    @SerializedName("score")
    public java.math.BigDecimal Score;
    @SerializedName("order")
    public Integer Order;
    @SerializedName("code")
    public String Code;
    @SerializedName("minValue")
    public java.math.BigDecimal MinValue;
    @SerializedName("maxValue")
    public java.math.BigDecimal MaxValue;
}
QuestionnaireSectionOutputModel

C#

public class QuestionnaireSectionOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("order")]
    public int Order { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("questions")]
    public IList<QuestionnaireQuestionOutputModel> Questions { get; set; }
}

Java

public class QuestionnaireSectionOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("description")
    public String Description;
    @SerializedName("order")
    public Integer Order;
    @SerializedName("code")
    public String Code;
    @SerializedName("questions")
    public List<QuestionnaireQuestionOutputModel> Questions;
}
ReasonToChangeProposalOutputModel

C#

public class ReasonToChangeProposalOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("isDeleted")]
    public bool IsDeleted { get; set; }
    [JsonProperty("responses")]
    public IList<ReasonToChangeProposalResponseOutputModel> Responses { get; set; }
}

Java

public class ReasonToChangeProposalOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("isDeleted")
    public Boolean IsDeleted;
    @SerializedName("responses")
    public List<ReasonToChangeProposalResponseOutputModel> Responses;
}
ReasonToChangeProposalResponseOutputModel

C#

public class ReasonToChangeProposalResponseOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("order")]
    public int Order { get; set; }
}

Java

public class ReasonToChangeProposalResponseOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("description")
    public String Description;
    @SerializedName("order")
    public Integer Order;
}
RegistrationFirstFactorOutputModel

C#

public class RegistrationFirstFactorOutputModel
{
    [JsonProperty("accountNumber")]
    public string AccountNumber { get; set; }
    [JsonProperty("validUntil")]
    public DateTime ValidUntil { get; set; }
    [JsonProperty("token")]
    public string Token { get; set; }
}

Java

public class RegistrationFirstFactorOutputModel {
    @SerializedName("accountNumber")
    public String AccountNumber;
    @SerializedName("validUntil")
    public String ValidUntil;
    @SerializedName("token")
    public String Token;
}
RegistrationSecondFactorOutputModel

C#

public class RegistrationSecondFactorOutputModel
{
    [JsonProperty("accountNumber")]
    public string AccountNumber { get; set; }
    [JsonProperty("validUntil")]
    public DateTime ValidUntil { get; set; }
    [JsonProperty("token")]
    public string Token { get; set; }
}

Java

public class RegistrationSecondFactorOutputModel {
    @SerializedName("accountNumber")
    public String AccountNumber;
    @SerializedName("validUntil")
    public String ValidUntil;
    @SerializedName("token")
    public String Token;
}
RegistrationThirdFactorOutputModel

C#

public class RegistrationThirdFactorOutputModel
{
    [JsonProperty("userId")]
    public long UserId { get; set; }
    [JsonProperty("accountNumber")]
    public string AccountNumber { get; set; }
    [JsonProperty("accessToken")]
    public string AccessToken { get; set; }
    [JsonProperty("validUntil")]
    public DateTime ValidUntil { get; set; }
    [JsonProperty("refreshToken")]
    public string RefreshToken { get; set; }
}

Java

public class RegistrationThirdFactorOutputModel {
    @SerializedName("userId")
    public Long UserId;
    @SerializedName("accountNumber")
    public String AccountNumber;
    @SerializedName("accessToken")
    public String AccessToken;
    @SerializedName("validUntil")
    public String ValidUntil;
    @SerializedName("refreshToken")
    public String RefreshToken;
}
RiskCategorizationOutputModel

C#

public class RiskCategorizationOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("businessLineIds")]
    public IList<long> BusinessLineIds { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("profileName")]
    public string ProfileName { get; set; }
    [JsonProperty("profileDescription")]
    public string ProfileDescription { get; set; }
    [JsonProperty("strategyName")]
    public string StrategyName { get; set; }
    [JsonProperty("strategyDescription")]
    public string StrategyDescription { get; set; }
    [JsonProperty("timeHorizon")]
    public int TimeHorizon { get; set; }
    [JsonProperty("timeHorizonDescription")]
    public string TimeHorizonDescription { get; set; }
    [JsonProperty("riskyAssets")]
    public int RiskyAssets { get; set; }
    [JsonProperty("lessRiskyAssets")]
    public int LessRiskyAssets { get; set; }
    [JsonProperty("alternativeNickName")]
    public string AlternativeNickName { get; set; }
    [JsonProperty("alternativeName")]
    public string AlternativeName { get; set; }
    [JsonProperty("alternativeDescription")]
    public string AlternativeDescription { get; set; }
}

Java

public class RiskCategorizationOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("businessLineIds")
    public List<Long> BusinessLineIds;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("description")
    public String Description;
    @SerializedName("profileName")
    public String ProfileName;
    @SerializedName("profileDescription")
    public String ProfileDescription;
    @SerializedName("strategyName")
    public String StrategyName;
    @SerializedName("strategyDescription")
    public String StrategyDescription;
    @SerializedName("timeHorizon")
    public Integer TimeHorizon;
    @SerializedName("timeHorizonDescription")
    public String TimeHorizonDescription;
    @SerializedName("riskyAssets")
    public Integer RiskyAssets;
    @SerializedName("lessRiskyAssets")
    public Integer LessRiskyAssets;
    @SerializedName("alternativeNickName")
    public String AlternativeNickName;
    @SerializedName("alternativeName")
    public String AlternativeName;
    @SerializedName("alternativeDescription")
    public String AlternativeDescription;
}
RoleOutputModel

C#

public class RoleOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
}

Java

public class RoleOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("description")
    public String Description;
}
SystemOccurrenceOutputModel

C#

public class SystemOccurrenceOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("systemOccurrenceCategoryId")]
    public long SystemOccurrenceCategoryId { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
}

Java

public class SystemOccurrenceOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("systemOccurrenceCategoryId")
    public Long SystemOccurrenceCategoryId;
    @SerializedName("code")
    public String Code;
    @SerializedName("name")
    public String Name;
    @SerializedName("description")
    public String Description;
}
SystemOccurrencePreferenceInputModel

C#

public class SystemOccurrencePreferenceInputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("isEmailEnabled")]
    public bool IsEmailEnabled { get; set; }
    [JsonProperty("isSmsEnabled")]
    public bool IsSmsEnabled { get; set; }
    [JsonProperty("isHttpEnabled")]
    public bool IsHttpEnabled { get; set; }
}

Java

public class SystemOccurrencePreferenceInputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("isEmailEnabled")
    public Boolean IsEmailEnabled;
    @SerializedName("isSmsEnabled")
    public Boolean IsSmsEnabled;
    @SerializedName("isHttpEnabled")
    public Boolean IsHttpEnabled;
}
TaxLiabilityOutputModel

C#

public class TaxLiabilityOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("code")]
    public string Code { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
}

Java

public class TaxLiabilityOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("code")
    public String Code;
    @SerializedName("description")
    public String Description;
}
UserBankDocumentInfoOutputModel

C#

public class UserBankDocumentInfoOutputModel
{
    [JsonProperty("id")]
    public long Id { get; set; }
    [JsonProperty("userPortfolioId")]
    public long UserPortfolioId { get; set; }
    [JsonProperty("documentTypeId")]
    public long DocumentTypeId { get; set; }
    [JsonProperty("documentTypeCode")]
    public string DocumentTypeCode { get; set; }
    [JsonProperty("description")]
    public string Description { get; set; }
    [JsonProperty("reference")]
    public string Reference { get; set; }
    [JsonProperty("created")]
    public DateTime Created { get; set; }
    [JsonProperty("viewed")]
    public DateTime? Viewed { get; set; }
    [JsonProperty("downloaded")]
    public DateTime Downloaded { get; set; }
}

Java

public class UserBankDocumentInfoOutputModel {
    @SerializedName("id")
    public Long Id;
    @SerializedName("userPortfolioId")
    public Long UserPortfolioId;
    @SerializedName("documentTypeId")
    public Long DocumentTypeId;
    @SerializedName("documentTypeCode")
    public String DocumentTypeCode;
    @SerializedName("description")
    public String Description;
    @SerializedName("reference")
    public String Reference;
    @SerializedName("created")
    public String Created;
    @SerializedName("viewed")
    public String Viewed;
    @SerializedName("downloaded")
    public String Downloaded;
}
ValidationErrorModel

C#

public class ValidationErrorModel
{
    [JsonProperty("traceIdentifier")]
    public string TraceIdentifier { get; set; }
    [JsonProperty("errorCode")]
    public string ErrorCode { get; set; }
    [JsonProperty("message")]
    public string Message { get; set; }
    [JsonProperty("stackTrace")]
    public string StackTrace { get; set; }
    [JsonProperty("validationErrors")]
    public IDictionary<string,IList<ValidationResultEntryModel>> ValidationErrors { get; set; }
}

Java

public class ValidationErrorModel {
    @SerializedName("traceIdentifier")
    public String TraceIdentifier;
    @SerializedName("errorCode")
    public String ErrorCode;
    @SerializedName("message")
    public String Message;
    @SerializedName("stackTrace")
    public String StackTrace;
    @SerializedName("validationErrors")
    public Map<String, List<ValidationResultEntryModel>> ValidationErrors;
}
ValidationResultEntryModel

C#

public class ValidationResultEntryModel
{
    [JsonProperty("validationErrorCode")]
    public string ValidationErrorCode { get; set; }
    [JsonProperty("validationErrorMessage")]
    public string ValidationErrorMessage { get; set; }
}

Java

public class ValidationResultEntryModel {
    @SerializedName("validationErrorCode")
    public String ValidationErrorCode;
    @SerializedName("validationErrorMessage")
    public String ValidationErrorMessage;
}

Error handling

API errors conform to IETF Internet standards and are returned as HTTP response status codes. To help you understand the reason for the error, the API also returns a payload containing detailed information about the problem.

The examples below illustrate common response shapes. Inspect the status code before decoding a success DTO; the payload may be empty or have a different shape for middleware errors.
The error-code catalogue is available at api/v1/system/error-codes.

Authentication errors

Example error payload; authentication responses may also omit the body:
							
{
	"ErrorCode": "string",
	"Message": "string",
	"RemainingAttempts": 2
}

Bad Request

Example HTTP 400 validation payload:
								
{
  "ErrorCode": "VALIDATION-ERRORS",
  "Message": "Request contains invalid fields.",
  "ValidationErrors": {
    "Name": [
      {"ValidationErrorCode": "INVALID-FIELD", "ValidationErrorMessage": "Name is too short"}
    ]
  }
}

ValidationErrors can be null when a request fails a general check rather than field validation. For example, a generic validation error may have this payload:
								
{
  "ErrorCode": "string",
  "Message": "string",
  "ValidationErrors": null
}

Example 1: Payload validation
The following administrative registration request is deliberately incomplete and has an invalid short Name. The exact error messages depend on the endpoint and language:
										
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", adminToken);
var payload = JsonConvert.SerializeObject(new { Name = "A", Surname = "Example" });
using var response = await httpClient.PostAsync("api/v1/users", new StringContent(payload, Encoding.UTF8, "application/json"));
if (response.StatusCode == HttpStatusCode.BadRequest)
{
    var errorContent = await response.Content.ReadAsStringAsync();
    var error = JsonConvert.DeserializeObject<ValidationErrorModel>(errorContent);
// Present the errors to the caller; do not decode a ClientOutputModel.
}
else
{
    response.EnsureSuccessStatusCode();
}

										
JsonObject payload = new JsonObject();
payload.addProperty("Name", "A");
payload.addProperty("Surname", "Example");

HttpRequest request = HttpRequest.newBuilder()
    .timeout(Duration.ofMinutes(1))
    .uri(Settings.wmsUri("users"))
    .header("Accept-Language", "de-DE")
    .header("Authorization", "Bearer " + Settings.ADMIN_TOKEN)
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(payload.toString()))
    .build();

var response = httpClient.send(request, BodyHandlers.ofString());

if (response.statusCode() == 400) {
    // Handle the error without logging personal data or tokens.

    ValidationErrorModel errorsObj = new Gson().fromJson(response.body(), ValidationErrorModel.class);
    // Present field errors to the caller.
} else {
    Api.requireSuccess(response);
}

The request returns HTTP 400. The following payload illustrates the shape; the actual fields and messages depend on validation and Accept-Language:
							
{
	"ErrorCode":"VALIDATION-ERRORS",
	"Message":"Request contains one or more invalid fields.",
	"ValidationErrors":
	{
	  "GenderId":[{"ValidationErrorCode":"INVALID-FIELD","ValidationErrorMessage":"Gender ID is mandatory"}],
	  "Name":[{"ValidationErrorCode":"INVALID-FIELD","ValidationErrorMessage":"Customer name is too short"}],
	  "Surname":[{"ValidationErrorCode":"INVALID-FIELD","ValidationErrorMessage":"Surname is invalid"}]
	}
  }

Example 2: Generic validation
For example, this document-metadata request deliberately uses an invalid starting-from date. The required query-date format is yyyyMMdd:
						
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
using var response = await httpClient.GetAsync(
    $"api/v1/user-bank-documents/user-id/{userId}/list?starting-from=not-a-date");
if (response.StatusCode == HttpStatusCode.BadRequest)
{
    var errorContent = await response.Content.ReadAsStringAsync();
    var error = JsonConvert.DeserializeObject<ValidationErrorModel>(errorContent);
    // A generic error can have null ValidationErrors. Inspect ErrorCode and Message.
}
else
{
    response.EnsureSuccessStatusCode();
}

The error payload can have this shape. The message below is an illustrative English example:
						
{
	"ErrorCode":"INVALID-DATE-FORMAT",
	"Message":"Invalid date format.",
	"ValidationErrors": null
  }


Other errors

Example generic error payload:
							
{
	"ErrorCode": "string",
	"Message": "string"
}

Pagination

Pagination is a way of breaking up large parts of content into smaller pieces.
Some API endpoints can retrieve data using pagination. The pagination parameters are passed via a query string:
  • pageNumber
  • pageSize (used when pageNumber is provided)
For endpoints supporting pagination, providing pageNumber enables pagination and the X-Defi-PageMetadata response header. Without pageNumber, the endpoint may return the complete matching list. This is a JSON object with the following pagination result properties:
  • totalCount
  • currentPage
  • pageSize
  • totalPages
  • previousPageLink
  • nextPageLink

HTTP POST

Response bodies depend on the endpoint. A creation endpoint may return HTTP 201 with a DTO; other POST or PUT operations may return HTTP 200 or a response without an entity.
When supplied, the Location header identifies the created resource. For portfolio-order creation this is the order URL, rather than the portfolio URL.