API Reference
The Coanda API is organized around REST. Our Api has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses and uses standard HTTP response codes, authentication and verbs.
You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.
Please read the Authentication chapter first.
Authentication
To authorize, use this code:
# With shell, you can just pass the correct header with each request
curl "api_endpoint_here"
-H "Authorization: Bearer myToken"
Make sure to replace
myTokenwith the generated token.
Coanda uses JWT tokens to allow access to the API.
Coanda expects for the JWT token to be included in all API requests to the server in a header that looks like the following:
Authorization: Bearer myToken
Generate an authorization token
curl "https://aaaic-backend.ppd.rafa.3a-digital.fr/user-service/v1/token/acquire?username=myuser%40test.com&password=testpassword"
-H "accept: text/plain"
The above command returns the JWT token as a raw string in the response body:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.dyt0CoTl4WoVjAHI9Q_CwSKhl6d_9rhM3NrXuJttkao
This endpoint generate a JWT token from a combination of username and password.
HTTP Request
GET /user-service/v1/token/acquire
URL Parameters
| Parameter | Description |
|---|---|
| username | Your username/clientId. Must be sent url_encoded. |
| password | Your password/clientSecret. Must be sent url_encoded. |
Simulator Module
The simulator module offers several endpoint to perform various computations on a saving project. The three main endpoints are each dedicated to a specific management mode (free, delegated and glidepath).
Free Management
curl \
--location 'https://aaaic-backend.ppd.rafa.3a-digital.fr/simulator-service/simulator/free_management' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <myToken>' \
--data '{
"simulation_start_date": "202008",
"simple_deposits": [
{
"amount": 5000,
"date": "202010"
}
],
"periodic_deposits": [
{
"amount": 197.2,
"start_date": "202008",
"end_date": "202507",
"frequency": "MONTHLY"
}
],
"portfolio_composition": [
{
"isin": "LU1883308352",
"currency": "GBP",
"percentage": 50,
},
{
"isin": "LU1681046931",
"currency": "EUR",
"percentage": 50,
},
],
"target_amount": 5000,
"horizon": 60,
"current_savings": 1000,
"simulator_uuid": "aaaic:simulators:243",
}'
The above command returns JSON structured like this:
{
"success_percentage": "float",
"graphs": {
"nb_scenarios": "int",
"scenarios_smooth": [
{
"name": "string",
"data": [
{
"x": "float",
"y": "float"
}
]
}
],
"synthesis": {
"savings": {
"x": "float",
"y": "float"
},
"median": {
"x": "float",
"y": "float"
},
"lower_area": {
"x": "float",
"high": "float",
"low": "float"
},
"mid_area": {
"x": "float",
"high": "float",
"low": "float"
},
"upper_area": {
"x": "float",
"high": "float",
"low": "float"
}
},
"success_percentage": "float",
"scenarios_perc_above_cumulative_savings": "float",
"id": "string",
"scenarios": [
{
"name": "savings",
"data": [
{
"x": "float",
"y": "float"
}
],
"lineWidth": "float",
"zIndex": "float"
}
]
},
"statistics": {
"mar_ratio": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"sharp_ratio": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"annualized_return": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"max_drawdown": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"annualized_volatility": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
}
},
"scenarios_table": {
"capital_distribution_at_horizon": {
"max": "float",
"min": "float",
"in_between": {
"high": "float",
"low": "float"
}
},
"capital_gain_or_loss": {
"max": "float",
"min": "float",
"in_between": {
"high": "float",
"low": "float"
}
},
"absolute_return": {
"max": "float",
"min": "float",
"in_between": {
"high": "float",
"low": "float"
}
},
"cumulative_savings": "float",
"gross_cumulative_savings": "float"
},
"uc_allocation": [
{
"series": "string",
"percentage": "float"
}
]
}
This endpoint performs a simulation for free management allocations.
HTTP Request
POST /simulator-service/simulator/free_management
Request body
The request body is a JSON object representing a simulation request.
The SimulationRequest object
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| simulator_uuid | true | string | Unique identifier of the simulator to use. Provided by AAA. |
| target_amount | false | number | The amount of money the client wishes to reach at horizon. |
| horizon | true | integer | The length (in number of months) of the project’s analysis period. |
| current_savings | false | number | The money the client has on his account before the project starts. |
| start_date | true | string | The starting point in time of the simulation. Format is YYYYMM. |
| simple_deposits | false | [SimpleCashFlow] | The series of projected one-time cash contributions. |
| periodic_deposits | false | [PeriodicCashFlow] | The series of projected recurring cash contributions. |
| simple_withdrawals | false | [SimpleCashFlow] | The series of projected one-time cash withdrawals. |
| periodic_withdrawals | false | [PeriodicCashFlow] | The series of projected recurring cash withdrawals. |
| portfolio_composition | true | [WeightedAsset] | Specifies the portfolio composition (assets and corresponding weights). |
The WeightedAsset object
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| isin | true | string | The ISIN code of the asset. |
| currency | true | string | The currency of the asset, identified by a trigram (e.g. “EUR”). |
| percentage | true | number | The weight the asset represent in the portfolio, as a percentage. |
The SimpleCashFlow object
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| amount | true | number | The amount of the cash flow. |
| date | true | string | The date of the cash flow. Format is YYYYMM. |
The PeriodicCashFlow object
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| amount | true | number | The amount of the cash flow. |
| start_date | true | string | The date to start the recurrence. Format is YYYYMM. |
| end_date | true | string | The date to end the recurrence. Format is YYYYMM. |
| frequency | true | string | Frequency of the recurrence. Can be MONTHLY/QUARTERLY/YEARLY/SEMI_ANNUALLY |
Delegated Management
curl \
--location 'https://aaaic-backend.ppd.rafa.3a-digital.fr/simulator-service/simulator/delegated_management' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <myToken>' \
--data '{
"simulation_start_date": "202008",
"simple_deposits": [
{
"amount": 5000,
"date": "202010"
}
],
"periodic_deposits": [
{
"amount": 197.2,
"start_date": "202008",
"end_date": "202507",
"frequency": "MONTHLY"
}
],
"target_amount": 5000,
"horizon": 60,
"current_savings": 1000,
"simulator_uuid": "aaaic:simulators:236",
"profile_idx": 2
}'
The above command returns JSON structured like this:
{
"success_percentage": "float",
"graphs": {
"nb_scenarios": "int",
"scenarios_smooth": [
{
"name": "string",
"data": [
{
"x": "float",
"y": "float"
}
]
}
],
"synthesis": {
"savings": {
"x": "float",
"y": "float"
},
"median": {
"x": "float",
"y": "float"
},
"lower_area": {
"x": "float",
"high": "float",
"low": "float"
},
"mid_area": {
"x": "float",
"high": "float",
"low": "float"
},
"upper_area": {
"x": "float",
"high": "float",
"low": "float"
}
},
"success_percentage": "float",
"scenarios_perc_above_cumulative_savings": "float",
"id": "string",
"scenarios": [
{
"name": "savings",
"data": [
{
"x": "float",
"y": "float"
}
],
"lineWidth": "float",
"zIndex": "float"
}
]
},
"statistics": {
"mar_ratio": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"sharp_ratio": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"annualized_return": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"max_drawdown": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"annualized_volatility": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
}
},
"scenarios_table": {
"capital_distribution_at_horizon": {
"max": "float",
"min": "float",
"in_between": {
"high": "float",
"low": "float"
}
},
"capital_gain_or_loss": {
"max": "float",
"min": "float",
"in_between": {
"high": "float",
"low": "float"
}
},
"absolute_return": {
"max": "float",
"min": "float",
"in_between": {
"high": "float",
"low": "float"
}
},
"cumulative_savings": "float",
"gross_cumulative_savings": "float"
},
"uc_allocation": [
{
"series": "string",
"percentage": "float"
}
]
}
This endpoint performs a simulation for delegated management allocations.
HTTP Request
POST /simulator-service/simulator/delegated_management
Request body
The request body is a JSON object representing a simulation request.
The SimulationRequest object
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| simulator_uuid | true | string | Unique identifier of the simulator to use. Provided by AAA. |
| target_amount | false | number | The amount of money the client wishes to reach at horizon. |
| horizon | true | integer | The length (in number of months) of the project’s analysis period. |
| current_savings | false | number | The money the client has on his account before the project starts. |
| start_date | true | string | The starting point in time of the simulation. Format is YYYYMM. |
| simple_deposits | false | [SimpleCashFlow] | The series of projected one-time cash contributions. |
| periodic_deposits | false | [PeriodicCashFlow] | The series of projected recurring cash contributions. |
| simple_withdrawals | false | [SimpleCashFlow] | The series of projected one-time cash withdrawals. |
| periodic_withdrawals | false | [PeriodicCashFlow] | The series of projected recurring cash withdrawals. |
| profile_idx | true | integer | Unique identifier of the delegated profile. Provided by AAA. |
The SimpleCashFlow object
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| amount | true | number | The amount of the cash flow. |
| date | true | string | The date of the cash flow. Format is YYYYMM. |
The PeriodicCashFlow object
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| amount | true | number | The amount of the cash flow. |
| start_date | true | string | The date to start the recurrence. Format is YYYYMM. |
| end_date | true | string | The date to end the recurrence. Format is YYYYMM. |
| frequency | true | string | Frequency of the recurrence. Can be MONTHLY/QUARTERLY/YEARLY/SEMI_ANNUALLY |
Glidepath Management
curl \
--location 'https://aaaic-backend.ppd.rafa.3a-digital.fr/simulator-service/simulator/glidepath_management' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <myToken>' \
--data '{
"simulation_start_date": "202008",
"simple_deposits": [
{
"amount": 5000,
"date": "202010"
}
],
"periodic_deposits": [
{
"amount": 197.2,
"start_date": "202008",
"end_date": "202507",
"frequency": "MONTHLY"
}
],
"target_amount": 5000,
"horizon": 60,
"current_savings": 1000,
"simulator_uuid": "aaaic:simulators:170",
"profile_idx": 2,
"age": 35
}'
The above command returns JSON structured like this:
{
"success_percentage": "float",
"graphs": {
"nb_scenarios": "int",
"scenarios_smooth": [
{
"name": "string",
"data": [
{
"x": "float",
"y": "float"
}
]
}
],
"synthesis": {
"savings": {
"x": "float",
"y": "float"
},
"median": {
"x": "float",
"y": "float"
},
"lower_area": {
"x": "float",
"high": "float",
"low": "float"
},
"mid_area": {
"x": "float",
"high": "float",
"low": "float"
},
"upper_area": {
"x": "float",
"high": "float",
"low": "float"
}
},
"success_percentage": "float",
"scenarios_perc_above_cumulative_savings": "float",
"id": "string",
"scenarios": [
{
"name": "savings",
"data": [
{
"x": "float",
"y": "float"
}
],
"lineWidth": "float",
"zIndex": "float"
}
]
},
"statistics": {
"mar_ratio": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"sharp_ratio": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"annualized_return": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"max_drawdown": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
},
"annualized_volatility": {
"quantile_25": "float",
"quantile_2.5": "float",
"quantile_50": "float",
"quantile_75": "float",
"quantile_97.5": "float"
}
},
"scenarios_table": {
"capital_distribution_at_horizon": {
"max": "float",
"min": "float",
"in_between": {
"high": "float",
"low": "float"
}
},
"capital_gain_or_loss": {
"max": "float",
"min": "float",
"in_between": {
"high": "float",
"low": "float"
}
},
"absolute_return": {
"max": "float",
"min": "float",
"in_between": {
"high": "float",
"low": "float"
}
},
"cumulative_savings": "float",
"gross_cumulative_savings": "float"
},
"uc_allocation": [
{
"series": "string",
"percentage": "float"
}
]
}
This endpoint performs a simulation for glidepath management allocations.
HTTP Request
POST /simulator-service/simulator/glidepath_management
Request body
The request body is a JSON object representing a simulation request.
The SimulationRequest object
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| simulator_uuid | true | string | Unique identifier of the simulator to use. Provided by AAA. |
| target_amount | false | number | The amount of money the client wishes to reach at horizon. |
| horizon | true | integer | The length (in number of months) of the project’s analysis period. |
| current_savings | false | number | The money the client has on his account before the project starts. |
| start_date | true | string | The starting point in time of the simulation. Format is YYYYMM. |
| simple_deposits | false | [SimpleCashFlow] | The series of projected one-time cash contributions. |
| periodic_deposits | false | [PeriodicCashFlow] | The series of projected recurring cash contributions. |
| simple_withdrawals | false | [SimpleCashFlow] | The series of projected one-time cash withdrawals. |
| periodic_withdrawals | false | [PeriodicCashFlow] | The series of projected recurring cash withdrawals. |
| profile_idx | true | integer | Unique identifier of the delegated profile. Provided by AAA. |
| age | true | integer | The age of the customer |
The SimpleCashFlow object
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| amount | true | number | The amount of the cash flow. |
| date | true | string | The date of the cash flow. Format is YYYYMM. |
The PeriodicCashFlow object
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| amount | true | number | The amount of the cash flow. |
| start_date | true | string | The date to start the recurrence. Format is YYYYMM. |
| end_date | true | string | The date to end the recurrence. Format is YYYYMM. |
| frequency | true | string | Frequency of the recurrence. Can be MONTHLY/QUARTERLY/YEARLY/SEMI_ANNUALLY |
Premia Module
The Premia module is an intelligent tool that supports advisors at every step of their advisory duty. Risk profile definition and saver objectives, integration of their ESG preferences, for tailored allocation recommendations through an algorithmic adequacy engine. All this allows for automatically generating a complete investment proposal, compliant and ready to share with the saver.
This endpoint allows you to create a Premia session. You authenticate with a JWT, create a session via the API, then redirect the user to Premia with the returned session hash.
Create a Premia Session
# Example 1: subscription to a new contract
curl \
--location '{BASE_BACKEND_URL}/premia/api/v1/sessions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <myToken>' \
--data '{
"recoJourneyUuid": "aaaic:reco_journeys:4",
"extProductCode": "PERZEN",
"extSessionCode": "123456",
"contactEmail": "adeline.monet@gmail.com",
"clientLastName": "Monet",
"clientFirstName": "Adeline",
"clientBirthDate": "19800101",
"coSubscriberLastName": "Jean",
"coSubscriberFirstName": "Monet",
"coSubscriberBirthDate": "19780331",
"legalPersonName": "",
"legalPersonIdentifier": "",
"legalPersonRepresentativeLastName": "",
"legalPersonRepresentativeFirstName": "",
"depositInitialEnabled": true,
"depositInitial": 5000
}'
# Example 2: contribution / redemption / change in allocation
curl \
--location '{BASE_BACKEND_URL}/premia/api/v1/sessions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <myToken>' \
--data '{
"recoJourneyUuid": "aaaic:reco_journeys:13",
"extSessionCode": "123456",
"extProductCode": "01t0N00000B9B8pQAF",
"contactEmail": "adeline.monet@gmail.com",
"clientLastName": "Monet",
"clientFirstName": "Adeline",
"clientBirthDate": "19800101",
"coSubscriberLastName": "Jean",
"coSubscriberFirstName": "Monet",
"coSubscriberBirthDate": "19780331",
"legalPersonName": "",
"legalPersonIdentifier": "",
"legalPersonRepresentativeLastName": "",
"legalPersonRepresentativeFirstName": "",
"depositInitialEnabled": false,
"clientRiskKey": "2",
"clientRiskKeyLastUpdateDate": "20250101",
"hasSustainablePreferences": true,
"minSustainableInvestments": 15,
"minTaxonomyAlignment": null,
"minCoveragePai": 0.50,
"greenhouseGasEmissions": true,
"impactOnBiodiversity": false,
"waterEmissions": true,
"hazardousWaste": false,
"controversialWeapons": false,
"monitoringOfInternationalPrinciples": false,
"respectOfInternationalPrinciples": false,
"genderPayGap": false,
"lowBoardGenderDiversity": false,
"clientEsgLastUpdateDate": "20250101",
"periodicDepositsEnabled": true,
"regularContributionsAmount": 500,
"regularContributionsFormat": "CHOSEN_FREQUENCY",
"regularContributionsFrequency": "MONTHLY",
"currentComposition": {
"compositionParts": [
{
"partWeights": [
{
"amount": 400,
"displayName": "Mirova Europe Environnement",
"extCode": "LU0914733059"
},
{
"amount": 300,
"displayName": "Afer Rendement Juin 2023",
"extCode": "FR5272AB0288"
},
{
"amount": 250,
"displayName": "SC Advenis Immo Capital",
"extCode": "P801_SCI001"
}
],
"type": "FREE_MANAGEMENT"
}
]
}
}'
The above command returns JSON structured like this:
{
"sessionHash": "abc123"
}
HTTP Request
POST /premia/api/v1/sessions
Request body
The request body is a JSON object with all the information to initiate a session on Premia. Depending on the use case, it is built differently. Examples are provided on the right to illustrate the following cases:
- subscription to a new contract
- contribution / redemption / change in allocation for an existing contract
Response
In response, the service will provide a session hash, which is required to initiate the corresponding session on Premia.
The PremiaSessionRequest object
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| recoJourneyUuid | true | string | Identifier of the Premia configuration to use. Provided by AAA. |
| extProductCode | true | string | Your product code in the partner system (e.g., PERZEN). |
| extSessionCode | true | string | Your internal reference for traceability. |
| contactEmail | false | string | Contact email for notifications. |
| clientLastName | true | string | Client last name. |
| clientFirstName | true | string | Client first name. |
| clientBirthDate | true | string | Client birth date in YYYYMMDD format. |
| coSubscriberLastName | false | string | Co-subscriber last name (if applicable). |
| coSubscriberFirstName | false | string | Co-subscriber first name (if applicable). |
| coSubscriberBirthDate | false | string | Co-subscriber birth date in YYYYMMDD format (if applicable). |
| legalPersonName | false | string | Legal entity name (for corporate subscriptions). |
| legalPersonIdentifier | false | string | Legal entity identifier (e.g., SIREN). |
| legalPersonRepresentativeLastName | false | string | Legal representative last name (for corporate subscriptions). |
| legalPersonRepresentativeFirstName | false | string | Legal representative first name (for corporate subscriptions). |
| depositInitialEnabled | false | boolean | Whether an initial deposit is enabled. |
| depositInitial | conditional | number | Initial deposit amount. Required when depositInitialEnabled is true. |
| clientRiskKey | false | string | Client risk profile key (e.g., “2”). |
| clientRiskKeyLastUpdateDate | false | string | Date of last update of the risk profile in YYYYMMDD format. |
| hasSustainablePreferences | false | boolean | Does the client have sustainable/ESG preferences? |
| minSustainableInvestments | false | number | Minimum % of sustainable investments (use “15” for 15%). |
| minTaxonomyAlignment | false | number | Minimum % taxonomy alignment (use “15” for 15%). |
| minCoveragePai | false | number | Minimum % coverage for PAIs (use “15” for 15%). |
| greenhouseGasEmissions | false | boolean | PAI Climate. |
| impactOnBiodiversity | false | boolean | PAI Biodiversity. |
| waterEmissions | false | boolean | PAI Water quality. |
| hazardousWaste | false | boolean | PAI Responsible waste management. |
| controversialWeapons | false | boolean | PAI Controversial weapons control. |
| monitoringOfInternationalPrinciples | false | boolean | PAI Monitoring of international principles. |
| respectOfInternationalPrinciples | false | boolean | PAI Respect of international principles. |
| genderPayGap | false | boolean | PAI Gender pay gap. |
| lowBoardGenderDiversity | false | boolean | PAI Low board gender diversity. |
| clientEsgLastUpdateDate | false | string | Date of last update of ESG preferences in YYYYMMDD format. |
| periodicDepositsEnabled | false | boolean | Are periodic deposits enabled? |
| regularContributionsAmount | conditional | number | Amount of the periodic contribution. Required when periodicDepositsEnabled is true. |
| regularContributionsFormat | false | string | Contribution format. Values: “CHOSEN_FREQUENCY”. |
| regularContributionsFrequency | false | string | Contribution frequency. Values: “MONTHLY”, “QUARTERLY”, “SEMIANNUALLY”, “ANNUALLY”. |
| currentComposition | false | object | Composition of the current allocation. |
| extCode | false | string | Support code. Context: inside currentComposition.compositionParts[].partWeights[]. |
| displayName | false | string | Financial asset name. Context: inside currentComposition.compositionParts[].partWeights[]. |
| amount | false | number | Market value of the line. Context: inside currentComposition.compositionParts[].partWeights[]. |
If the input is invalid or you do not have access, the API will return standard HTTP errors (400, 403, 404) with a JSON body describing the issue.
Redirect the user to Premia
Once you receive the sessionHash, redirect the user’s browser to Premia using the following URL:
{BASE_UI_URL}/premia/sessions?hash={sessionHash}
Replace {BASE_UI_URL} with the Premia host you are integrating with (staging, production, etc.).
const res = await fetch(`${BASE_BACKEND_URL}/premia/api/v1/sessions`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`,
},
body: JSON.stringify(payload),
});
const { sessionHash } = await res.json();
window.location.href = `${BASE_UI_URL}/premia/sessions?hash=${sessionHash}`;
Resume a Premia session
Once you know the sessionHash, redirect the user’s browser to Premia using the following URL:
{BASE_UI_URL}/premia/sessions?hash={sessionHash}
Replace {BASE_UI_URL} with the Premia host you are integrating with (staging, production, etc.).
Errors
The Coanda API uses the following error codes:
4xx
| Error Code | Meaning |
|---|---|
| 401 | Unauthorized – Token is invalid. |
| 403 | Forbidden – Credentials are correct but permissions are not. |
| 404 | Not Found – The specified endpoint does not exist. |
| 405 | Method Not Allowed – You tried to access a endpoint with an invalid method. |
| 422 | Bad Request – Your request is invalid. |
| 429 | Too Many Requests – You’re sending too many requests in a small interval. Slow down! |
5xx
| Error Code | Meaning |
|---|---|
| 500 | Internal Server Error – We had a problem with our server. Try again later. |
| 503 | Service Unavailable – We’re temporarily offline for maintenance. Please try again later. |
