Einführung

Voraussetzungen: Die WMS-Basisadresse der Zielumgebung und ein GUEST-Token.
Für den nächsten Schritt aufbewahren: Ein eingerichteter HTTP-Client und Kenntnisse der Anfragekonventionen.
WMS2 ist eine serviceorientierte SaaS-Plattform mit REST-Web-APIs für Vermögensverwaltung und Vorsorge. Sie unterstützt Schweizer Säule-3a-, Freizügigkeits- und Säule-3b-Anlagen. Verfügbare Produkte und Integrationen hängen von der Konfiguration des Vermögensverwalters ab. Jedes Portfolio besitzt eine eigene kontoführende Institution bzw. Depotbank. LIENHARDT wird in dieser Anleitung als Beispiel verwendet.

Hier beginnen: der Kundenablauf

Folgen Sie einem Kunden durch die folgenden Schritte. Wählen Sie C# oder Java und bleiben Sie bei dieser Sprache. Jeder Codeblock ist ein Baustein dieses Ablaufs und kein eigenständiges Programm.

  1. Kunden registrieren: Verwenden Sie die Selbstregistrierung mit einem GUEST-Token. Die administrative Registrierung ist eine Alternative.
  2. Anmelden: Erhalten Sie das CLIENT-Access-/Refresh-Token-Paar und bewahren Sie userId auf. Die Registrierung kann dieses Paar bereits liefern; melden Sie sich bei Bedarf erneut an.
  3. Risiko berechnen und Vorschlag wählen: Bewahren Sie Geschäftsbereich, Anlagekategorie, Antwort-IDs des Fragebogens und die gewählte proposalId auf.
  4. Portfolio eröffnen: Speichern Sie den Fragebogen, ergänzen Sie Kundendaten, erstellen Sie den PDF-Vertrag und senden Sie den Eröffnungsauftrag. Bewahren Sie orderId und portfolioId auf und verfolgen Sie den Auftrag.
  5. Portfoliodaten lesen: Rufen Sie den aktuellen Snapshot, Werte, Geldkonten und Dokumente ab, sobald diese verfügbar sind.
  6. Strategie ändern: Wählen Sie einen zulässigen Vorschlag, bereiten Sie den Vertrag vor und senden Sie einen Änderungsauftrag.

Verwenden Sie Kundendaten ändern wenn sich Angaben ändern. Benachrichtigungen ist eine separate administrative Integration. Simulationsabläufe enthält optionale Entwicklungsszenarien.

Einrichtungscheckliste

  1. Beschaffen Sie die WMS-Basisadresse und einen GUEST-Token. Nach der Authentifizierung verwenden Sie einen CLIENT-Token. Administrative Beispiele nennen die jeweils erforderliche Rolle.
  2. C#: Verwenden Sie .NET 9 und installieren Sie Newtonsoft.Json mit dotnet add package Newtonsoft.Json, und übernehmen Sie anschliessend die Imports und GuideHttp unten.
  3. Java: Verwenden Sie Java 21 oder neuer und ergänzen Sie Gson (Maven-Koordinaten com.google.code.gson:gson) in Ihrer Build-Konfiguration. Übernehmen Sie die Imports sowie Settings, Api und MultiPartBodyPublisher unten. Setzen Sie WMS_BASE_URL auf die Basisadresse ohne /api/v1 und setzen Sie WMS_GUEST_TOKEN. Administrative Tokens werden nur für administrative Abläufe benötigt.
  4. Initialisieren Sie den HTTP-Client einmalig, übernehmen Sie die DTOs für Ihr Kapitel und erfassen Sie die nachfolgend genannten Kundeneingaben. In C# enthält httpClient.BaseAddress die Dienstadresse mit abschliessendem Schrägstrich; die Beispiele ergänzen api/v1.

Wenn ein Beispiel einen eigenen Typ verwendet, finden Sie dessen Definition in den Hilfsklassen oder im DTO-Katalog auf dieser Seite. Codeblöcke haben eine Schaltfläche zum Kopieren.

Zielgruppe

Diese Anleitung richtet sich an Leser mit Erfahrung in Web- und Softwareentwicklung. Sie beschreibt konkrete Aufgaben von der Kundenregistrierung bis zur Portfolioverwaltung. Allgemeine Softwareentwicklung wird nicht behandelt; im Mittelpunkt stehen die häufigsten API-Aufrufe und ihre schrittweise Anwendung.

