Introduzione

Prima di iniziare: L’indirizzo base WMS dell’ambiente e un token GUEST.
Da conservare per il passaggio successivo: Un client HTTP configurato e la conoscenza delle convenzioni delle richieste.
WMS2 è una piattaforma SaaS orientata ai servizi con API REST per gestione patrimoniale e previdenza. Supporta investimenti svizzeri del pilastro 3a, di libero passaggio e del pilastro 3b. Prodotti e integrazioni disponibili dipendono dalla configurazione del gestore patrimoniale. Ogni portafoglio ha il proprio istituto detentore del conto, o banca depositaria. LIENHARDT è l’esempio utilizzato nella guida.

Inizia qui: il percorso del cliente

Segui un cliente nei passaggi seguenti. Scegli C# o Java e mantieni lo stesso linguaggio. Ogni blocco è una procedura di questo percorso, non un programma autonomo.

  1. Registra il cliente: segui l’autoregistrazione con un token GUEST. La registrazione amministrativa è un’alternativa.
  2. Accedi: ottieni la coppia di token CLIENT e conserva userId. La registrazione può già fornire questa coppia; accedi nuovamente se necessario.
  3. Calcola il rischio e scegli una proposta: conserva la linea di attività, la categoria, gli ID delle risposte e il proposalId scelto.
  4. Apri il portafoglio: salva il questionario, completa i dati, prepara il contratto PDF e invia l’ordine di apertura. Conserva orderId e portfolioId, quindi monitora l’ordine.
  5. Consulta il portafoglio: recupera lo snapshot attuale, i valori, i conti di liquidità e i documenti quando diventano disponibili.
  6. Cambia la strategia: scegli una proposta ammissibile, prepara il contratto e invia un ordine di modifica.

Usa Modifica dei dati del cliente quando cambiano le informazioni. Notifiche è un’integrazione amministrativa separata. Scenari di simulazione contiene scenari di sviluppo opzionali.

Checklist di configurazione

  1. Ottieni l’indirizzo base WMS e un token GUEST. Dopo l’autenticazione usa un token CLIENT. Gli esempi amministrativi specificano il ruolo richiesto.
  2. C#: usa .NET 9 e installa Newtonsoft.Json con dotnet add package Newtonsoft.Json, quindi copia gli import e GuideHttp indicati sotto.
  3. Java: usa Java 21 o successivo e aggiungi Gson (coordinate Maven com.google.code.gson:gson) nella build. Copia gli import, Settings, Api e MultiPartBodyPublisher indicati sotto. Imposta WMS_BASE_URL con l’indirizzo base senza /api/v1 e valorizza WMS_GUEST_TOKEN. I token amministrativi servono soltanto per le procedure amministrative.
  4. Inizializza il client HTTP una sola volta, copia i DTO necessari e raccogli i dati indicati. In C#, httpClient.BaseAddress è l’indirizzo base terminato da una barra; gli esempi aggiungono api/v1.

Quando un esempio usa un tipo personalizzato, consulta gli helper e il catalogo DTO in questa pagina. I blocchi dispongono di un pulsante per copiare il codice.

Destinatari

Questa guida è rivolta a chi ha esperienza di sviluppo web e software. Presenta procedure concrete, dalla registrazione alla gestione del portafoglio. Non tratta lo sviluppo software generale, ma le API più comuni e il loro utilizzo tramite esempi passo dopo passo.

API

Consulta il riferimento Swagger/OpenAPI dell’ambiente WMS per verificare schemi di richiesta e risposta, ruoli e prodotti disponibili. La maggior parte delle risposte usa JSON; i documenti vengono scaricati come dati binari. Usa il riferimento della versione API dell’integrazione. Non è necessario un deployment per leggere la guida.
Riferimento API WMS in Swagger

Prerequisiti

Gli endpoint protetti richiedono un token Bearer (JWT) valido. Un token assente, scaduto o non valido produce normalmente HTTP 401; un token valido senza i permessi necessari può produrre HTTP 403.
Per ottenere un token GUEST, contattaci a info@descartes.swiss.
Una volta ottenuto il token, imposta l’header HTTP come segue:
						
Authorization: Bearer <access-token>

I ruoli includono GUEST, CLIENT, SELLER, ADMIN e SUPERADMIN. I ruoli consentiti dipendono dall’endpoint.
Avvia autoregistrazione o accesso con un token GUEST. Dopo il completamento, conserva access token, refresh token e ValidUntil. Usa il token CLIENT per le richieste successive del cliente. La durata di validità è definita dal servizio.
I token applicativi delle integrazioni server-to-server possono avere una durata diversa. Usa il token corretto per l’ambiente di destinazione e conserva i token amministrativi nella configurazione protetta sul server.

