List all available API to get and create Score and Analysis for businesses.
Each requests must be set with an Authorization header using a Bearer JSON Web Token after authenticating with your client credentials.
Authentication
Algoan provides JSON Web Tokens based on the OAuth2 protocol to authenticate your organization.
When you create a new project, you will need to use the service account shared by Algoan containing a client_id
and a client_secret
.
NOTE: this is the only API where request's parameters are formatted as snake case.
Create a new access token
Generates a new access token to use Algoan's APIs
OAuth2 request body with two grant types - client_credentials
and refresh_token
object | object | Auth request body to generate a new access token | |
client | string | Your client ID | |
client | uuid | Your client secret | |
grant | string | Specify the type of grant access Enum: |
xxxxxxxxxx
curl --request POST \
--url 'https://api.algoan.com/v1/oauth/token'
Access Token instance
object | object | ||
access | string | The access token required for each API. | |
expires | number | Number of seconds until the access token expires | |
refresh | number | Number of seconds until the refresh token expires | |
refresh | string | Refresh token used to generate a new access token | |
token | string | Type of access token (will always be set to |
xxxxxxxxxx
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIi...5jUKEv5KyzShp5pqg",
"expires_in": 86400,
"refresh_expires_in": 864000,
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5...fsWGA82PQC_6OXoyU4",
"token_type": "bearer"
}
Business
represents a business able to connect/aggregate their bank accounts. It is unique per organization, project and custom identifier.
Get a list of all the buisnesses
Get a list of buisnesses
limit | string | Limit the number of returned buisnesses | |
page | string | Indicates the query offset | |
filter | string | Filter buisnesses |
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v2/businesses' \
--header 'Authorization: Bearer {token}' \
--data limit={limit} \
--data page={page} \
--data filter=%7B%22reports.completedAnalyses.count%22:%7B%22$gt%22:%200%7D%7D
Buisnesse response
object | object | ||
resources | array[object] | ||
id | string | Algoan unique identifier | |
customIdentifier | string | A custom identifier that will be attached to your business. This can be used to identify a business based on your internal reference. | |
aggregationDetails | object | Information about the AIS provider used for this report | |
aggregatorName | string | Name of the aggregator company Enum: | |
callbackUrl | string | Callback URL set for a business. Used to redirect the business back to your user journey if you are using the aggregation in | |
token | string | Temporary access token set for Algoan's UI to communicate with the aggregator's API | |
mode | string | Mode used for the business journey:
Enum: | |
redirectUrl | string | Redirect URL used for the end-user. Specific to REDIRECT mode | |
apiUrl | string | URL used to call API using API mode | |
iframeUrl | string | Iframe URL used for the end-user. Specific to IFRAME mode | |
userId | string | Aggregator user identifier If the value is reset, it means the user access has been revoked. | |
clientId | string | Aggregator client ID used to authenticate a user with your organization | |
businessDetails | object | Information about the business | |
openBankingInformation | object | Information about the business retrieved from the Open Banking process | |
owners | array[object] | Owners of the accounts Same names are merged. | |
name | string | Name of the owner | |
createdAt | date-time | Business date of creation | |
updatedAt | date-time | Latest update of the business | |
pagination | object | details about the pagination of returned resources | |
next | string | Next page | |
previous | string | Previous page | |
first | string | First page | |
last | string | Last page | |
totalPages | number | Total number of pages | |
totalResources | number | total number of resources |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
xxxxxxxxxx
{
"resources": [
{
"id": "6013d7991496b7395090f05c",
"customIdentifier": "my_id_43523",
"aggregationDetails": {
"aggregatorName": "{string}",
"callbackUrl": "{string}",
"token": "{string}",
"mode": "{string}",
"redirectUrl": "{string}",
"apiUrl": "{string}",
"iframeUrl": "{string}",
"userId": "{string}",
"clientId": "{string}"
},
"businessDetails": {},
"openBankingInformation": {
"owners": [
{
"name": "John Doe"
}
]
},
"createdAt": "{date-time}",
"updatedAt": "{date-time}"
}
],
"pagination": {
"next": "{string}",
"previous": "{string}",
"first": "{string}",
"last": "{string}",
"totalPages": "{number}",
"totalResources": "{number}"
}
}
Create a business
Creates a new business instance
New business to create
object | object | Information about a business and its journey through Algoan. | |
customIdentifier | string | A custom identifier that will be attached to your business. This can be used to identify a business based on your internal reference. | |
aggregationDetails | object | Information about the AIS provider used for this report | |
callbackUrl | string | Callback URL set for a business. Used to redirect the business back to your user journey if you are using the aggregation in | |
token | string | Temporary access token set for Algoan's UI to communicate with the aggregator's API | |
redirectUrl | string | Redirect URL used for the end-user. Specific to REDIRECT mode | |
apiUrl | string | URL used to call API using API mode | |
iframeUrl | string | Iframe URL used for the end-user. Specific to IFRAME mode | |
userId | string | Aggregator user identifier If the value is reset, it means the user access has been revoked. | |
clientId | string | Aggregator client ID used to authenticate a user with your organization | |
businessDetails | object | Information about the business |
xxxxxxxxxx
curl --request POST \
--url 'https://api.algoan.com/v2/businesses' \
--header 'Authorization: Bearer {token}' \
--data '{
"customIdentifier": "my_id_43523",
"aggregationDetails": {
"callbackUrl": "{string}",
"token": "{string}",
"redirectUrl": "{string}",
"apiUrl": "{string}",
"iframeUrl": "{string}",
"userId": "{string}",
"clientId": "{string}"
},
"businessDetails": {}
}'
New buisness created
object | object | Information about a business and its journey through Algoan. | |
id | string | Algoan unique identifier | |
customIdentifier | string | A custom identifier that will be attached to your business. This can be used to identify a business based on your internal reference. | |
aggregationDetails | object | Information about the AIS provider used for this report | |
aggregatorName | string | Name of the aggregator company Enum: | |
callbackUrl | string | Callback URL set for a business. Used to redirect the business back to your user journey if you are using the aggregation in | |
token | string | Temporary access token set for Algoan's UI to communicate with the aggregator's API | |
mode | string | Mode used for the business journey:
Enum: | |
redirectUrl | string | Redirect URL used for the end-user. Specific to REDIRECT mode | |
apiUrl | string | URL used to call API using API mode | |
iframeUrl | string | Iframe URL used for the end-user. Specific to IFRAME mode | |
userId | string | Aggregator user identifier If the value is reset, it means the user access has been revoked. | |
clientId | string | Aggregator client ID used to authenticate a user with your organization | |
businessDetails | object | Information about the business | |
openBankingInformation | object | Information about the business retrieved from the Open Banking process | |
owners | array[object] | Owners of the accounts Same names are merged. | |
name | string | Name of the owner | |
createdAt | date-time | Business date of creation | |
updatedAt | date-time | Latest update of the business |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Unprocessable Entity
xxxxxxxxxx
{
"id": "6013d7991496b7395090f05c",
"customIdentifier": "my_id_43523",
"aggregationDetails": {
"aggregatorName": "{string}",
"callbackUrl": "{string}",
"token": "{string}",
"mode": "{string}",
"redirectUrl": "{string}",
"apiUrl": "{string}",
"iframeUrl": "{string}",
"userId": "{string}",
"clientId": "{string}"
},
"businessDetails": {},
"openBankingInformation": {
"owners": [
{
"name": "John Doe"
}
]
},
"createdAt": "{date-time}",
"updatedAt": "{date-time}"
}
Get a single Business
Returns a business based on a single ID
id | string | ID of the business to fetch |
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v2/businesses/%7Bid%7D' \
--header 'Authorization: Bearer {token}'
Business response
object | object | Information about a business and its journey through Algoan. | |
id | string | Algoan unique identifier | |
customIdentifier | string | A custom identifier that will be attached to your business. This can be used to identify a business based on your internal reference. | |
aggregationDetails | object | Information about the AIS provider used for this report | |
aggregatorName | string | Name of the aggregator company Enum: | |
callbackUrl | string | Callback URL set for a business. Used to redirect the business back to your user journey if you are using the aggregation in | |
token | string | Temporary access token set for Algoan's UI to communicate with the aggregator's API | |
mode | string | Mode used for the business journey:
Enum: | |
redirectUrl | string | Redirect URL used for the end-user. Specific to REDIRECT mode | |
apiUrl | string | URL used to call API using API mode | |
iframeUrl | string | Iframe URL used for the end-user. Specific to IFRAME mode | |
userId | string | Aggregator user identifier If the value is reset, it means the user access has been revoked. | |
clientId | string | Aggregator client ID used to authenticate a user with your organization | |
businessDetails | object | Information about the business | |
openBankingInformation | object | Information about the business retrieved from the Open Banking process | |
owners | array[object] | Owners of the accounts Same names are merged. | |
name | string | Name of the owner | |
createdAt | date-time | Business date of creation | |
updatedAt | date-time | Latest update of the business |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Business not found
xxxxxxxxxx
{
"id": "6013d7991496b7395090f05c",
"customIdentifier": "my_id_43523",
"aggregationDetails": {
"aggregatorName": "{string}",
"callbackUrl": "{string}",
"token": "{string}",
"mode": "{string}",
"redirectUrl": "{string}",
"apiUrl": "{string}",
"iframeUrl": "{string}",
"userId": "{string}",
"clientId": "{string}"
},
"businessDetails": {},
"openBankingInformation": {
"owners": [
{
"name": "John Doe"
}
]
},
"createdAt": "{date-time}",
"updatedAt": "{date-time}"
}
Delete a single Business
Deletes all data related to the business (accounts and transactions included)
id | string | ID of the business to fetch |
xxxxxxxxxx
curl --request DELETE \
--url 'https://api.algoan.com/v2/businesses/%7Bid%7D' \
--header 'Authorization: Bearer {token}'
Empty response
No response body |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Business not found
xxxxxxxxxx
No response
Update a Business
Update a single business based on a single ID
id | string | ID of the business to fetch |
Aggregator details set by a connector
object | object | Aggregator details set by a connector | |
aggregationDetails | object | Information about the AIS provider used for this report | |
callbackUrl | string | Callback URL set for a business. Used to redirect the business back to your user journey if you are using the aggregation in | |
token | string | Temporary access token set for Algoan's UI to communicate with the aggregator's API | |
redirectUrl | string | Redirect URL used for the end-user. Specific to REDIRECT mode | |
apiUrl | string | URL used to call API using API mode | |
iframeUrl | string | Iframe URL used for the end-user. Specific to IFRAME mode | |
userId | string | Aggregator user identifier If the value is reset, it means the user access has been revoked. | |
clientId | string | Aggregator client ID used to authenticate a user with your organization |
xxxxxxxxxx
curl --request PATCH \
--url 'https://api.algoan.com/v2/businesses/%7Bid%7D' \
--header 'Authorization: Bearer {token}' \
--data '{
"aggregationDetails": {
"callbackUrl": "{string}",
"token": "{string}",
"redirectUrl": "{string}",
"apiUrl": "{string}",
"iframeUrl": "{string}",
"userId": "{string}",
"clientId": "{string}"
}
}'
Business response
object | object | Information about a business and its journey through Algoan. | |
id | string | Algoan unique identifier | |
customIdentifier | string | A custom identifier that will be attached to your business. This can be used to identify a business based on your internal reference. | |
aggregationDetails | object | Information about the AIS provider used for this report | |
aggregatorName | string | Name of the aggregator company Enum: | |
callbackUrl | string | Callback URL set for a business. Used to redirect the business back to your user journey if you are using the aggregation in | |
token | string | Temporary access token set for Algoan's UI to communicate with the aggregator's API | |
mode | string | Mode used for the business journey:
Enum: | |
redirectUrl | string | Redirect URL used for the end-user. Specific to REDIRECT mode | |
apiUrl | string | URL used to call API using API mode | |
iframeUrl | string | Iframe URL used for the end-user. Specific to IFRAME mode | |
userId | string | Aggregator user identifier If the value is reset, it means the user access has been revoked. | |
clientId | string | Aggregator client ID used to authenticate a user with your organization | |
businessDetails | object | Information about the business | |
openBankingInformation | object | Information about the business retrieved from the Open Banking process | |
owners | array[object] | Owners of the accounts Same names are merged. | |
name | string | Name of the owner | |
createdAt | date-time | Business date of creation | |
updatedAt | date-time | Latest update of the business |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Business not found
xxxxxxxxxx
{
"id": "6013d7991496b7395090f05c",
"customIdentifier": "my_id_43523",
"aggregationDetails": {
"aggregatorName": "{string}",
"callbackUrl": "{string}",
"token": "{string}",
"mode": "{string}",
"redirectUrl": "{string}",
"apiUrl": "{string}",
"iframeUrl": "{string}",
"userId": "{string}",
"clientId": "{string}"
},
"businessDetails": {},
"openBankingInformation": {
"owners": [
{
"name": "John Doe"
}
]
},
"createdAt": "{date-time}",
"updatedAt": "{date-time}"
}
Analysis
An analysis is a snapshot of a business's financial situation based on the connected bank accounts. It contains results from both products Score and Credit Insights.
NOTE: To get Credit Insights results or a Score, the analysis need to contain at least one CHECKING Account with a minimum of 1 transactions.
Create a new analysis
Creates a new analysis for a given business. There are several possible scenarios depending on the number of created analyses for a business.
First analysis
If you create for the first time an analysis for the business, there are three possible scenarios:
- You are able to fetch accounts and transactions from an AISP and send them to Algoan. In this case, the Score and Credit Insights analysis will automatically be launched as soon as the analysis instance is created.
- If you are using a connector, you should first create an analysis with no accounts and no transactions. An automatic event will then be sent to your hosted connector so it can automatically fetch data from the AISP. The analysis will be computed right after.
- If you are not using a connector and no accounts and no transactions are provided in the request body, a 403 HTTP error will be returned.
Next analyses
If you are trying to create a new analysis for a business that already has at least one analysis, here is a list of possible scenarios:
- As soon as you create an analysis with new accounts and transactions, the new analysis result will be based on all accounts and transactions that belong to the business (including those used in previous analyses).
- If you are using a connector, you should first create an analysis with no accounts and no transactions. An automatic event will then be sent to your hosted connector so it can automatically fetch the latest transactions of the previously connected bank accounts. The analysis will be computed right after. This new analysis result will be based on all accounts and transactions that belong to the business (including those used in previous analyses).
- If you are not using a connector and create a new analysis with no accounts no transactions in the request body, a 403 HTTP error will be returned.
Upload Budget Insight Open Banking data
If you have integrated Budget Insight on your side, you can create an analysis with Budget Insight raw data. To do this, choose BUDGET_INSIGHT_V2_0
format and upload users' connections.
If you use Budget Insight's webhooks, listen to the CONNECTION_SYNCED
event. If you don't, you need to retrieve:
- Connections
- Connector attached to the connections
- Accounts
- Transactions
Upload Linxo Connect Open Banking data
If you have integrated Linxo Connect on your side, you can create an analysis with Linxo Connect Direct Account API raw data. To do this, choose LINXO_CONNECT_DIRECT_ACCOUNT_API_V3
format and upload users' accounts.
We also support the Account API mode. Select the LINXO_CONNECT_ACCOUNT_API_V2
format if you have integrated Linxo Connect Account API.
Upload Tink Open Banking data
Choose the TINK_V2
format if you have already integrated Tink on your side.
Upload Mastercard Open Banking Enterprise data
Choose the MASTERCARD_OPEN_BANKING_ENTERPRISE_V2
format if you have already integrated Mastercard Open Banking Enterprise (formerly Aiia) on your side.
Upload Mastercard Open Banking data
Choose the MASTERCARD_OPEN_BANKING
format if you have already integrated MASTERCARD_OPEN_BAKING on your side.
New analysis to create
object | object | Account related to the analysis | |
format | string | Original format of the open banking data (default to Enum: Default: ALGOAN | |
parameters | object | Optional parameters related to the analysis. If | |
disableScores | boolean | Set to true if you only want to launch a Credit Insights analysis | |
disableCreditInsights | boolean | Set to true if you only want to launch the Score | |
useBalanceDate | boolean | Set to true if you want to use the most recent account balance date as a reference date for the analysis instead of using the current date | |
period | object | Parameters used to compute the analyzed period. | |
mode | string | Analysis configuration mode:
m and n refer respectively to the value of numberOfDays and numberOfMonths. Enum: | |
numberOfDays | number | Number of analyzed days. | |
numberOfMonths | number | Number of analyzed months. | |
includeCheckingAccountsOnTruncateWindow | boolean | Used if mode is MONTHS_TRUNCATED. If true only the transactions of checking accounts are used to compute analysis window dates. | |
launchReport | boolean | Set to true if you want to automatically launch a report creation after the analysis is completed. You will be notified on your webhook when the report status is COMPLETED (or ERROR). | |
dataOrigin | string | Describes the origin of the analysis' data:
Enum: | |
accounts | array | Accounts including transactions (Algoan format) | |
type | string | Account's type. Enum: | |
balance | number | Last known account balance | |
balanceDate | date-time | Last known account balance's date (format ISO) | |
currency | string | Account's currency. Non | |
owners | array[object] | Owners of the account | |
name | string | name of the owner | |
number | string | Account's number | |
iban | string | Account's iban | |
bic | string | Account's bic | |
name | string | Account's name taken from the bank's website | |
bank | object | Owner's bank information | |
id | string | Aggregator unique identifier | |
logoUrl | string | URL of the bank's logo | |
name | string | Name of the bank | |
country | string | Country Code of the bank | |
usage | string | Purpose of the account. Enum: | |
ownership | string | Relationship between the business and the account. Enum: | |
country | string | The alpha-2 code country of the account (format ISO 3166-1 alpha-2) | |
coming | number | Amount of coming operations (not yet debited) | |
details | object | The details of the account | |
savings | object | Details specific to SAVINGS type accounts | |
type | string | Savings account's type Enum: | |
openedAt | date-time | Opening date of the saving account | |
maximumAmount | number | Maximum amount authorized for this account | |
interestRate | number | Interest rate of the saving account (between 0 and 1) | |
loan | object | ||
type | string | Details specific to LOAN type accounts Enum: | |
amount | number | Loan's amount | |
startDate | date-time | Loan's start date (format ISO) | |
endDate | date-time | Loan's end date (format ISO) | |
duration | number | Loan's duration in months | |
insuranceLabel | string | Label of the insurance | |
payment | number | Monthly amount of the loan | |
remainingCapital | number | Amount of capital left to repay | |
interestRate | number | Interest rate of the loan (between 0 and 1) | |
aggregator | object | Informations specific to the aggregator | |
id | string | Unique identifier set by the aggregator | |
isComputed | boolean | Whether the account will be / has been used during the Analysis computation Default: true | |
transactions | array[object] | ||
description | string | Description of the transaction. If description is an empty string, a 400 HTTP error will be returned. | |
dates | object | Dates associated with the transaction. At least one date is required, depending on the type of account. For instance, if it is a "checking" account, the "debitedAt" date is required. | |
debitedAt | date-time | Debit date as seen on the bank statement. This property may not be set if the transaction is not yet debited. This can occurs if there's a differed payement. | |
bookedAt | date-time | Realization date of the transaction | |
amount | number | Amount of the transaction (negative if debit) | |
currency | string | Transaction's currency Default: EUR | |
isComing | boolean | Indicates if the transaction will be debited or credited on the account in the future | |
aggregator | object | Additional information relative to the transaction provided by the aggregator | |
id | string | id of the transaction provided by the aggregator | |
category | string | Category provided by the aggregator | |
type | string | Type provided by the aggregator | |
triggerAccountSync | boolean | If false, the account synchronization will not be triggered, even if the account list is empty. |
xxxxxxxxxx
curl --request POST \
--url 'https://api.algoan.com/v2/businesses/{id}/analyses' \
--header 'Authorization: Bearer {token}' \
--data '{
"format": "{string}",
"parameters": {
"disableScores": "{boolean}",
"disableCreditInsights": "{boolean}",
"useBalanceDate": "{boolean}",
"period": {
"mode": "DAYS",
"numberOfDays": 90,
"numberOfMonths": 0,
"includeCheckingAccountsOnTruncateWindow": false
},
"launchReport": "{boolean}"
},
"dataOrigin": "{string}",
"accounts": [
{
"type": "CHECKING",
"balance": 3564.5,
"balanceDate": "2019-06-30T22:00:00.000Z",
"currency": "EUR",
"owners": [
{
"name": "John Doe"
}
],
"number": "1234-123456789",
"iban": "FR7630001007941234567890185",
"bic": "BDFEFR2T",
"name": "compte de pierre paul jacques",
"bank": {
"id": "{string}",
"logoUrl": "{string}",
"name": "{string}",
"country": "{string}"
},
"usage": "PERSONAL",
"ownership": "HOLDER",
"country": "FR",
"coming": 400,
"details": {
"savings": {
"type": "SHORT_TERM",
"openedAt": "2019-06-30T22:00:00.000Z",
"maximumAmount": 20000,
"interestRate": 0.1456
},
"loan": {
"type": "{string}",
"amount": 10000,
"startDate": "2019-06-30T22:00:00.000Z",
"endDate": "2019-06-30T22:00:00.000Z",
"duration": 24,
"insuranceLabel": "Insurance A",
"payment": 10,
"remainingCapital": 1000,
"interestRate": 0.1456
}
},
"aggregator": {
"id": "{string}"
},
"isComputed": "{boolean}",
"transactions": [
{
"description": "Expenses",
"dates": {
"debitedAt": "2019-06-30T22:00:00.000Z",
"bookedAt": "{date-time}"
},
"amount": 10000,
"currency": "{string}",
"isComing": false,
"aggregator": {
"id": "12a22",
"category": "{string}",
"type": "{string}"
}
}
]
}
],
"triggerAccountSync": true
}'
Analysis in progress
object | object | An analysis launched with open banking data but no Credit Insights nor Score has been computed yet. | |
id | string | Unique analysis identifier | |
format | string | Original format of the open banking data (default to Enum: Default: ALGOAN | |
parameters | object | Optional parameters related to the analysis. If | |
disableScores | boolean | Set to true if you only want to launch a Credit Insights analysis | |
disableCreditInsights | boolean | Set to true if you only want to launch the Score | |
useBalanceDate | boolean | Set to true if you want to use the most recent account balance date as a reference date for the analysis instead of using the current date | |
period | object | Parameters used to compute the analyzed period. | |
mode | string | Analysis configuration mode:
m and n refer respectively to the value of numberOfDays and numberOfMonths. Enum: | |
numberOfDays | number | Number of analyzed days. | |
numberOfMonths | number | Number of analyzed months. | |
includeCheckingAccountsOnTruncateWindow | boolean | Used if mode is MONTHS_TRUNCATED. If true only the transactions of checking accounts are used to compute analysis window dates. | |
isComputedUsingProjectConfig | boolean | Whether the analyzed period has been computed using the project's configurations or the values in period | |
launchReport | boolean | Set to true if you want to automatically launch a report creation after the analysis is completed. You will be notified on your webhook when the report status is COMPLETED (or ERROR). | |
status | string | State of the analysis:
Enum: | |
source | string | Describes the origin of the analysis' launch:
Enum: | |
dataOrigin | string | Describes the origin of the analysis' data:
Enum: | |
createdAt | date-time | Analysis date of creation | |
updatedAt | date-time | Latest update of the analysis |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Business not found
xxxxxxxxxx
{
"id": "{string}",
"format": "{string}",
"parameters": {
"disableScores": "{boolean}",
"disableCreditInsights": "{boolean}",
"useBalanceDate": "{boolean}",
"period": {
"mode": "DAYS",
"numberOfDays": 90,
"numberOfMonths": 0,
"includeCheckingAccountsOnTruncateWindow": false,
"isComputedUsingProjectConfig": false
},
"launchReport": "{boolean}"
},
"status": "{string}",
"source": "{string}",
"dataOrigin": "{string}",
"createdAt": "{date-time}",
"updatedAt": "{date-time}"
}
Get all analyses
Get a list of all the business's Analysis
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v2/businesses/{id}/analyses' \
--header 'Authorization: Bearer {token}'
List of analyses
object | object | ||
resources | array | ||
id | string | Unique analysis identifier | |
format | string | Original format of the open banking data (default to Enum: Default: ALGOAN | |
parameters | object | Optional parameters related to the analysis. If | |
disableScores | boolean | Set to true if you only want to launch a Credit Insights analysis | |
disableCreditInsights | boolean | Set to true if you only want to launch the Score | |
useBalanceDate | boolean | Set to true if you want to use the most recent account balance date as a reference date for the analysis instead of using the current date | |
period | object | Parameters used to compute the analyzed period. | |
mode | string | Analysis configuration mode:
m and n refer respectively to the value of numberOfDays and numberOfMonths. Enum: | |
numberOfDays | number | Number of analyzed days. | |
numberOfMonths | number | Number of analyzed months. | |
includeCheckingAccountsOnTruncateWindow | boolean | Used if mode is MONTHS_TRUNCATED. If true only the transactions of checking accounts are used to compute analysis window dates. | |
isComputedUsingProjectConfig | boolean | Whether the analyzed period has been computed using the project's configurations or the values in period | |
launchReport | boolean | Set to true if you want to automatically launch a report creation after the analysis is completed. You will be notified on your webhook when the report status is COMPLETED (or ERROR). | |
status | string | State of the analysis:
Enum: | |
source | string | Describes the origin of the analysis' launch:
Enum: | |
dataOrigin | string | Describes the origin of the analysis' data:
Enum: | |
createdAt | date-time | Analysis date of creation | |
updatedAt | date-time | Latest update of the analysis | |
metadata | object | Indicators about the Open Banking data used to execute the Analysis. Deprecated properties correspond to Credit Insights indicators. | |
referenceDate | date-time | Reference date of the analysis | |
creditInsights | object | Indicators about the Open Banking data used to compute the Credit Insights product | |
minWindowDate | date | Date of the oldest transaction used to compute the product | |
maxWindowDate | date | Date of the most recent transaction used to compute the product | |
creditScore | object | Indicators about the Open Banking data used to compute the Credit Score product | |
minWindowDate | date | Date of the oldest transaction used to compute the product | |
maxWindowDate | date | Date of the most recent transaction used to compute the product | |
activityScore | object | A score measuring the activity of all aggregated accounts of a bank user. This score might be used to filter out users who are not active enough or to indicate that we probably don't have access to the main account. | |
value | number | Ranges from 1 to 100, and it can be interpreted as follows:
| |
numberOfDaysInWindow | number | Number of analysed days. | |
calendar | array[object] | ||
month | string | calendar month of the history | |
nbDays | number | Number of days of the month covered in the banking history. Allows to know which months are truncated. | |
creditInsights | object | Object containing results from Credit Insights | |
version | string | Credit Insights' version | |
cashFlows | array[object] | All cash flows used to launch the analysis | |
type | string | Enum: | |
category | This is the list of all possible transactions categories. Some of them are not currently implemented yet. To have a detailed list, ask your Business Success Manager. | ||
string | string | Enum: | |
label | string | This value differs from labelRoot when a Cashflow can be split into two smaller pieces. These pieces share similarities in terms of amount and dates | |
totalAmount | number | Total amount of the cash flow over the period of analysis. Transactions that are or has been rejected are included in this sum. Negative if expense, positive if income. | |
monthlyAmount | number | Monthly amount of the cash flow. | |
calendar | array[object] | ||
month | string | Calendar month of the transaction | |
amount | number | Negative if expense, positive if income. | |
transactions | array[object] | Concerned transactions | |
id | string | Unique transaction identifier | |
accountId | string | Algoan's account identifier | |
description | string | Description of the transaction. If description is an empty string, a 400 HTTP error will be returned. | |
dates | object | Dates associated with the transaction. At least one date is required, depending on the type of account. For instance, if it is a "checking" account, the "debitedAt" date is required. | |
debitedAt | date-time | Debit date as seen on the bank statement. This property may not be set if the transaction is not yet debited. This can occurs if there's a differed payement. | |
bookedAt | date-time | Realization date of the transaction | |
amount | number | Amount of the transaction (negative if debit) | |
currency | string | Transaction's currency Default: EUR | |
enrichments | object | Properties computed by Algoan | |
category | Value computed by Credit Insights. This property describes the reason why a transaction is made. | ||
string | string | Enum: | |
type | string | Value computed by Credit Insights. This property describes the mode of transaction. Enum: | |
isComing | boolean | Indicates if the transaction will be debited or credited on the account in the future | |
aggregator | object | Additional information relative to the transaction provided by the aggregator | |
id | string | id of the transaction provided by the aggregator | |
isNonAnalysed | boolean | Indicates if the transaction is included in the last generated analysis | |
scores | object | Scores assessing the probability of default Depending on your Score configuration you can have one or many scores computed. Each score will be billed independently. | |
creditScore | object | default score with a 12-month horizon | |
version | string | Score's version | |
value | number | Between 0 and 1000. 0 is risky, 1000 is safe. This number is a transformation of the probability of default that is usually set between 0 and 1 (where 0 is safe and 1 is risky) maximum: 1000 minimum: 0 | |
indicators | object | Indicators about credit score behavior. These values reflect the behavior of the score in a way that is comprehensible for the human eye. Each of them is like an axis where the value varies from -5 to 5. The combination of these numbers is correlated to the score value. A negative value means the axis impacts the score value in a bad way where a positive value can inflate the score value. This representation is a mirror of Algoan Score. Its objective is to provide keys to an understanding of Score for a specific business. | |
paymentScore | object | default score with a 4-month horizon | |
version | string | Score's version | |
value | number | Between 1 and 10. 1 is risky, 10 is safe. This number represents the interval of risk. It's based on a transformation of the probability of default maximum: 10 minimum: 1 | |
error | object | This property is defined if the analysis is in an | |
code | string | Description :
Enum: | |
message | string | A human readable error message | |
pagination | object | details about the pagination of returned resources | |
next | string | Next page | |
previous | string | Previous page | |
first | string | First page | |
last | string | Last page | |
totalPages | number | Total number of pages | |
totalResources | number | total number of resources |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Business not found
xxxxxxxxxx
{
"resources": [...],
"pagination": {...}
}
Get an analysis
Get a unique analysis
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v2/businesses/{id}/analyses/{analysisId}' \
--header 'Authorization: Bearer {token}'
Analysis instance
object | object | An analysis launched with open banking data | |
id | string | Unique analysis identifier | |
format | string | Original format of the open banking data (default to Enum: Default: ALGOAN | |
parameters | object | Optional parameters related to the analysis. If | |
disableScores | boolean | Set to true if you only want to launch a Credit Insights analysis | |
disableCreditInsights | boolean | Set to true if you only want to launch the Score | |
useBalanceDate | boolean | Set to true if you want to use the most recent account balance date as a reference date for the analysis instead of using the current date | |
period | object | Parameters used to compute the analyzed period. | |
mode | string | Analysis configuration mode:
m and n refer respectively to the value of numberOfDays and numberOfMonths. Enum: | |
numberOfDays | number | Number of analyzed days. | |
numberOfMonths | number | Number of analyzed months. | |
includeCheckingAccountsOnTruncateWindow | boolean | Used if mode is MONTHS_TRUNCATED. If true only the transactions of checking accounts are used to compute analysis window dates. | |
isComputedUsingProjectConfig | boolean | Whether the analyzed period has been computed using the project's configurations or the values in period | |
launchReport | boolean | Set to true if you want to automatically launch a report creation after the analysis is completed. You will be notified on your webhook when the report status is COMPLETED (or ERROR). | |
status | string | State of the analysis:
Enum: | |
source | string | Describes the origin of the analysis' launch:
Enum: | |
dataOrigin | string | Describes the origin of the analysis' data:
Enum: | |
createdAt | date-time | Analysis date of creation | |
updatedAt | date-time | Latest update of the analysis | |
metadata | object | Indicators about the Open Banking data used to execute the Analysis. Deprecated properties correspond to Credit Insights indicators. | |
referenceDate | date-time | Reference date of the analysis | |
creditInsights | object | Indicators about the Open Banking data used to compute the Credit Insights product | |
minWindowDate | date | Date of the oldest transaction used to compute the product | |
maxWindowDate | date | Date of the most recent transaction used to compute the product | |
creditScore | object | Indicators about the Open Banking data used to compute the Credit Score product | |
minWindowDate | date | Date of the oldest transaction used to compute the product | |
maxWindowDate | date | Date of the most recent transaction used to compute the product | |
activityScore | object | A score measuring the activity of all aggregated accounts of a bank user. This score might be used to filter out users who are not active enough or to indicate that we probably don't have access to the main account. | |
value | number | Ranges from 1 to 100, and it can be interpreted as follows:
| |
numberOfDaysInWindow | number | Number of analysed days. | |
calendar | array[object] | ||
month | string | calendar month of the history | |
nbDays | number | Number of days of the month covered in the banking history. Allows to know which months are truncated. | |
creditInsights | object | Object containing results from Credit Insights | |
version | string | Credit Insights' version | |
cashFlows | array[object] | All cash flows used to launch the analysis | |
type | string | Enum: | |
category | This is the list of all possible transactions categories. Some of them are not currently implemented yet. To have a detailed list, ask your Business Success Manager. | ||
string | string | Enum: | |
label | string | This value differs from labelRoot when a Cashflow can be split into two smaller pieces. These pieces share similarities in terms of amount and dates | |
totalAmount | number | Total amount of the cash flow over the period of analysis. Transactions that are or has been rejected are included in this sum. Negative if expense, positive if income. | |
monthlyAmount | number | Monthly amount of the cash flow. | |
calendar | array[object] | ||
month | string | Calendar month of the transaction | |
amount | number | Negative if expense, positive if income. | |
transactions | array[object] | Concerned transactions | |
id | string | Unique transaction identifier | |
accountId | string | Algoan's account identifier | |
description | string | Description of the transaction. If description is an empty string, a 400 HTTP error will be returned. | |
dates | object | Dates associated with the transaction. At least one date is required, depending on the type of account. For instance, if it is a "checking" account, the "debitedAt" date is required. | |
debitedAt | date-time | Debit date as seen on the bank statement. This property may not be set if the transaction is not yet debited. This can occurs if there's a differed payement. | |
bookedAt | date-time | Realization date of the transaction | |
amount | number | Amount of the transaction (negative if debit) | |
currency | string | Transaction's currency Default: EUR | |
enrichments | object | Properties computed by Algoan | |
category | Value computed by Credit Insights. This property describes the reason why a transaction is made. | ||
string | string | Enum: | |
type | string | Value computed by Credit Insights. This property describes the mode of transaction. Enum: | |
isComing | boolean | Indicates if the transaction will be debited or credited on the account in the future | |
aggregator | object | Additional information relative to the transaction provided by the aggregator | |
id | string | id of the transaction provided by the aggregator | |
isNonAnalysed | boolean | Indicates if the transaction is included in the last generated analysis | |
scores | object | Scores assessing the probability of default Depending on your Score configuration you can have one or many scores computed. Each score will be billed independently. | |
creditScore | object | default score with a 12-month horizon | |
version | string | Score's version | |
value | number | Between 0 and 1000. 0 is risky, 1000 is safe. This number is a transformation of the probability of default that is usually set between 0 and 1 (where 0 is safe and 1 is risky) maximum: 1000 minimum: 0 | |
indicators | object | Indicators about credit score behavior. These values reflect the behavior of the score in a way that is comprehensible for the human eye. Each of them is like an axis where the value varies from -5 to 5. The combination of these numbers is correlated to the score value. A negative value means the axis impacts the score value in a bad way where a positive value can inflate the score value. This representation is a mirror of Algoan Score. Its objective is to provide keys to an understanding of Score for a specific business. | |
paymentScore | object | default score with a 4-month horizon | |
version | string | Score's version | |
value | number | Between 1 and 10. 1 is risky, 10 is safe. This number represents the interval of risk. It's based on a transformation of the probability of default maximum: 10 minimum: 1 | |
error | object | This property is defined if the analysis is in an | |
code | string | Description :
Enum: | |
message | string | A human readable error message |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Analysis not found
xxxxxxxxxx
{
"id": "{string}",
"format": "{string}",
"parameters": {...},
"status": "{string}",
"source": "{string}",
"dataOrigin": "{string}",
"createdAt": "{date-time}",
"updatedAt": "{date-time}",
"metadata": {...},
"creditInsights": {...},
"scores": {...},
"error": {...}
}
Update an analysis
Update an analysis.
- If the payload contains field
error
, the analysis' error will be updated, the analysis' status will be set toERROR
and the updating process terminates immediately. - If the payload contains field
accounts
, only when the analysis has currently no account, the payload's accounts will be added to the analysis and then an analysis process will be launched. - If the payload contains field
trigger
, the analysis will be updated with the accounts and transactions but the trigger will be disabled. The analysis will not be computed until the trigger is enabled. You will be able to add accounts and transactions multiple times before triggering the analysis computation with or without different sources. If the sources are different, each call need to specify the format it uses, also the analysis format will be set toHYBRID
.
The update payload
object | object | Account related to the analysis | |
format | string | Original format of the open banking data (default to Enum: Default: ALGOAN | |
error | object | This property is defined if the analysis is in an | |
code | string | Description :
Enum: | |
message | string | A human readable error message | |
trigger | boolean | Wether the analysis should be trigger directly or not. If false, the analysis will be updated with the new accounts and transactions but will not be triggered. You will need to trigger it manually by calling POST /analyses/{analysisId}/trigger afterwards. Default: true | |
accounts | array | Accounts including transactions (Algoan format) | |
type | string | Account's type. Enum: | |
balance | number | Last known account balance | |
balanceDate | date-time | Last known account balance's date (format ISO) | |
currency | string | Account's currency. Non | |
owners | array[object] | Owners of the account | |
name | string | name of the owner | |
number | string | Account's number | |
iban | string | Account's iban | |
bic | string | Account's bic | |
name | string | Account's name taken from the bank's website | |
bank | object | Owner's bank information | |
id | string | Aggregator unique identifier | |
logoUrl | string | URL of the bank's logo | |
name | string | Name of the bank | |
country | string | Country Code of the bank | |
usage | string | Purpose of the account. Enum: | |
ownership | string | Relationship between the business and the account. Enum: | |
country | string | The alpha-2 code country of the account (format ISO 3166-1 alpha-2) | |
coming | number | Amount of coming operations (not yet debited) | |
details | object | The details of the account | |
savings | object | Details specific to SAVINGS type accounts | |
type | string | Savings account's type Enum: | |
openedAt | date-time | Opening date of the saving account | |
maximumAmount | number | Maximum amount authorized for this account | |
interestRate | number | Interest rate of the saving account (between 0 and 1) | |
loan | object | ||
type | string | Details specific to LOAN type accounts Enum: | |
amount | number | Loan's amount | |
startDate | date-time | Loan's start date (format ISO) | |
endDate | date-time | Loan's end date (format ISO) | |
duration | number | Loan's duration in months | |
insuranceLabel | string | Label of the insurance | |
payment | number | Monthly amount of the loan | |
remainingCapital | number | Amount of capital left to repay | |
interestRate | number | Interest rate of the loan (between 0 and 1) | |
aggregator | object | Informations specific to the aggregator | |
id | string | Unique identifier set by the aggregator | |
isComputed | boolean | Whether the account will be / has been used during the Analysis computation Default: true | |
transactions | array[object] | ||
description | string | Description of the transaction. If description is an empty string, a 400 HTTP error will be returned. | |
dates | object | Dates associated with the transaction. At least one date is required, depending on the type of account. For instance, if it is a "checking" account, the "debitedAt" date is required. | |
debitedAt | date-time | Debit date as seen on the bank statement. This property may not be set if the transaction is not yet debited. This can occurs if there's a differed payement. | |
bookedAt | date-time | Realization date of the transaction | |
amount | number | Amount of the transaction (negative if debit) | |
currency | string | Transaction's currency Default: EUR | |
isComing | boolean | Indicates if the transaction will be debited or credited on the account in the future | |
aggregator | object | Additional information relative to the transaction provided by the aggregator | |
id | string | id of the transaction provided by the aggregator | |
category | string | Category provided by the aggregator | |
type | string | Type provided by the aggregator |
xxxxxxxxxx
curl --request PATCH \
--url 'https://api.algoan.com/v2/businesses/{id}/analyses/{analysisId}' \
--header 'Authorization: Bearer {token}' \
--data '{
"format": "{string}",
"error": {
"code": "{string}",
"message": "{string}"
},
"trigger": "{boolean}",
"accounts": [
{
"type": "CHECKING",
"balance": 3564.5,
"balanceDate": "2019-06-30T22:00:00.000Z",
"currency": "EUR",
"owners": [
{
"name": "John Doe"
}
],
"number": "1234-123456789",
"iban": "FR7630001007941234567890185",
"bic": "BDFEFR2T",
"name": "compte de pierre paul jacques",
"bank": {
"id": "{string}",
"logoUrl": "{string}",
"name": "{string}",
"country": "{string}"
},
"usage": "PERSONAL",
"ownership": "HOLDER",
"country": "FR",
"coming": 400,
"details": {
"savings": {
"type": "SHORT_TERM",
"openedAt": "2019-06-30T22:00:00.000Z",
"maximumAmount": 20000,
"interestRate": 0.1456
},
"loan": {
"type": "{string}",
"amount": 10000,
"startDate": "2019-06-30T22:00:00.000Z",
"endDate": "2019-06-30T22:00:00.000Z",
"duration": 24,
"insuranceLabel": "Insurance A",
"payment": 10,
"remainingCapital": 1000,
"interestRate": 0.1456
}
},
"aggregator": {
"id": "{string}"
},
"isComputed": "{boolean}",
"transactions": [
{
"description": "Expenses",
"dates": {
"debitedAt": "2019-06-30T22:00:00.000Z",
"bookedAt": "{date-time}"
},
"amount": 10000,
"currency": "{string}",
"isComing": false,
"aggregator": {
"id": "12a22",
"category": "{string}",
"type": "{string}"
}
}
]
}
]
}'
Analysis in progress
object | object | An analysis launched with open banking data | |
id | string | Unique analysis identifier | |
format | string | Original format of the open banking data (default to Enum: Default: ALGOAN | |
parameters | object | Optional parameters related to the analysis. If | |
disableScores | boolean | Set to true if you only want to launch a Credit Insights analysis | |
disableCreditInsights | boolean | Set to true if you only want to launch the Score | |
useBalanceDate | boolean | Set to true if you want to use the most recent account balance date as a reference date for the analysis instead of using the current date | |
period | object | Parameters used to compute the analyzed period. | |
mode | string | Analysis configuration mode:
m and n refer respectively to the value of numberOfDays and numberOfMonths. Enum: | |
numberOfDays | number | Number of analyzed days. | |
numberOfMonths | number | Number of analyzed months. | |
includeCheckingAccountsOnTruncateWindow | boolean | Used if mode is MONTHS_TRUNCATED. If true only the transactions of checking accounts are used to compute analysis window dates. | |
isComputedUsingProjectConfig | boolean | Whether the analyzed period has been computed using the project's configurations or the values in period | |
launchReport | boolean | Set to true if you want to automatically launch a report creation after the analysis is completed. You will be notified on your webhook when the report status is COMPLETED (or ERROR). | |
status | string | State of the analysis:
Enum: | |
source | string | Describes the origin of the analysis' launch:
Enum: | |
dataOrigin | string | Describes the origin of the analysis' data:
Enum: | |
createdAt | date-time | Analysis date of creation | |
updatedAt | date-time | Latest update of the analysis | |
metadata | object | Indicators about the Open Banking data used to execute the Analysis. Deprecated properties correspond to Credit Insights indicators. | |
referenceDate | date-time | Reference date of the analysis | |
creditInsights | object | Indicators about the Open Banking data used to compute the Credit Insights product | |
minWindowDate | date | Date of the oldest transaction used to compute the product | |
maxWindowDate | date | Date of the most recent transaction used to compute the product | |
creditScore | object | Indicators about the Open Banking data used to compute the Credit Score product | |
minWindowDate | date | Date of the oldest transaction used to compute the product | |
maxWindowDate | date | Date of the most recent transaction used to compute the product | |
activityScore | object | A score measuring the activity of all aggregated accounts of a bank user. This score might be used to filter out users who are not active enough or to indicate that we probably don't have access to the main account. | |
value | number | Ranges from 1 to 100, and it can be interpreted as follows:
| |
numberOfDaysInWindow | number | Number of analysed days. | |
calendar | array[object] | ||
month | string | calendar month of the history | |
nbDays | number | Number of days of the month covered in the banking history. Allows to know which months are truncated. | |
creditInsights | object | Object containing results from Credit Insights | |
version | string | Credit Insights' version | |
cashFlows | array[object] | All cash flows used to launch the analysis | |
type | string | Enum: | |
category | This is the list of all possible transactions categories. Some of them are not currently implemented yet. To have a detailed list, ask your Business Success Manager. | ||
string | string | Enum: | |
label | string | This value differs from labelRoot when a Cashflow can be split into two smaller pieces. These pieces share similarities in terms of amount and dates | |
totalAmount | number | Total amount of the cash flow over the period of analysis. Transactions that are or has been rejected are included in this sum. Negative if expense, positive if income. | |
monthlyAmount | number | Monthly amount of the cash flow. | |
calendar | array[object] | ||
month | string | Calendar month of the transaction | |
amount | number | Negative if expense, positive if income. | |
transactions | array[object] | Concerned transactions | |
id | string | Unique transaction identifier | |
accountId | string | Algoan's account identifier | |
description | string | Description of the transaction. If description is an empty string, a 400 HTTP error will be returned. | |
dates | object | Dates associated with the transaction. At least one date is required, depending on the type of account. For instance, if it is a "checking" account, the "debitedAt" date is required. | |
debitedAt | date-time | Debit date as seen on the bank statement. This property may not be set if the transaction is not yet debited. This can occurs if there's a differed payement. | |
bookedAt | date-time | Realization date of the transaction | |
amount | number | Amount of the transaction (negative if debit) | |
currency | string | Transaction's currency Default: EUR | |
enrichments | object | Properties computed by Algoan | |
category | Value computed by Credit Insights. This property describes the reason why a transaction is made. | ||
string | string | Enum: | |
type | string | Value computed by Credit Insights. This property describes the mode of transaction. Enum: | |
isComing | boolean | Indicates if the transaction will be debited or credited on the account in the future | |
aggregator | object | Additional information relative to the transaction provided by the aggregator | |
id | string | id of the transaction provided by the aggregator | |
isNonAnalysed | boolean | Indicates if the transaction is included in the last generated analysis | |
scores | object | Scores assessing the probability of default Depending on your Score configuration you can have one or many scores computed. Each score will be billed independently. | |
creditScore | object | default score with a 12-month horizon | |
version | string | Score's version | |
value | number | Between 0 and 1000. 0 is risky, 1000 is safe. This number is a transformation of the probability of default that is usually set between 0 and 1 (where 0 is safe and 1 is risky) maximum: 1000 minimum: 0 | |
indicators | object | Indicators about credit score behavior. These values reflect the behavior of the score in a way that is comprehensible for the human eye. Each of them is like an axis where the value varies from -5 to 5. The combination of these numbers is correlated to the score value. A negative value means the axis impacts the score value in a bad way where a positive value can inflate the score value. This representation is a mirror of Algoan Score. Its objective is to provide keys to an understanding of Score for a specific business. | |
paymentScore | object | default score with a 4-month horizon | |
version | string | Score's version | |
value | number | Between 1 and 10. 1 is risky, 10 is safe. This number represents the interval of risk. It's based on a transformation of the probability of default maximum: 10 minimum: 1 | |
error | object | This property is defined if the analysis is in an | |
code | string | Description :
Enum: | |
message | string | A human readable error message |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Analysis not found
xxxxxxxxxx
{
"id": "{string}",
"format": "{string}",
"parameters": {...},
"status": "{string}",
"source": "{string}",
"dataOrigin": "{string}",
"createdAt": "{date-time}",
"updatedAt": "{date-time}",
"metadata": {...},
"creditInsights": {...},
"scores": {...},
"error": {...}
}
Trigger the analysis computation
Trigger the analysis computation.
This endpoint allows you to create an analysis from multiple sources (aggregators, e.g. Powens and Mastercard Open Banking). It will need to be done in 3 steps:
- Create an empty analysis: POST /analyses without any accounts
- Update the analysis with the accounts and transactions but disable the trigger: PATCH /analyses/{analysisId} for each source { format: MASTERCARD_OPEN_BANKING_ENTERPRISE_V2, trigger: false }
- After all the sources have been fetched, trigger the analysis computation: POST /analyses/{analysisId}/trigger
This endpoint also allows you to initiate an analysis at your discretion. You have the flexibility to include the accounts in several PATCH /analyses/:id requests, and then initiate the analysis once all the accounts have been successfully patched.
Alternatively, if you have created an analysis with the parameters disableScores and disableCreditInsights set to true, you can trigger the analysis computation switching the same parameters to false.
The trigger payload
object | object | ||
disableScores | boolean | Set to true if you only want to launch a Credit Insights analysis By default, it will be set to the value set in the POST /analyses request | |
disableCreditInsights | boolean | Set to true if you only want to launch the Score By default, it will be set to the value set in the POST /analyses request |
xxxxxxxxxx
curl --request POST \
--url 'https://api.algoan.com/v2/businesses/{id}/analyses/{analysisId}/trigger' \
--header 'Authorization: Bearer {token}' \
--data '{
"disableScores": "{boolean}",
"disableCreditInsights": "{boolean}"
}'
Analysis in progress
object | object | An analysis launched with open banking data | |
id | string | Unique analysis identifier | |
format | string | Original format of the open banking data (default to Enum: Default: ALGOAN | |
parameters | object | Optional parameters related to the analysis. If | |
disableScores | boolean | Set to true if you only want to launch a Credit Insights analysis | |
disableCreditInsights | boolean | Set to true if you only want to launch the Score | |
useBalanceDate | boolean | Set to true if you want to use the most recent account balance date as a reference date for the analysis instead of using the current date | |
period | object | Parameters used to compute the analyzed period. | |
mode | string | Analysis configuration mode:
m and n refer respectively to the value of numberOfDays and numberOfMonths. Enum: | |
numberOfDays | number | Number of analyzed days. | |
numberOfMonths | number | Number of analyzed months. | |
includeCheckingAccountsOnTruncateWindow | boolean | Used if mode is MONTHS_TRUNCATED. If true only the transactions of checking accounts are used to compute analysis window dates. | |
isComputedUsingProjectConfig | boolean | Whether the analyzed period has been computed using the project's configurations or the values in period | |
launchReport | boolean | Set to true if you want to automatically launch a report creation after the analysis is completed. You will be notified on your webhook when the report status is COMPLETED (or ERROR). | |
status | string | State of the analysis:
Enum: | |
source | string | Describes the origin of the analysis' launch:
Enum: | |
dataOrigin | string | Describes the origin of the analysis' data:
Enum: | |
createdAt | date-time | Analysis date of creation | |
updatedAt | date-time | Latest update of the analysis | |
metadata | object | Indicators about the Open Banking data used to execute the Analysis. Deprecated properties correspond to Credit Insights indicators. | |
referenceDate | date-time | Reference date of the analysis | |
creditInsights | object | Indicators about the Open Banking data used to compute the Credit Insights product | |
minWindowDate | date | Date of the oldest transaction used to compute the product | |
maxWindowDate | date | Date of the most recent transaction used to compute the product | |
creditScore | object | Indicators about the Open Banking data used to compute the Credit Score product | |
minWindowDate | date | Date of the oldest transaction used to compute the product | |
maxWindowDate | date | Date of the most recent transaction used to compute the product | |
activityScore | object | A score measuring the activity of all aggregated accounts of a bank user. This score might be used to filter out users who are not active enough or to indicate that we probably don't have access to the main account. | |
value | number | Ranges from 1 to 100, and it can be interpreted as follows:
| |
numberOfDaysInWindow | number | Number of analysed days. | |
calendar | array[object] | ||
month | string | calendar month of the history | |
nbDays | number | Number of days of the month covered in the banking history. Allows to know which months are truncated. | |
creditInsights | object | Object containing results from Credit Insights | |
version | string | Credit Insights' version | |
cashFlows | array[object] | All cash flows used to launch the analysis | |
type | string | Enum: | |
category | This is the list of all possible transactions categories. Some of them are not currently implemented yet. To have a detailed list, ask your Business Success Manager. | ||
string | string | Enum: | |
label | string | This value differs from labelRoot when a Cashflow can be split into two smaller pieces. These pieces share similarities in terms of amount and dates | |
totalAmount | number | Total amount of the cash flow over the period of analysis. Transactions that are or has been rejected are included in this sum. Negative if expense, positive if income. | |
monthlyAmount | number | Monthly amount of the cash flow. | |
calendar | array[object] | ||
month | string | Calendar month of the transaction | |
amount | number | Negative if expense, positive if income. | |
transactions | array[object] | Concerned transactions | |
id | string | Unique transaction identifier | |
accountId | string | Algoan's account identifier | |
description | string | Description of the transaction. If description is an empty string, a 400 HTTP error will be returned. | |
dates | object | Dates associated with the transaction. At least one date is required, depending on the type of account. For instance, if it is a "checking" account, the "debitedAt" date is required. | |
debitedAt | date-time | Debit date as seen on the bank statement. This property may not be set if the transaction is not yet debited. This can occurs if there's a differed payement. | |
bookedAt | date-time | Realization date of the transaction | |
amount | number | Amount of the transaction (negative if debit) | |
currency | string | Transaction's currency Default: EUR | |
enrichments | object | Properties computed by Algoan | |
category | Value computed by Credit Insights. This property describes the reason why a transaction is made. | ||
string | string | Enum: | |
type | string | Value computed by Credit Insights. This property describes the mode of transaction. Enum: | |
isComing | boolean | Indicates if the transaction will be debited or credited on the account in the future | |
aggregator | object | Additional information relative to the transaction provided by the aggregator | |
id | string | id of the transaction provided by the aggregator | |
isNonAnalysed | boolean | Indicates if the transaction is included in the last generated analysis | |
scores | object | Scores assessing the probability of default Depending on your Score configuration you can have one or many scores computed. Each score will be billed independently. | |
creditScore | object | default score with a 12-month horizon | |
version | string | Score's version | |
value | number | Between 0 and 1000. 0 is risky, 1000 is safe. This number is a transformation of the probability of default that is usually set between 0 and 1 (where 0 is safe and 1 is risky) maximum: 1000 minimum: 0 | |
indicators | object | Indicators about credit score behavior. These values reflect the behavior of the score in a way that is comprehensible for the human eye. Each of them is like an axis where the value varies from -5 to 5. The combination of these numbers is correlated to the score value. A negative value means the axis impacts the score value in a bad way where a positive value can inflate the score value. This representation is a mirror of Algoan Score. Its objective is to provide keys to an understanding of Score for a specific business. | |
paymentScore | object | default score with a 4-month horizon | |
version | string | Score's version | |
value | number | Between 1 and 10. 1 is risky, 10 is safe. This number represents the interval of risk. It's based on a transformation of the probability of default maximum: 10 minimum: 1 | |
error | object | This property is defined if the analysis is in an | |
code | string | Description :
Enum: | |
message | string | A human readable error message |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Analysis not found
xxxxxxxxxx
{
"id": "{string}",
"format": "{string}",
"parameters": {...},
"status": "{string}",
"source": "{string}",
"dataOrigin": "{string}",
"createdAt": "{date-time}",
"updatedAt": "{date-time}",
"metadata": {...},
"creditInsights": {...},
"scores": {...},
"error": {...}
}
Get the daily balances of the analysis
Get the sum of daily balances for all aggregated accounts in the analysis.
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v2/businesses/{id}/analyses/{analysisId}/balances' \
--header 'Authorization: Bearer {token}'
List of balances
object | object | ||
resources | array[object] | ||
balance | number | Account balance at a specific date | |
date | date-time | Date of the account balance (format ISO) | |
pagination | object | details about the pagination of returned resources | |
next | string | Next page | |
previous | string | Previous page | |
first | string | First page | |
last | string | Last page | |
totalPages | number | Total number of pages | |
totalResources | number | total number of resources |
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Business/Analysis not found
xxxxxxxxxx
{
"resources": [
{
"balance": 3564.5,
"date": "2019-06-30T22:00:00.000Z"
}
],
"pagination": {
"next": "{string}",
"previous": "{string}",
"first": "{string}",
"last": "{string}",
"totalPages": "{number}",
"totalResources": "{number}"
}
}
Score
Score attached to the analysis
Get scores
Returns the analysis score
id | string | ID of the business to fetch | |
analysisId | string | ID of the analysis to fetch |
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v2/businesses/%7Bid%7D/analyses/%7BanalysisId%7D/scores' \
--header 'Authorization: Bearer {token}'
Score response
object | object | Scores assessing the probability of default Depending on your Score configuration you can have one or many scores computed. Each score will be billed independently. | |
creditScore | object | default score with a 12-month horizon | |
version | string | Score's version | |
value | number | Between 0 and 1000. 0 is risky, 1000 is safe. This number is a transformation of the probability of default that is usually set between 0 and 1 (where 0 is safe and 1 is risky) maximum: 1000 minimum: 0 | |
indicators | object | Indicators about credit score behavior. These values reflect the behavior of the score in a way that is comprehensible for the human eye. Each of them is like an axis where the value varies from -5 to 5. The combination of these numbers is correlated to the score value. A negative value means the axis impacts the score value in a bad way where a positive value can inflate the score value. This representation is a mirror of Algoan Score. Its objective is to provide keys to an understanding of Score for a specific business. | |
paymentScore | object | default score with a 4-month horizon | |
version | string | Score's version | |
value | number | Between 1 and 10. 1 is risky, 10 is safe. This number represents the interval of risk. It's based on a transformation of the probability of default maximum: 10 minimum: 1 |
Score computation is still in progress
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Business/Analysis not found
Unprocessable Entity, please make sure the product is not disabled on the project
xxxxxxxxxx
{
"creditScore": {
"version": "1.0.0",
"value": "{number}",
"indicators": {
"livingStandard": 2,
"budgetManagement": 0,
"financialEvolution": -5
}
},
"paymentScore": {
"version": "0.0.1",
"value": 5
}
}
Account
Bank accounts attached to a business
Get all accounts
Get a list of businesses's accounts used for the analysis
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v2/businesses/{id}/analyses/{analysisId}/accounts' \
--header 'Authorization: Bearer {token}'
List of accounts
object | object | ||
resources | array[object] | ||
id | string | Unique Account identifier | |
type | string | Account's type. Enum: | |
balance | number | Last known account balance | |
balanceDate | date-time | Last known account balance's date (format ISO) | |
currency | string | Account's currency. Non | |
owners | array[object] | Owners of the account | |
name | string | name of the owner | |
number | string | Account's number | |
iban | string | Account's iban | |
bic | string | Account's bic | |
name | string | Account's name taken from the bank's website | |
bank | object | Owner's bank information | |
id | string | Aggregator unique identifier | |
logoUrl | string | URL of the bank's logo | |
name | string | Name of the bank | |
country | string | Country Code of the bank | |
usage | string | Purpose of the account. Enum: | |
ownership | string | Relationship between the business and the account. Enum: | |
country | string | The alpha-2 code country of the account (format ISO 3166-1 alpha-2) | |
createdAt | date-time | Algoan's account date of creation | |
updatedAt | date-time | Latest update of the account | |
coming | number | Amount of coming operations (not yet debited) | |
details | object | The details of the account | |
savings | object | Details specific to SAVINGS type accounts | |
type | string | Savings account's type Enum: | |
openedAt | date-time | Opening date of the saving account | |
maximumAmount | number | Maximum amount authorized for this account | |
interestRate | number | Interest rate of the saving account (between 0 and 1) | |
loan | object | ||
type | string | Details specific to LOAN type accounts Enum: | |
amount | number | Loan's amount | |
startDate | date-time | Loan's start date (format ISO) | |
endDate | date-time | Loan's end date (format ISO) | |
duration | number | Loan's duration in months | |
insuranceLabel | string | Label of the insurance | |
payment | number | Monthly amount of the loan | |
remainingCapital | number | Amount of capital left to repay | |
interestRate | number | Interest rate of the loan (between 0 and 1) | |
aggregator | object | Informations specific to the aggregator | |
id | string | Unique identifier set by the aggregator | |
relatedAccountIds | array[string] | Ids of the accounts related to the current account. Checking accounts can be related to more than one credit card Accounts. Credit card accounts can be related to one checking account at most. This fields is filled only if Credit Insights is calculated | |
isComputed | boolean | Whether the account will be / has been used during the Analysis computation Default: true | |
isMerged | boolean | Whether the account has been merged with another account This will happen when the same account is retrieved multiple times from the same bank Or after a refresh of the aggregation. | |
pagination | object | details about the pagination of returned resources | |
next | string | Next page | |
previous | string | Previous page | |
first | string | First page | |
last | string | Last page | |
totalPages | number | Total number of pages | |
totalResources | number | total number of resources |
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Business/Analysis not found
xxxxxxxxxx
{
"resources": [
{
"id": "5c336adbf675152f00549d6f",
"type": "CHECKING",
"balance": 3564.5,
"balanceDate": "2019-06-30T22:00:00.000Z",
"currency": "EUR",
"owners": [
{
"name": "John Doe"
}
],
"number": "1234-123456789",
"iban": "FR7630001007941234567890185",
"bic": "BDFEFR2T",
"name": "compte de pierre paul jacques",
"bank": {
"id": "{string}",
"logoUrl": "{string}",
"name": "{string}",
"country": "{string}"
},
"usage": "PERSONAL",
"ownership": "HOLDER",
"country": "FR",
"createdAt": "{date-time}",
"updatedAt": "{date-time}",
"coming": 400,
"details": {
"savings": {
"type": "SHORT_TERM",
"openedAt": "2019-06-30T22:00:00.000Z",
"maximumAmount": 20000,
"interestRate": 0.1456
},
"loan": {
"type": "{string}",
"amount": 10000,
"startDate": "2019-06-30T22:00:00.000Z",
"endDate": "2019-06-30T22:00:00.000Z",
"duration": 24,
"insuranceLabel": "Insurance A",
"payment": 10,
"remainingCapital": 1000,
"interestRate": 0.1456
}
},
"aggregator": {
"id": "{string}"
},
"relatedAccountIds": [
"{array[string]...}"
],
"isComputed": "{boolean}",
"isMerged": "{boolean}"
}
],
"pagination": {
"next": "{string}",
"previous": "{string}",
"first": "{string}",
"last": "{string}",
"totalPages": "{number}",
"totalResources": "{number}"
}
}
Get the daily balances
Get the daily balances for one account used for the analysis
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v2/businesses/{id}/analyses/{analysisId}/accounts/{accountId}/balances' \
--header 'Authorization: Bearer {token}'
List of balances
object | object | ||
resources | array[object] | ||
balance | number | Account balance at a specific date | |
date | date-time | Date of the account balance (format ISO) | |
pagination | object | details about the pagination of returned resources | |
next | string | Next page | |
previous | string | Previous page | |
first | string | First page | |
last | string | Last page | |
totalPages | number | Total number of pages | |
totalResources | number | total number of resources |
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Business/Analysis not found
xxxxxxxxxx
{
"resources": [
{
"balance": 3564.5,
"date": "2019-06-30T22:00:00.000Z"
}
],
"pagination": {
"next": "{string}",
"previous": "{string}",
"first": "{string}",
"last": "{string}",
"totalPages": "{number}",
"totalResources": "{number}"
}
}
Transaction
Transactions attached to a Business's bank account
Get all transactions
Get all business's transactions used for the analysis
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v2/businesses/{id}/analyses/{analysisId}/transactions' \
--header 'Authorization: Bearer {token}'
List of transactions
object | object | ||
resources | array[object] | ||
id | string | Unique transaction identifier | |
accountId | string | Algoan's account identifier | |
description | string | Description of the transaction. If description is an empty string, a 400 HTTP error will be returned. | |
dates | object | Dates associated with the transaction. At least one date is required, depending on the type of account. For instance, if it is a "checking" account, the "debitedAt" date is required. | |
debitedAt | date-time | Debit date as seen on the bank statement. This property may not be set if the transaction is not yet debited. This can occurs if there's a differed payement. | |
bookedAt | date-time | Realization date of the transaction | |
amount | number | Amount of the transaction (negative if debit) | |
currency | string | Transaction's currency Default: EUR | |
enrichments | object | Properties computed by Algoan | |
category | Value computed by Credit Insights. This property describes the reason why a transaction is made. | ||
string | string | Enum: | |
type | string | Value computed by Credit Insights. This property describes the mode of transaction. Enum: | |
isComing | boolean | Indicates if the transaction will be debited or credited on the account in the future | |
aggregator | object | Additional information relative to the transaction provided by the aggregator | |
id | string | id of the transaction provided by the aggregator | |
isNonAnalysed | boolean | Indicates if the transaction is included in the last generated analysis | |
pagination | object | details about the pagination of returned resources | |
next | string | Next page | |
previous | string | Previous page | |
first | string | First page | |
last | string | Last page | |
totalPages | number | Total number of pages | |
totalResources | number | total number of resources |
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Business/Analysis not found
xxxxxxxxxx
{
"resources": [
{
"id": "fb7b822f1b57855f55e11383",
"accountId": "5c336adbf675152f00549d6f",
"description": "Expenses",
"dates": {
"debitedAt": "2019-06-30T22:00:00.000Z",
"bookedAt": "{date-time}"
},
"amount": 10000,
"currency": "{string}",
"enrichments": {
"category": "{string}",
"type": "CHECK"
},
"isComing": false,
"aggregator": {
"id": "12a22"
},
"isNonAnalysed": false
}
],
"pagination": {
"next": "{string}",
"previous": "{string}",
"first": "{string}",
"last": "{string}",
"totalPages": "{number}",
"totalResources": "{number}"
}
}
Get all account's transactions
Get a list of business's transactions for one account used for the analysis
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v2/businesses/{id}/analyses/{analysisId}/accounts/{accountId}/transactions' \
--header 'Authorization: Bearer {token}'
List of transactions
object | object | ||
resources | array[object] | ||
id | string | Unique transaction identifier | |
accountId | string | Algoan's account identifier | |
description | string | Description of the transaction. If description is an empty string, a 400 HTTP error will be returned. | |
dates | object | Dates associated with the transaction. At least one date is required, depending on the type of account. For instance, if it is a "checking" account, the "debitedAt" date is required. | |
debitedAt | date-time | Debit date as seen on the bank statement. This property may not be set if the transaction is not yet debited. This can occurs if there's a differed payement. | |
bookedAt | date-time | Realization date of the transaction | |
amount | number | Amount of the transaction (negative if debit) | |
currency | string | Transaction's currency Default: EUR | |
enrichments | object | Properties computed by Algoan | |
category | Value computed by Credit Insights. This property describes the reason why a transaction is made. | ||
string | string | Enum: | |
type | string | Value computed by Credit Insights. This property describes the mode of transaction. Enum: | |
isComing | boolean | Indicates if the transaction will be debited or credited on the account in the future | |
aggregator | object | Additional information relative to the transaction provided by the aggregator | |
id | string | id of the transaction provided by the aggregator | |
isNonAnalysed | boolean | Indicates if the transaction is included in the last generated analysis | |
pagination | object | details about the pagination of returned resources | |
next | string | Next page | |
previous | string | Previous page | |
first | string | First page | |
last | string | Last page | |
totalPages | number | Total number of pages | |
totalResources | number | total number of resources |
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Business/Analysis not found
xxxxxxxxxx
{
"resources": [
{
"id": "fb7b822f1b57855f55e11383",
"accountId": "5c336adbf675152f00549d6f",
"description": "Expenses",
"dates": {
"debitedAt": "2019-06-30T22:00:00.000Z",
"bookedAt": "{date-time}"
},
"amount": 10000,
"currency": "{string}",
"enrichments": {
"category": "{string}",
"type": "CHECK"
},
"isComing": false,
"aggregator": {
"id": "12a22"
},
"isNonAnalysed": false
}
],
"pagination": {
"next": "{string}",
"previous": "{string}",
"first": "{string}",
"last": "{string}",
"totalPages": "{number}",
"totalResources": "{number}"
}
}
Subscription
Subscription to Algoan's platform events.
Get list of webhook subscriptions
Get the list of event subscriptions.
filter | string | Stringified query to filter the subscriptions list |
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v1/subscriptions' \
--header 'Authorization: Bearer {token}' \
--data filter=%7B%22eventName%22:%22bank_details_required%22%7D
Successful operation
array | array[object] | ||
id | string | Unique subscription identifier | |
eventName | string | The name of the event. Details can be found in the Events section Enum: | |
secret | string | Secret shared between the Algoan Platform and the webhook owner | |
target | string | The url of the webhook that will be called when an event is emitted by the Algoan platform | |
status | string | Whether the webhook is active or not. ACTIVE at the creation. Enum: Default: ACTIVE |
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
xxxxxxxxxx
[
{
"id": "d3eddda98124fc51d8ef99bf",
"eventName": "{string}",
"secret": "b8fb1bbf95ce861d638ff534",
"target": "https://your-end-point.com/webhook",
"status": "{string}"
}
]
Create a new webhook subscription
Create a new subscription. Allow you to subscribe your webhook to an event.
object | object | ||
target | string | The url of the webhook that will be called when an event is emitted by the Algoan platform | |
eventName | string | The name of the event. Details can be found in the Events section Enum: | |
secret | string | Secret shared between the Algoan Platform and the webhook owner |
xxxxxxxxxx
curl --request POST \
--url 'https://api.algoan.com/v1/subscriptions' \
--header 'Authorization: Bearer {token}' \
--data '{
"target": "https://your-end-point.com/webhook",
"eventName": "{string}",
"secret": "b8fb1bbf95ce861d638ff534"
}'
Successful operation
object | object | Webhook's subscription | |
id | string | Unique subscription identifier | |
eventName | string | The name of the event. Details can be found in the Events section Enum: | |
secret | string | Secret shared between the Algoan Platform and the webhook owner | |
target | string | The url of the webhook that will be called when an event is emitted by the Algoan platform | |
status | string | Whether the webhook is active or not. ACTIVE at the creation. Enum: Default: ACTIVE |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
xxxxxxxxxx
{
"id": "d3eddda98124fc51d8ef99bf",
"eventName": "{string}",
"secret": "b8fb1bbf95ce861d638ff534",
"target": "https://your-end-point.com/webhook",
"status": "{string}"
}
Update a subscription
Update a webhook subscription if your webhook has been disabled.
subscriptionId | string | The id of the subscription. |
object | object | ||
status | string | Whether the webhook is active or not. ACTIVE at the creation. Enum: Default: ACTIVE |
xxxxxxxxxx
curl --request PATCH \
--url 'https://api.algoan.com/v1/subscriptions/d3eddda98124fc51d8ef99bf' \
--header 'Authorization: Bearer {token}' \
--data '{
"status": "{string}"
}'
Successful operation
object | object | Webhook's subscription | |
id | string | Unique subscription identifier | |
eventName | string | The name of the event. Details can be found in the Events section Enum: | |
secret | string | Secret shared between the Algoan Platform and the webhook owner | |
target | string | The url of the webhook that will be called when an event is emitted by the Algoan platform | |
status | string | Whether the webhook is active or not. ACTIVE at the creation. Enum: Default: ACTIVE |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Subscription not found
xxxxxxxxxx
{
"id": "d3eddda98124fc51d8ef99bf",
"eventName": "{string}",
"secret": "b8fb1bbf95ce861d638ff534",
"target": "https://your-end-point.com/webhook",
"status": "{string}"
}
Get a subscription
Get a given subscription
subscriptionId | string | The id of the subscription. |
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v1/subscriptions/d3eddda98124fc51d8ef99bf' \
--header 'Authorization: Bearer {token}'
Successful operation
object | object | Webhook's subscription | |
id | string | Unique subscription identifier | |
eventName | string | The name of the event. Details can be found in the Events section Enum: | |
secret | string | Secret shared between the Algoan Platform and the webhook owner | |
target | string | The url of the webhook that will be called when an event is emitted by the Algoan platform | |
status | string | Whether the webhook is active or not. ACTIVE at the creation. Enum: Default: ACTIVE |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Subscription not found
xxxxxxxxxx
{
"id": "d3eddda98124fc51d8ef99bf",
"eventName": "{string}",
"secret": "b8fb1bbf95ce861d638ff534",
"target": "https://your-end-point.com/webhook",
"status": "{string}"
}
Delete the subscription
Delete the subscription
subscriptionId | string | The id of the subscription. |
xxxxxxxxxx
curl --request DELETE \
--url 'https://api.algoan.com/v1/subscriptions/d3eddda98124fc51d8ef99bf' \
--header 'Authorization: Bearer {token}'
Successful operation
object | object | Webhook's subscription | |
id | string | Unique subscription identifier | |
eventName | string | The name of the event. Details can be found in the Events section Enum: | |
secret | string | Secret shared between the Algoan Platform and the webhook owner | |
target | string | The url of the webhook that will be called when an event is emitted by the Algoan platform | |
status | string | Whether the webhook is active or not. ACTIVE at the creation. Enum: Default: ACTIVE |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Subscription not found
xxxxxxxxxx
{
"id": "d3eddda98124fc51d8ef99bf",
"eventName": "{string}",
"secret": "b8fb1bbf95ce861d638ff534",
"target": "https://your-end-point.com/webhook",
"status": "{string}"
}
Event
Event related to webhooks' subscriptions
Get a list of events
Get a list of events that have been sent for a given subscription.
subscriptionId | string | The id of the created subscription. |
businessId | string | The id of the business concerned by the event | |
lowIndex | number | The index from events are requested | |
highIndex | number | The index to which events are requested |
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v1/subscriptions/fb7b822f1b57855f55e11383/events' \
--header 'Authorization: Bearer {token}' \
--data businessId={businessId} \
--data lowIndex={lowIndex} \
--data highIndex={highIndex}
Successful
object | object | ||
resources | array | ||
subscription | object | Subscription properties | |
id | string | Unique subscription identifier | |
target | string | The url of the webhook that will be called when an event is emitted by the Algoan platform | |
eventName | string | The name of the event. Details can be found in the Events section Enum: | |
payload | object | Payload sent through the webhook | |
businessId | string | id of the Business the event has been emitted for | |
time | number | When the webhook event has been sent | |
index | string | Index of the event | |
statuses | array[object] | List of statuses | |
name | string | Name of the status:
Enum: | |
createdAt | date-time | Set when the status has been created | |
pagination | object | details about the pagination of returned resources | |
next | string | Next page | |
previous | string | Previous page | |
first | string | First page | |
last | string | Last page | |
totalPages | number | Total number of pages | |
totalResources | number | total number of resources |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Subscription not found
xxxxxxxxxx
{
"resources": [
{
"subscription": {
"id": "d3eddda98124fc51d8ef99bf",
"target": "https://your-end-point.com/webhook",
"eventName": "{string}"
},
"payload": {
"businessId": "e59484bbf9a5e17f3b1ecb2f"
},
"time": 1458692752567,
"index": 24,
"statuses": [
{
"name": "PROCESSED",
"createdAt": "2019-06-30T22:00:00.000Z"
}
]
}
],
"pagination": {
"next": "{string}",
"previous": "{string}",
"first": "{string}",
"last": "{string}",
"totalPages": "{number}",
"totalResources": "{number}"
}
}
Update an event
Update the status of an event to notify Algoan if everything went fine or not
subscriptionId | string | The id of the created subscription. | |
eventId | string | The id of the event to update. |
object | object | ||
status | string | Name of the status:
Enum: |
xxxxxxxxxx
curl --request PATCH \
--url 'https://api.algoan.com/v1/subscriptions/fb7b822f1b57855f55e11383/events/fb7b822f1b57855f55e11383' \
--header 'Authorization: Bearer {token}' \
--data '{
"status": "PROCESSED"
}'
Successful
object | object | ||
subscription | object | Subscription properties | |
id | string | Unique subscription identifier | |
target | string | The url of the webhook that will be called when an event is emitted by the Algoan platform | |
eventName | string | The name of the event. Details can be found in the Events section Enum: | |
payload | object | Payload sent through the webhook | |
businessId | string | id of the Business the event has been emitted for | |
time | number | When the webhook event has been sent | |
index | string | Index of the event | |
statuses | array[object] | List of statuses | |
name | string | Name of the status:
Enum: | |
createdAt | date-time | Set when the status has been created |
Bad request
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Subscription/Event not found
xxxxxxxxxx
{
"subscription": {
"id": "d3eddda98124fc51d8ef99bf",
"target": "https://your-end-point.com/webhook",
"eventName": "{string}"
},
"payload": {
"businessId": "e59484bbf9a5e17f3b1ecb2f"
},
"time": 1458692752567,
"index": 24,
"statuses": [
{
"name": "PROCESSED",
"createdAt": "2019-06-30T22:00:00.000Z"
}
]
}
Transaction Data
endpoints attached to our Transaction Data Product. Transaction Data is a product that enables your prospects to easily share their Open Banking Data.
Register a business
Register a business for Transaction Data. If no business already exists for the given customIdentifier, a new business is created. Otherwise, the existing business is returned.
object | object | ||
customIdentifier | string | A custom identifier that will be attached to your business. This can be used to identify a business based on your internal reference. |
xxxxxxxxxx
curl --request POST \
--url 'https://api.algoan.com/v2/register' \
--header 'Authorization: Bearer {token}' \
--data '{
"customIdentifier": "my_id_43523"
}'
A business has been registered.
object | object | ||
business | object | Information about a business and its journey through Algoan. | |
id | string | Algoan unique identifier | |
customIdentifier | string | A custom identifier that will be attached to your business. This can be used to identify a business based on your internal reference. | |
aggregationDetails | object | Information about the AIS provider used for this report | |
aggregatorName | string | Name of the aggregator company Enum: | |
callbackUrl | string | Callback URL set for a business. Used to redirect the business back to your user journey if you are using the aggregation in | |
token | string | Temporary access token set for Algoan's UI to communicate with the aggregator's API | |
mode | string | Mode used for the business journey:
Enum: | |
redirectUrl | string | Redirect URL used for the end-user. Specific to REDIRECT mode | |
apiUrl | string | URL used to call API using API mode | |
iframeUrl | string | Iframe URL used for the end-user. Specific to IFRAME mode | |
userId | string | Aggregator user identifier If the value is reset, it means the user access has been revoked. | |
clientId | string | Aggregator client ID used to authenticate a user with your organization | |
businessDetails | object | Information about the business | |
openBankingInformation | object | Information about the business retrieved from the Open Banking process | |
owners | array[object] | Owners of the accounts Same names are merged. | |
name | string | Name of the owner | |
createdAt | date-time | Business date of creation | |
updatedAt | date-time | Latest update of the business |
Unauthorized, please make sure you are properly authenticated
The user is not authorized to register a business. Please make sure you are using the right credentials.
xxxxxxxxxx
{
"business": {
"id": "6013d7991496b7395090f05c",
"customIdentifier": "my_id_43523",
"aggregationDetails": {
"aggregatorName": "{string}",
"callbackUrl": "{string}",
"token": "{string}",
"mode": "{string}",
"redirectUrl": "{string}",
"apiUrl": "{string}",
"iframeUrl": "{string}",
"userId": "{string}",
"clientId": "{string}"
},
"businessDetails": {},
"openBankingInformation": {
"owners": [
{
"name": "John Doe"
}
]
},
"createdAt": "{date-time}",
"updatedAt": "{date-time}"
}
}
Create a session
Create a Transaction Data session for the given business.
object | object | ||
businessId | string | The unique identifier of the business |
xxxxxxxxxx
curl --request POST \
--url 'https://api.algoan.com/v2/sessions' \
--header 'Authorization: Bearer {token}' \
--data '{
"businessId": "6013d7991496b7395090f05c"
}'
A business has been registered.
object | object | Information about a session. | |
id | string | Algoan unique identifier | |
businessId | string | Algoan unique identifier of the business | |
code | string | Code used to authenticate the session on Transaction Data | |
status | string | Status of the session Enum: | |
createdAt | date-time | Business date of creation | |
updatedAt | date-time | Latest update of the business |
The businessId provided doesn't belong to any business.
Unauthorized, please make sure you are properly authenticated
The user is not authorized to create a session. Please make sure you are using the right credentials.
xxxxxxxxxx
{
"id": "6013d7991496b7395090f05c",
"businessId": "6013df911496b7395090f05c",
"code": "a134d023-5340-4517-9e2d-4ee6ce717b71",
"status": "IN_PROGRESS",
"createdAt": "{date-time}",
"updatedAt": "{date-time}"
}
Get the session data
Get the given session's data.
sessionId | string | ID of the session |
xxxxxxxxxx
curl --get \
--url 'https://api.algoan.com/v2/sessions/%7BsessionId%7D/session-data' \
--header 'Authorization: Bearer {token}'
A session's data has been retrieved.
object | object | Data of the session. | |
state | string | Information about the session of your Transaction Data user. Enum: | |
stateErrors | array[object] | ||
code | string | Generic code about the error Enum: | |
message | string | Message describing the error |
Unauthorized, please make sure you are properly authenticated
Forbidden, please make sure you are allowed to use this route
Session not found
xxxxxxxxxx
{
"state": "ERROR",
"stateErrors": [
{
"code": "{string}",
"message": "User has cancelled the authentication"
}
]
}