APIs

Prüfen Sie Anfragen, Antworten, erlaubte Rollen und verfügbare Produkte in der Swagger-/OpenAPI-Referenz Ihrer WMS-Zielumgebung. Die meisten Antworten verwenden JSON; Dokumentdownloads liefern Binärdaten. Nutzen Sie die Referenz für die API-Version Ihrer Integration. Zum Lesen dieser Anleitung ist kein Deployment erforderlich.
WMS-API-Referenz in Swagger

Voraussetzungen

Geschützte Endpunkte benötigen einen gültigen Bearer-Token (JWT). Ein fehlender, abgelaufener oder ungültiger Token führt normalerweise zu HTTP 401. Ein gültiger Token mit unzureichenden Berechtigungen kann HTTP 403 auslösen.
Wenn Sie einen GUEST-Token benötigen, kontaktieren Sie uns unter info@descartes.swiss.
Setzen Sie nach Erhalt des Tokens den HTTP-Header wie folgt:
						
Authorization: Bearer <access-token>

Es gibt unter anderem die Rollen GUEST, CLIENT, SELLER, ADMIN und SUPERADMIN. Welche Rollen zulässig sind, hängt vom Endpunkt ab.
Starten Sie Selbstregistrierung oder Anmeldung mit einem GUEST-Token. Speichern Sie nach erfolgreichem Abschluss den Access-Token, den Refresh-Token und ValidUntil. Weitere Kundenanfragen verwenden den CLIENT-Access-Token. Die Gültigkeitsdauer wird vom Dienst festgelegt.
Anwendungstokens für Server-zu-Server-Integrationen können eine andere Gültigkeitsdauer haben. Verwenden Sie den richtigen Token für die Zielumgebung und speichern Sie administrative Tokens in der geschützten serverseitigen Konfiguration.

HTTP-Client

Nach Erhalt des Tokens initialisieren Sie den HTTP-Client:
									
// 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);

Codebeispiele verwenden