Client HTTP

Il selettore cambia soltanto la lingua della guida. Gli esempi mantengono Accept-Language: de-DE e i codici di lingua della versione inglese. Per risposte o un profilo cliente in una lingua diversa, consulta i riferimenti delle lingue supportate e configura separatamente Accept-Language e la lingua del cliente.

Una volta ottenuto il token, inizializza il client HTTP:
									
// 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);

Utilizzo degli esempi

Gli esempi mostrano richieste API e dipendenze. Sono frammenti da adattare al client, non un’applicazione completa. Conserva i risultati di ogni passaggio per quello successivo. Registrazione amministrativa e autoregistrazione sono percorsi distinti.
Gli esempi C# usano .NET 9 e Newtonsoft.Json per serializzare esplicitamente i payload; GetFromJsonAsync usa le estensioni HTTP JSON di .NET. Aggiungi il pacchetto Newtonsoft.Json se non è già referenziato. Gli esempi Java usano Java 21 o successivo e Gson. Aggiungi Gson alla build. Associa i nomi JSON tramite SerializedName e usa campi String per date e timestamp nei DTO Java; analizzali quando il client deve eseguire operazioni sulle date. I DTO corrispondono agli schemi del riferimento API; definisci gli stessi campi e nomi JSON. Non è necessario scaricare un’applicazione di esempio.
I valori clientEmail, clientPassword, phoneNumberPrefix e phoneNumberNumber provengono dall’interfaccia. consentTimestamp indica il momento del consenso (C#: DateTime; Java: stringa ISO 8601). selectedReasonIds contiene gli identificativi long scelti dal cliente; inizializza una raccolta vuota se non servono motivi di scostamento. adminToken e superAdminToken provengono dalla configurazione protetta del server per questi percorsi. contractPath è una stringa in C# e un Path in Java. Ogni frammento ha un ambito locale. Conserva dati, identificativi, riferimenti e risultati indicati all’inizio dei capitoli. Gli esempi sono sequenziali; separa il contesto dei token di ogni chiamante.

Passaggio dei valori tra capitoli

Lo stesso valore funzionale può avere nomi diversi nei due linguaggi. Conserva questi valori nel contesto del cliente; cambiare capitolo non li azzera. Riutilizzare un nome locale come response sostituisce il risultato della richiesta, non il contesto salvato.

ValoreEsempi C#Esempi Java
Identità del cliente e sessioneuserId, accessToken, refreshToken, validUntiluserId, accessToken, refreshToken, validUntil
Riferimenti del prodottobusinessLineVorsorge.Id, investmentCategory3A.IdbusinessLineId, investmentCategoryId
Risposte al questionario e rischioresponseIds, riskresponseIds, riskCategorizationObj
Proposta scelta per l’aperturaproposalSelectedByUser.IdproposalSelectedByUser.Id (selezionato tramite proposalId)
Contratto completo per l’aperturapdfContractAsByteArraycontractPath, percorso del PDF completo
Risultato dell’aperturaorderId, portfolioIdorderId, portfolioId
Scelta della strategia e ordine di modificaselectedProposalId, modificationOrderIdselectedProposalId, modificationOrderId

Gli identificativi provengono dalle chiamate di riferimento o dalle richieste precedenti. I numeri negli esempi JSON sono illustrativi; non usarli mai come ID reali. Nelle notifiche amministrative adminUserId identifica il destinatario ed è distinto dal userId del cliente.

Import C#


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;

Import Java


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;

Classi helper condivise

Il codice completo di tutte le classi helper personalizzate è riportato sotto: GuideHttp (C#), Settings, Api e MultiPartBodyPublisher (Java). Copiale nei tuoi file sorgenti e usa gli import di Utilizzo degli esempi. Settings legge WMS_BASE_URL, WMS_GUEST_TOKEN, WMS_ADMIN_TOKEN e WMS_SUPERADMIN_TOKEN dalle variabili d’ambiente. Fornisci le credenziali richieste dal percorso.
Le modifiche del cliente e gli ordini usano multipart/form-data. La parte JSON si chiama jsonPayload ; i contratti degli ordini usano userContracts e il servizio PDF opzionale usa attachments . Non impostare manualmente Content-Type per MultipartFormDataContent in C#: fornisce la boundary. Gli helper usano le librerie HTTP della piattaforma e possono essere inseriti nel client. Memorizzano il PDF in memoria e sono adatti ai piccoli contratti della guida.

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

Non tutte le definizioni DTO sono riportate direttamente in ogni esempio, per mantenerlo leggibile. Usa gli schemi API per definire i DTO necessari. L’esempio mostra la corrispondenza tra JSON e DTO.
Esempio di risposta JSON:
										
{
	"id": 0,
	"code": "string",
	"name": "string"
  }

										
Il DTO corrispondente:
											
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;
}

										

Catalogo del codice sorgente dei DTO

Queste classi client espongono tutte le proprietà pubbliche dei modelli utilizzati, comprese quelle ereditate. Gli attributi di validazione server e le classi base vuote sono omessi. I nomi JSON sono espliciti. Usa gli import precedenti; aggiungi System.Collections.Generic in C# e java.util.List / java.util.Map in Java. Java usa wrapper che possono essere null e stringhe di date ISO. Le date nei parametri rimangono in yyyyMMdd; le date JSON senza ora sono in yyyy-MM-dd. Queste definizioni descrivono i dati; l’endpoint determina i campi necessari per le scritture.

Apri un modello per vedere e copiare la definizione C# o Java. Definisci ogni classe una sola volta: usa la definizione del catalogo anziché una seconda definizione da un esempio precedente.

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

Gestione degli errori

Gli errori API vengono segnalati tramite codici HTTP conformi agli standard IETF. Un payload fornisce inoltre dettagli per comprendere la causa del problema.

Gli esempi mostrano strutture comuni. Verifica lo stato prima di deserializzare un DTO di successo; un errore del middleware può avere un payload vuoto o diverso.
Il catalogo degli errori è disponibile in api/v1/system/error-codes.

Errori di autenticazione

Esempio di payload di errore; le risposte di autenticazione possono anche non contenere un body:
							
{
	"ErrorCode": "string",
	"Message": "string",
	"RemainingAttempts": 2
}

Richiesta non valida (Bad Request)

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

ValidationErrors può essere null se fallisce un controllo generale anziché una validazione del campo. Esempio:
								
{
  "ErrorCode": "string",
  "Message": "string",
  "ValidationErrors": null
}

Esempio 1: validazione del payload
Questa richiesta amministrativa è intenzionalmente incompleta e il suo Name è troppo corto. I messaggi esatti dipendono dall’endpoint e dalla lingua:
										
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);
}

