{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"67e158f7-7f86-44a8-a027-80c7305cc7e5","name":"Yainvest Developer API","description":"Welcome to Yainvest's Open API Documentation! We offer behavioral finance services based on (1) individual investor risk profiles and (2) optimal personalized investment strategy selection.\n\nBehavioral finance risk profiling is the process of assessing an individual's risk tolerance and risk perception in a way that considers their behavioral biases and tendencies. We rely on so-called \"second generation Behavioural Finance\" outlined by the CFA Institute [link](https://www.cfainstitute.org/en/research/foundation/2019/behavioral-finance-the-second-generation). The mathematical foundation of the behavioral concepts has been developed by BhFS Behavioural Finance Solutions (BhFS Model, BhFS Utility Model).\n\nThis document aims to provide developers with a comprehensive and user-friendly guide to integrate and interact with our APIs.\n\nTo use our API, you must obtain an API key. Please contact the sales team at support[@yainvest.ch](https://mailto:support@yainvest.ch) to sign up for an API key. Once you have received your API key, you can start exploring and leveraging the power of our services.\n\n<img src=\"https://content.pstmn.io/2a7ab865-a80a-4f13-9b16-0271af523c3b/aW1hZ2UucG5n\" width=\"251\" height=\"235\">\n\n# **Integration**\n\nThere are two usage patterns for the API: (1) using our UI widget (sample [link](https://api-test.yainvest.ch/demo)) and (2) direct access to APIs. For every interaction, an API token is required.\n\n<img src=\"https://content.pstmn.io/e94e63c9-81ef-476b-b750-0f5966568b4d/aW1hZ2UucG5n\" width=\"306\" height=\"186\">\n\n# Investor Profiling\n\n## **Risk Ability**\n\n**Risk Ability** is the maximum percentage loss the client can afford without affecting their financial well-being.\n\n<img src=\"https://content.pstmn.io/994878e2-5b6e-44b2-b67a-b68f196c3f2b/aW1hZ2UucG5n\" width=\"269\" height=\"264\">\n\n|  |  |\n| --- | --- |\n| **Financial Situation** | We capture information related to income, regular expenses, assets, and liabilities, desired liquidity reserve to determine clients’ risk ability. |\n| **Free Assets** | Free assets are calculated as a difference between investors’ assets and liabilities, plus projected cash flow, excluding liquidity reserve. |\n| **Investment Horizon** | An investment horizon refers to the length of time that an investor is willing to hold the investment. |\n| **Risk Ability Score** | The risk ability score is calculated on a mathematical model that considers market assumptions or historically estimated expected returns, volatilities, and maximum drawdowns so that your lifestyle will not be negatively affected by the investment amount. |\n| **Max Allowed Investment Amount (end-point)** | Max allowed investment amount is the maximum cash amount the client can afford to invest without affecting their financial well-being. The maximum investment amount that fulfills the risk ability constraints considering the Investment Horizon. |\n\n## **Investment expectations**\n\nInvestor investment expectations and perceptions are the key contributors to investor satisfaction with the proposed strategy. Everyone has different perceptions and experiences; gains and losses are subjective understandings of every investor. Based on the expectations and investment amount and horizon, we calculate individual reference points of loss and personal wealth targets that are further used in investment strategy simulation.\n\n<img src=\"https://content.pstmn.io/757bdf14-3268-4b48-92f2-47b8c7a12a30/aW1hZ2UucG5n\" width=\"331\" height=\"302\">\n\n|  |  |\n| --- | --- |\n| **Investment Expectations (**Expected Return and Reference Point) | The tool distinguishes between **expected returns** (what the client intends to achieve with their investment, their expectation) and the minimum return level, known as a **reference point**, which is still considered acceptable by the client - the client will be disappointed and consider their investment unsuccessful below this level. This return level is important as it defines the clients’ subjective view on what is a gain or loss. Expectations are also used to calibrate the questions on the risk attitude so that each client answers questions that are in line with their expectations. |\n| **Reference point or personal wealth target** | Reference point defines gain/loses, and everyone has a unique reference point based on their goals or expectations. We use this value for investment scenario simulation and identifying investor perception towards a proposed investment strategy. |\n| **The reference point of loss** | Describes risk regarding the possibility of missing a given investment goal, i.e., facing losses concerning a given reference point. We use this value for investment scenario simulation and identifying investor perception towards a proposed investment strategy. |\n\n## **Risk Attitude**\n\nMeasure **Behavioral-Finance-based Risk Tolerance**. Risk Tolerance is an investor's long-term psychological willingness to trade off risk and return. It establishes the investor's baseline suitable risk level. Higher scores indicate a greater willingness to accept the chances of poor outcomes in the hope of better long-term returns. We measure it answer choices tailored to investor based on their investment expectations. The final risk score is also affected by investor’s knowledge and experience.\n\n<img src=\"https://content.pstmn.io/287b9d6b-e92c-4c87-9c1b-76a6e20bf28e/aW1hZ2UucG5n\" width=\"359\" height=\"345\">\n\n|  |  |\n| --- | --- |\n| **Knowledge and Experience (end-point)** | We measure the approximate level of experience of the client for each asset class. This impacts strategic asset allocation. For example, investors who have never experienced a major market decline holding equities, might not be well prepared to hold high amounts or risky investments. |\n| **Loss Aversion (end-point)** | Clients dislike losses more than they like gains. This attitude is called loss aversion and implies that risky strategies should offer high upside potential in order that clients are willing to face the risk of missing their investment goal. |\n| **Investment Temperament** | Clients dislike high losses or sensible drops in their wealth level. We refer to this as the investment temperament. The definition of large losses is subjective. Investment temperament is a key indicator of whether investors can maintain their strategy. |\n| **Risk Aversion (end-point)** | Clients dislike fluctuating payoffs, we measure how much. This is the classical risk attitude in the mean-variance model and captures clients’ aversion to fluctuations in their wealth level. |\n| **Investor Risk Score (end-point frontier)** | Calculated based on BhFS Utility Model. The BhFS Utility Model incorporates the different attitudes to risk in a value function, calibrated using clients’ answers to the questions stated in a questionnaire. The value function is then used to either evaluate the investment universe to obtain the investment strategy that best matches clients’ characteristics (optimality approach), or to derive a simple scoring model. The advantage of these approaches is that the determination of the recommended investment strategy is well-founded on the description of clients’ risk preferences as given by the BhFS Utility Model. For investors, it is usually expressed as a band out of five or seven, from low to high. |\n\n# **Strategic Asset Allocation from Financial Institution**\n\nThe primary goal of asset allocation is to achieve an optimal balance between **risk and return (Optimal SAA = frontier as endpoint)** while ensuring adequate diversification. Our profiling enables strategically allocating funds to asset classes and investment vehicles that match the investor’s risk appetite.\n\nWe derive individual utility functions for a client during profiling and match them with your investment strategy through the scoring model. The scoring model is founded on the idea that risk attitudes can be fully characterized regarding risk premium, e.g., higher risk implies higher risk premium. The module constructs an investment strategy with the highest utility from an investor’s perspective.\n\nThis API is individually customized for Yainvest banking clients. Please contact the sales team at info[@yainvest.ch](https://mailto:support@yainvest.ch) to sign up.\n\n<img src=\"https://content.pstmn.io/12068468-4449-4d87-a97b-521126cbfe95/aW1hZ2UucG5n\" width=\"367\" height=\"304\">\n\n# **Investor Profiling Result**\n\nThe result of the Profiling Exercise is a PDF report generated and sent to the given email address. Before Accepting the Investment Strategy, the Investor can also overrule the suggested allocation along the frontier (Risk-Return) for a co-called \"investor-insistent strategy\".\n\n## **Investment scenario simulation for investors’ insistent strategy**\n\nIf the investor insists on the other strategy along the **frontier (risk-return)**, our simulation helps to communicate to the insistent [client](https://www.handbook.fca.org.uk/handbook/glossary/G156.html), in a way which is clear, fair and not misleading, and having regard to the information needs of the insistent [client](https://www.handbook.fca.org.uk/handbook/glossary/G156.html) so that the [client](https://www.handbook.fca.org.uk/handbook/glossary/G156.html) is able to understand. Including the reasons why the transaction will not be in accordance with the [personal recommendatio](https://www.handbook.fca.org.uk/handbook/glossary/G877.html)n, the risks of the transaction proposed by the insistent [client](https://www.handbook.fca.org.uk/handbook/glossary/G156.html); and the reasons why the [firm](https://www.handbook.fca.org.uk/handbook/glossary/G430.html) did not recommend that transaction to the [client](https://www.handbook.fca.org.uk/handbook/glossary/G156.html).\n\nIn addition, in Behavioral Finance, risk awareness plays a central role, as investors are not assumed to be fully rational and can have biases. There is extensive empirical evidence showing that investors perform poorly because they don’t remain committed to the recommended investment strategy. This fact is referred to as the behavioral gap and is estimated to be seen in between 2% and 6% of cases that underperform, compared to cases where the investors stay invested in an agreed investment strategy. We estimate the maximum loss investors can expect to suffer over a given time horizon (a reference point of loss) and at a specified confidence level, helping investors to understand the extent of potential losses and adjust their portfolios accordingly.\n\n<img src=\"https://content.pstmn.io/5c7f4003-c66a-4e77-b180-a2b1fd9a15ea/aW1hZ2UucG5n\" width=\"303\" height=\"232\">\n\n# **Countries and languages**\n\nYainvest API is designed to work the same in all countries, but it differs in content based on the local regulation. Currently, we support:\n\n- Regulation: MiFID II, FIDLEG, FCA investor protection and suitability rules.\n    \n- Languages: English and German, Arabic will be supported soon.\n    \n- UK/US-style numbers.\n    \n\nThe regulatory regimes and languages are being configured on the front-end side based on individual preferences of customers as a part of customization.\n\n# Security policy\n\nWe take breaches of security very seriously at Yainvest. If you have had a security breach where any Yainvest data or credentials may have been compromised, please contact us immediately at [support@yainvest.ch](https://mailto:support@yainvest.ch).\n\nWhile the following is not meant to be an exhaustive list, below are some examples of what would constitute a security incident that could cause the temporary suspension or permanent termination of your API access.\n\n1. Use of a non-test Yainvest account with your test API credentials.\n    \n2. Launching your solution to production without first passing Yainvest's review.\n    \n3. Launching your solution to production with your test API credentials.\n    \n4. Insecurely handling or transmitting your OAuth client secret. There is NEVER a reason to send us your OAuth client secret outside of our API.\n    \n5. Insecurely handling or transmitting an OAuth auth code, access token, or refresh token. There is NEVER a reason to send us an auth code, access token, or refresh token outside of our API.\n    \n6. Insecurely implementing the Yainvest API.\n    \n7. Allowing a user to view another user’s data.\n    \n8. Obtaining, storing, transmitting, or using the username and password of one of our customers.\n    \n\nPlease consult your API agreement for further provisions.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"29043512","team":5445760,"collectionId":"67e158f7-7f86-44a8-a027-80c7305cc7e5","publishedId":"2s9Xy2PsEy","public":true,"publicUrl":"https://documenter-api.postman.tech/view/29043512/2s9Xy2PsEy","privateUrl":"https://go.postman.co/documentation/29043512-67e158f7-7f86-44a8-a027-80c7305cc7e5","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2023-08-16T13:15:20.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/1311cfd8231dee20f4b403c6df6db8f2894c7e75c99964b5214a12ca912f2a3a","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2s9Xy2PsEy"}