Die Beispiele zeigen API-Anfragen und ihre Abhängigkeiten. Es sind Codefragmente zur Übernahme in Ihren Client, keine vollständige Anwendung. Bewahren Sie Ergebnisse jedes Schritts für die nächste Anfrage auf. Administrative Registrierung und Selbstregistrierung sind getrennte Abläufe.
Die C#-Beispiele verwenden .NET 9 und Newtonsoft.Json für die explizite Payload-Serialisierung; GetFromJsonAsync verwendet die HTTP-JSON-Erweiterungen von .NET. Fügen Sie Newtonsoft.Json als Paket hinzu, falls es noch nicht referenziert ist. Die Java-Beispiele verwenden Java 21 oder neuer und Gson. Ergänzen Sie Gson in Ihrer Build-Konfiguration. Ordnen Sie JSON-Feldnamen mit SerializedName zu und verwenden Sie String-Felder für Datums- und Zeitwerte in den Java-DTOs. Parsen Sie diese bei Bedarf für Datumsoperationen. Die DTOs entsprechen den Anfragen- und Antwortschemas der API-Referenz; definieren Sie dieselben Felder und JSON-Namen in Ihrem Client. Eine heruntergeladene Beispielanwendung ist nicht erforderlich.
Werte wie clientEmail, clientPassword, phoneNumberPrefix und phoneNumberNumber stammen aus Ihrer Oberfläche. consentTimestamp erfasst den Zeitpunkt der Zustimmung (C#: DateTime; Java: ISO-8601-Zeichenfolge). selectedReasonIds enthält die vom Kunden gewählten IDs als long-Werte; initialisieren Sie eine leere Sammlung, wenn keine Abweichungsgründe erforderlich sind. adminToken und superAdminToken stammen bei administrativen Abläufen aus der geschützten serverseitigen Konfiguration. contractPath ist in C# eine Zeichenfolge und in Java ein Path. Jedes Beispiel hat einen eigenen lokalen Gültigkeitsbereich. Bewahren Sie Kundeneingaben, IDs, Referenzwerte und die am Kapitelanfang genannten Ergebnisse für spätere Schritte auf. Die Beispiele bauen aufeinander auf; trennen Sie den Token-Kontext jedes Aufrufers in Ihrer Integration.

Werte zwischen Kapiteln weitergeben

Derselbe fachliche Wert kann in C# und Java unterschiedliche Variablennamen haben. Bewahren Sie diese Werte im Kundenkontext auf; ein Kapitelwechsel setzt sie nicht zurück. Wird ein lokaler Name wie response erneut verwendet, wird nur das Anfrageergebnis ersetzt, nicht der gespeicherte Kundenkontext.

WertC#-BeispieleJava-Beispiele
Kunden-ID und SitzunguserId, accessToken, refreshToken, validUntiluserId, accessToken, refreshToken, validUntil
ProduktreferenzenbusinessLineVorsorge.Id, investmentCategory3A.IdbusinessLineId, investmentCategoryId
Fragebogenantworten und RisikoresponseIds, riskresponseIds, riskCategorizationObj
Gewählter EröffnungsvorschlagproposalSelectedByUser.IdproposalSelectedByUser.Id (über proposalId ausgewählt)
Vollständiger EröffnungsvertragpdfContractAsByteArraycontractPath als Pfad zum vollständigen PDF
Ergebnis der EröffnungorderId, portfolioIdorderId, portfolioId
Strategieauswahl und ÄnderungsauftragselectedProposalId, modificationOrderIdselectedProposalId, modificationOrderId

IDs stammen aus API-Referenzaufrufen oder vorherigen Anfragen. Zahlen in JSON-Beispielen dienen nur der Veranschaulichung und dürfen nicht als tatsächliche IDs übernommen werden. Bei administrativen Benachrichtigungen bezeichnet adminUserId den Empfänger und ist von der Kunden-ID userId getrennt.

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;

Gemeinsame Hilfsklassen

Nachfolgend finden Sie den vollständigen Quellcode aller eigenen Hilfsklassen dieser Anleitung: GuideHttp (C#) sowie Settings, Api und MultiPartBodyPublisher (Java). Übernehmen Sie sie in eigene Quelldateien und verwenden Sie die Imports aus Codebeispiele verwenden. Settings liest WMS_BASE_URL, WMS_GUEST_TOKEN, WMS_ADMIN_TOKEN und WMS_SUPERADMIN_TOKEN aus Umgebungsvariablen. Stellen Sie die für Ihren Ablauf erforderlichen Zugangsdaten bereit.
Kundenänderungen und Portfolioaufträge verwenden multipart/form-data. Der JSON-Teil heisst jsonPayload ; Auftragsverträge verwenden userContracts und der optionale PDF-Dienst verwendet attachments . Setzen Sie Content-Type bei C# MultipartFormDataContent nicht manuell; die Klasse erzeugt die Boundary. Die Hilfsklassen verwenden die HTTP-Bibliotheken der Plattform und können in Ihren Client übernommen werden. Sie puffern PDFs im Speicher und sind für die kleinen Verträge dieser Anleitung vorgesehen.

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

Nicht alle DTO-Definitionen stehen direkt in den einzelnen Beispielen, damit diese lesbar bleiben. Verwenden Sie die API-Schemas zur Definition Ihrer Client-DTOs. Das folgende Beispiel zeigt die Zuordnung von JSON zu DTO.
Beispiel einer JSON-Antwort:
										
{
	"id": 0,
	"code": "string",
	"name": "string"
  }

										
Das zugehörige DTO sieht so aus:
											
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-Quellcodekatalog

Diese Clientklassen enthalten alle öffentlichen Dateneigenschaften der in den Beispielen verwendeten Modelle, einschliesslich geerbter Eigenschaften. Serverseitige Validierungsattribute und leere Basisklassen sind weggelassen. JSON-Feldnamen sind explizit angegeben. Verwenden Sie die Imports oben sowie System.Collections.Generic für C# und java.util.List / java.util.Map für Java. Java verwendet nullable Wrapper-Typen und ISO-Datumszeichenfolgen. Datumswerte in Abfrageparametern verwenden weiterhin yyyyMMdd; reine JSON-Datumswerte verwenden yyyy-MM-dd. Die Definitionen beschreiben die Datenstruktur. Der Endpunkt bestimmt, welche Felder bei Schreibzugriffen erforderlich sind.

Öffnen Sie ein Modell, um seine C#- oder Java-Definition anzuzeigen und zu kopieren. Definieren Sie jede Klasse nur einmal im Projekt: Verwenden Sie die Katalogdefinition statt einer zusätzlichen Definition aus einem früheren illustrativen Beispiel.

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

Fehlerbehandlung

API-Fehler werden durch HTTP-Statuscodes gemäss den IETF-Internetstandards gemeldet. Die API liefert ausserdem einen Payload mit Einzelheiten, damit Sie die Fehlerursache erkennen können.

Die Beispiele zeigen typische Antwortstrukturen. Prüfen Sie den Statuscode, bevor Sie ein Erfolgs-DTO deserialisieren. Bei Middleware-Fehlern kann der Payload fehlen oder eine andere Struktur haben.
Den Fehlercodekatalog finden Sie unter api/v1/system/error-codes.

Authentifizierungsfehler

Beispiel eines Fehler-Payloads; Authentifizierungsantworten können auch ohne Body zurückgegeben werden:
							
{
	"ErrorCode": "string",
	"Message": "string",
	"RemainingAttempts": 2
}

Ungültige Anfrage (Bad Request)

Beispiel eines Validierungs-Payloads bei HTTP 400:
								
{
  "ErrorCode": "VALIDATION-ERRORS",
  "Message": "Request contains invalid fields.",
  "ValidationErrors": {
    "Name": [
      {"ValidationErrorCode": "INVALID-FIELD", "ValidationErrorMessage": "Name is too short"}
    ]
  }
}

ValidationErrors kann null sein, wenn eine allgemeine Prüfung und keine Feldvalidierung fehlschlägt. Beispiel eines solchen Payloads:
								
{
  "ErrorCode": "string",
  "Message": "string",
  "ValidationErrors": null
}

Beispiel 1: Payload-Validierung
Die folgende administrative Registrierungsanfrage ist absichtlich unvollständig und enthält einen zu kurzen Name-Wert. Die konkreten Fehlermeldungen hängen vom Endpunkt und von der Sprache ab:
										
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);
}