La richiesta restituisce HTTP 400. Il payload illustra la struttura; i campi e i messaggi reali dipendono dalla validazione e da Accept-Language:
							
{
	"ErrorCode":"VALIDATION-ERRORS",
	"Message":"Request contains one or more invalid fields.",
	"ValidationErrors":
	{
	  "GenderId":[{"ValidationErrorCode":"INVALID-FIELD","ValidationErrorMessage":"Gender ID is mandatory"}],
	  "Name":[{"ValidationErrorCode":"INVALID-FIELD","ValidationErrorMessage":"Customer name is too short"}],
	  "Surname":[{"ValidationErrorCode":"INVALID-FIELD","ValidationErrorMessage":"Surname is invalid"}]
	}
  }

Esempio 2: validazione generale
Questa richiesta di metadati usa intenzionalmente una data starting-from non valida. Il formato richiesto nella query è 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();
}

Il payload può avere questa struttura. Il messaggio seguente è un esempio illustrativo in inglese:
						
{
	"ErrorCode":"INVALID-DATE-FORMAT",
	"Message":"Invalid date format.",
	"ValidationErrors": null
  }


Altri errori

Esempio di payload di errore generale:
							
{
	"ErrorCode": "string",
	"Message": "string"
}

Paginazione

La paginazione divide grandi insiemi di dati in pagine più piccole.
Alcuni endpoint supportano la paginazione. I parametri vengono trasmessi nella query string:
  • pageNumber
  • pageSize (utilizzato quando pageNumber è indicato)
Per gli endpoint che la supportano, pageNumber attiva la paginazione e l’header di risposta X-Defi-PageMetadata . Senza pageNumber, l’endpoint può restituire l’intero elenco corrispondente. Questo header contiene un oggetto JSON con le proprietà seguenti:
  • totalCount
  • currentPage
  • pageSize
  • totalPages
  • previousPageLink
  • nextPageLink

HTTP POST

Il body dipende dall’endpoint. Una creazione può restituire HTTP 201 con un DTO; altre operazioni POST o PUT possono restituire HTTP 200 o una risposta senza entità.
Quando presente, Location identifica la risorsa creata. Per un ordine di apertura del portafoglio è l’URL dell’ordine, non quella del portafoglio.