Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
version: 0.0.3
title: Alviere Authentication API
contact:
email: support@alviere.com
url: http://alviere.com/
x-logo:
url: img/alviere-logo.svg
description: '# Introduction
Welcome to Alviere!
This page provides developer API documentation for integrating into the Alviere platform.
### Notes
* All times are in UTC time standard
* All date fields use the RFC 3339 version of the ISO-8601 standard format'
servers:
- url: https://api.snd.alviere.com
description: Alviere API
tags:
- name: Authentication
description: 'Alviere uses the openid authentication standard.
This section details what is required for authentication and access to the Alviere endpoints.
### Get API Credentials
In order to connect to the API, you’ll need to have authentication credentials that should be provided by your Relationship Manager.
If you don’t have authentication credentials yet, please request them by sending an email from your company email to support@alviere.com.
### Api Authentication
In order to authenticate to the platform you''ll need the following information:
* **client_id**: Your unique client ID in the Alviere platform
* **client_secret**: Your API key used to connect to the APIs; you may have more than one secret for your account
* **username**: The username that will be used for authentication
* **password**: The password that will be used for authentication
### Authentication Flow
The following details the flow for authentication:
1. To call any of the APIs in the platform you''ll need an access token, so this is always the service you need to call first
2. The response object from the authentication endpoint will return multiple fields as per the JWT specification. Below are the most relevant:
* **access_token**: The token that is used for all subsequent calls to the API
* **expires_in**: The time limit after which the access token will expire; in seconds
3. On all subsequent calls to the API, you''ll need to include a header in the HTTP request with that information.
The format of the header is `Authorization: Bearer [you_access_token]`'
paths:
/auth/realms/customers/protocol/openid-connect/token:
servers:
- url: https://auth.snd.alviere.com
description: Authentication API
post:
tags:
- Authentication
summary: Request an access token
description: Authenticates the user and returns an access token to be used in every subsequent API request
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- client_id
- client_secret
- grant_type
properties:
client_id:
type: string
description: Your unique Client ID in the Alviere platform
example: your_client_id
client_secret:
type: string
description: The API key for authentication in the Alviere platform
example: your_client_secret
grant_type:
description: 'To authenticate to the API *always* use `client_credentials` in this field
'
type: string
example: password
responses:
'200':
description: 'The request was successful and the user is authenticated.
The `JWT` token that is returned should be used in every subsequent call to the API.
'
content:
application/json:
schema:
type: object
required:
- access_token
- expires_in
- refresh_expires_in
- refresh_token
- token_type
- not-before-policy
- session_state
- scope
properties:
access_token:
type: string
description: The JWT token to be used for every API request.
example: eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUI...
expires_in:
type: integer
description: The expiration time for the token, in seconds.
example: 300
refresh_expires_in:
type: integer
description: The expiration time for the refresh token, in seconds.
example: 1800
refresh_token:
type: string
description: The refresh token that can be used to refresh a session token.
example: eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUrw...
token_type:
type: string
description: The type of token returned by the authentication server. In this version of the API this property will always return `bearer`
example: bearer
not-before-policy:
type: integer
description: The not before policy for the JWT token. Defaults to 0
example: 0
session_state:
type: string
description: Unique identifier of the session state
example: 8c573816-96b1-4dc3-bce8-e59fd2bf9dec
scope:
type: string
description: The scope of the session.
example: null
'400':
description: 'The request for authentication was denied.
The provided credentials are not valid for system access.
'
x-codeSamples:
- lang: Shell + Curl
source: "curl --request POST \\\n --url https://api.snd.alviere.com/auth/realms/customers/protocol/openid-connect/token \\\n --header 'content-type: application/x-www-form-urlencoded'"
- lang: Go + Native
source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://api.snd.alviere.com/auth/realms/customers/protocol/openid-connect/token\"\n\n\treq, _ := http.NewRequest(\"POST\", url, nil)\n\n\treq.Header.Add(\"content-type\", \"application/x-www-form-urlencoded\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}"
- lang: Python + Python3
source: 'import http.client
conn = http.client.HTTPSConnection("api.snd.alviere.com")
headers = { ''content-type'': "application/x-www-form-urlencoded" }
conn.request("POST", "/auth/realms/customers/protocol/openid-connect/token", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))'
- lang: Php + Curl
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"https://api.snd.alviere.com/auth/realms/customers/protocol/openid-connect/token\",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => \"\",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => \"POST\",\n CURLOPT_HTTPHEADER => [\n \"content-type: application/x-www-form-urlencoded\"\n ],\n]);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo \"cURL Error #:\" . $err;\n} else {\n echo $response;\n}"
- lang: Swift + Nsurlsession
source: "import Foundation\n\nlet headers = [\"content-type\": \"application/x-www-form-urlencoded\"]\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://api.snd.alviere.com/auth/realms/customers/protocol/openid-connect/token\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"POST\"\nrequest.allHTTPHeaderFields = headers\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()"
operationId: postAuthRealmsCustomersProtocolOpenidConnectToken
x-operation-id-source: derived
/v1/sdk/auth/generate/web/session:
post:
tags:
- Authentication
summary: Request a web session
description: This generates a secure and authenticated session under your account to be used with the Web SDK
parameters:
- in: header
name: Authorization
required: true
description: The access token.
example: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUI...
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
account_uuid:
type: string
format: uuid
title: Account UUID
responses:
'201':
description: 'The request was successful and the user is authenticated.
The `Session ID` that is returned should be used to instantiate our WEB SDK''s.
'
content:
application/json:
schema:
type: object
required:
- session_id
properties:
session_id:
type: string
description: The newly created session ID
format: uuid
'400':
description: Bad Request
headers:
Alv-Request-Id:
description: 'Alviere''s internal unique identifier for the request. This ID is automatically generated by our API service and
spans across our entire infrastructure allowing tech ops to trace a request. This id has no business use case
and serves solely for the purpose of technical debugging and troubleshooting.
'
example: 8944355f-342d-42df-9ec9-5b12e619d504
schema:
type: string
content:
application/json:
schema:
type: object
properties:
error_code:
title: The unique error code
description: This error mainly occurs because there is a missing or invalid property in the request payload
type: string
example: '50001'
error_description:
title: A description of the error that occurred
description: Description of the error in plain english
type: string
example: Missing required property in payload
'404':
description: Not Found
headers:
Alv-Request-Id:
description: 'Alviere''s internal unique identifier for the request. This ID is automatically generated by our API service and
spans across our entire infrastructure allowing tech ops to trace a request. This id has no business use case
and serves solely for the purpose of technical debugging and troubleshooting.
'
example: 8944355f-342d-42df-9ec9-5b12e619d504
schema:
type: string
content:
application/json:
schema:
type: object
properties:
error_code:
title: The unique error code
description: This error occurs when the object you are trying to access was not found. Please review the object uuid you are sending in this transaction
type: string
example: '50004'
error_description:
title: A description of the error that occurred
description: Description of the error in plain english
type: string
example: Resource not found
x-codeSamples:
- lang: Shell + Curl
source: "curl --request POST \\\n --url https://api.snd.alviere.com/v1/sdk/auth/generate/web/session \\\n --header 'Authorization: SOME_STRING_VALUE' \\\n --header 'content-type: application/json' \\\n --data '{\"account_uuid\":\"847548f7-9cde-4fe5-8751-32ff19825b7e\"}'"
- lang: Go + Native
source: "package main\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://api.snd.alviere.com/v1/sdk/auth/generate/web/session\"\n\n\tpayload := strings.NewReader(\"{\\\"account_uuid\\\":\\\"847548f7-9cde-4fe5-8751-32ff19825b7e\\\"}\")\n\n\treq, _ := http.NewRequest(\"POST\", url, payload)\n\n\treq.Header.Add(\"content-type\", \"application/json\")\n\treq.Header.Add(\"Authorization\", \"SOME_STRING_VALUE\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}"
- lang: Python + Python3
source: "import http.client\n\nconn = http.client.HTTPSConnection(\"api.snd.alviere.com\")\n\npayload = \"{\\\"account_uuid\\\":\\\"847548f7-9cde-4fe5-8751-32ff19825b7e\\\"}\"\n\nheaders = {\n 'content-type': \"application/json\",\n 'Authorization': \"SOME_STRING_VALUE\"\n }\n\nconn.request(\"POST\", \"/v1/sdk/auth/generate/web/session\", payload, headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))"
- lang: Php + Curl
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"https://api.snd.alviere.com/v1/sdk/auth/generate/web/session\",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => \"\",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => \"POST\",\n CURLOPT_POSTFIELDS => \"{\\\"account_uuid\\\":\\\"847548f7-9cde-4fe5-8751-32ff19825b7e\\\"}\",\n CURLOPT_HTTPHEADER => [\n \"Authorization: SOME_STRING_VALUE\",\n \"content-type: application/json\"\n ],\n]);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo \"cURL Error #:\" . $err;\n} else {\n echo $response;\n}"
- lang: Swift + Nsurlsession
source: "import Foundation\n\nlet headers = [\n \"content-type\": \"application/json\",\n \"Authorization\": \"SOME_STRING_VALUE\"\n]\nlet parameters = [\"account_uuid\": \"847548f7-9cde-4fe5-8751-32ff19825b7e\"] as [String : Any]\n\nlet postData = JSONSerialization.data(withJSONObject: parameters, options: [])\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://api.snd.alviere.com/v1/sdk/auth/generate/web/session\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"POST\"\nrequest.allHTTPHeaderFields = headers\nrequest.httpBody = postData as Data\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()"
operationId: postV1SdkAuthGenerateWebSession
x-operation-id-source: derived
/v1/sdk/auth/generate/mobile/token:
post:
tags:
- Authentication
summary: Request a mobile token
description: This generates a secure and authenticated token under your account to be used with the Mobile SDK
parameters:
- in: header
name: Authorization
required: true
description: The access token.
example: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUI...
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
account_uuid:
type: string
format: uuid
title: Account UUID
with_plaid_sdk_token:
type: boolean
responses:
'201':
description: 'The request was successful and the user is authenticated.
The `JWT` token that is returned should be used to instantiate our Mobile SDK''s.
'
content:
application/json:
schema:
type: object
required:
- auth_token
properties:
auth_token:
type: string
description: The newly generated authentication token
plaid_sdk_token:
type: string
description: The retrieved Plaid SDK token which corresponds to the `link_token` on Plaid.
plaid_sdk_token_expires_at:
type: string
format: date-time
description: The Plaid SDK token expiration date.
'400':
description: Bad Request
headers:
Alv-Request-Id:
description: 'Alviere''s internal unique identifier for the request. This ID is automatically generated by our API service and
spans across our entire infrastructure allowing tech ops to trace a request. This id has no business use case
and serves solely for the purpose of technical debugging and troubleshooting.
'
example: 8944355f-342d-42df-9ec9-5b12e619d504
schema:
type: string
content:
application/json:
schema:
type: object
properties:
error_code:
title: The unique error code
description: This error mainly occurs because there is a missing or invalid property in the request payload
type: string
example: '50001'
error_description:
title: A description of the error that occurred
description: Description of the error in plain english
type: string
example: Missing required property in payload
'404':
description: Not Found
headers:
Alv-Request-Id:
description: 'Alviere''s internal unique identifier for the request. This ID is automatically generated by our API service and
spans across our entire infrastructure allowing tech ops to trace a request. This id has no business use case
and serves solely for the purpose of technical debugging and troubleshooting.
'
example: 8944355f-342d-42df-9ec9-5b12e619d504
schema:
type: string
content:
application/json:
schema:
type: object
properties:
error_code:
title: The unique error code
description: This error occurs when the object you are trying to access was not found. Please review the object uuid you are sending in this transaction
type: string
example: '50004'
error_description:
title: A description of the error that occurred
description: Description of the error in plain english
type: string
example: Resource not found
'503':
description: Service Unavailable
headers:
Alv-Request-Id:
description: 'Alviere''s internal unique identifier for the request. This ID is automatically generated by our API service and
spans across our entire infrastructure allowing tech ops to trace a request. This id has no business use case
and serves solely for the purpose of technical debugging and troubleshooting.
'
example: 8944355f-342d-42df-9ec9-5b12e619d504
schema:
type: string
content:
application/json:
schema:
type: object
properties:
error_code:
title: The unique error code
description: This error indicates that the server failed to retrieve the mobile token.
type: string
example: '110003'
error_description:
title: A description of the error that occurred
description: Description of the error in plain english
type: string
example: failed to retrieve plaid sdk token from gateway
x-codeSamples:
- lang: Shell + Curl
source: "curl --request POST \\\n --url https://api.snd.alviere.com/v1/sdk/auth/generate/mobile/token \\\n --header 'Authorization: SOME_STRING_VALUE' \\\n --header 'content-type: application/json' \\\n --data '{\"account_uuid\":\"847548f7-9cde-4fe5-8751-32ff19825b7e\",\"with_plaid_sdk_token\":true}'"
- lang: Go + Native
source: "package main\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://api.snd.alviere.com/v1/sdk/auth/generate/mobile/token\"\n\n\tpayload := strings.NewReader(\"{\\\"account_uuid\\\":\\\"847548f7-9cde-4fe5-8751-32ff19825b7e\\\",\\\"with_plaid_sdk_token\\\":true}\")\n\n\treq, _ := http.NewRequest(\"POST\", url, payload)\n\n\treq.Header.Add(\"content-type\", \"application/json\")\n\treq.Header.Add(\"Authorization\", \"SOME_STRING_VALUE\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}"
- lang: Python + Python3
source: "import http.client\n\nconn = http.client.HTTPSConnection(\"api.snd.alviere.com\")\n\npayload = \"{\\\"account_uuid\\\":\\\"847548f7-9cde-4fe5-8751-32ff19825b7e\\\",\\\"with_plaid_sdk_token\\\":true}\"\n\nheaders = {\n 'content-type': \"application/json\",\n 'Authorization': \"SOME_STRING_VALUE\"\n }\n\nconn.request(\"POST\", \"/v1/sdk/auth/generate/mobile/token\", payload, headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))"
- lang: Php + Curl
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"https://api.snd.alviere.com/v1/sdk/auth/generate/mobile/token\",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => \"\",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => \"POST\",\n CURLOPT_POSTFIELDS => \"{\\\"account_uuid\\\":\\\"847548f7-9cde-4fe5-8751-32ff19825b7e\\\",\\\"with_plaid_sdk_token\\\":true}\",\n CURLOPT_HTTPHEADER => [\n \"Authorization: SOME_STRING_VALUE\",\n \"content-type: application/json\"\n ],\n]);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo \"cURL Error #:\" . $err;\n} else {\n echo $response;\n}"
- lang: Swift + Nsurlsession
source: "import Foundation\n\nlet headers = [\n \"content-type\": \"application/json\",\n \"Authorization\": \"SOME_STRING_VALUE\"\n]\nlet parameters = [\n \"account_uuid\": \"847548f7-9cde-4fe5-8751-32ff19825b7e\",\n \"with_plaid_sdk_token\": true\n] as [String : Any]\n\nlet postData = JSONSerialization.data(withJSONObject: parameters, options: [])\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://api.snd.alviere.com/v1/sdk/auth/generate/mobile/token\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"POST\"\nrequest.allHTTPHeaderFields = headers\nrequest.httpBody = postData as Data\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()"
operationId: postV1SdkAuthGenerateMobileToken
x-operation-id-source: derived