Die Anfrage liefert HTTP 400. Der Payload zeigt die Struktur; tatsächliche Felder und Meldungen hängen von der Validierung und Accept-Language ab:
							
{
	"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"}]
	}
  }

Beispiel 2: Allgemeine Validierung
Diese Anfrage nach Dokumentmetadaten verwendet absichtlich ein ungültiges starting-from-Datum. Das erforderliche Abfrageformat ist 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();
}

Der Fehler-Payload kann wie folgt aussehen. Die Meldung ist ein illustratives englisches Beispiel:
						
{
	"ErrorCode":"INVALID-DATE-FORMAT",
	"Message":"Invalid date format.",
	"ValidationErrors": null
  }


Weitere Fehler

Beispiel eines allgemeinen Fehler-Payloads:
							
{
	"ErrorCode": "string",
	"Message": "string"
}

Seiteneinteilung

Die Seiteneinteilung teilt umfangreiche Ergebnisse in kleinere Abschnitte auf.
Einige API-Endpunkte unterstützen die Seiteneinteilung. Die Parameter werden in der Query-Zeichenfolge übergeben:
  • pageNumber
  • pageSize (wird verwendet, wenn pageNumber angegeben ist)
Bei unterstützten Endpunkten aktiviert pageNumber die Seiteneinteilung und den Antwort-Header X-Defi-PageMetadata . Ohne pageNumber kann der Endpunkt alle passenden Einträge liefern. Dieser Header enthält ein JSON-Objekt mit den folgenden Seiteneigenschaften:
  • totalCount
  • currentPage
  • pageSize
  • totalPages
  • previousPageLink
  • nextPageLink

HTTP POST

Der Antwort-Body hängt vom Endpunkt ab. Erstellungsendpunkte können HTTP 201 mit einem DTO liefern; andere POST- oder PUT-Aufrufe können HTTP 200 oder eine Antwort ohne Entität zurückgeben.
Falls vorhanden, identifiziert der Location-Header die erstellte Ressource. Bei Portfolio-Eröffnungsaufträgen ist dies die Auftrags-URL, nicht die Portfolio-URL.