Download OpenAPI specification:Download
The finoOS API provides a safe and secure way to access financial services powered by fino.
Once you have obtained a client identifier
and a client secret
, you can start using the finoOS API as described in the following sections.
All endpoints are located at https://os.fino.cloud/api
for production access and https://os.test.fino.cloud/api
for testing access.
Legacy API finoOS1 Documentation: legacy.
To integrate with the finoOS API, we assume you to be familiar with the following technical principles:
For more information on these topics, follow the respective links. If you are unsure how to integrate with the finoOS API after reading the documentation, feel free to contact us.
Error responses of the API will return one of the HTTP error codes listed below in the Status Codes and Errors table. Error responses will contain a JSON-encoded body of the following format:
{
"type": "forbidden",
"message": "Forbidden. No access to this resource"
}
Status Codes and Errors
Code | Name | Description |
---|---|---|
200 | OK | Success |
201 | Created | Success |
202 | Accepted | Success |
204 | No Content | Success, but no response content |
400 | Bad Request | The provided request was invalid. Most of the times, the given format is incorrect. |
401 | Unauthorized | Invalid authorization. Check your access tokens or tenant id and secret |
403 | Forbidden | Access for the given resource or operation was denied |
404 | Not Found | The requested resource doesn't exist |
409 | Conflict | The request conflicts with a previous request |
429 | Too Many Requests | Too many requests hit the API too quickly. Rate limit exceeded |
5xx | Server Errors | Unknown finoOS server errors |
To authenticate yourself with the finoOS API, you exchange your client identifier
and client secret
for a temporary valid pair of JSON web tokens(JWT) via the
Authenticate endpoint. The returned
accessToken
has to be provided in every following request via the Authorization
header.
Authenticate with your credentials client_id
and client_secret
and grant_type=client_credentials
to retrieve a JWT.
The expiresIn
property indicate the lifetime of the accessToken
in seconds.
Generate new token with:
client_id
=5d7267d1b747aa683d88668fclient_secret
=5d7267d1b747aa683d88668fgrant_type
=client_credentialsclient_id required | string 5d7267d1b747aa683d88668f |
client_secret required | string 5d7267d1b747aa683d88668f |
grant_type required | string client_credentials |
{- "access_token": "jA1nN-pl4uEwyJ0_-v3rIr3byH2PwyQ_deE20sWDEdolpJB-NBASpQyxXnjL1M9Yorq3QZAUCuaam9DH_KoLb3NlOPVDar83lI3_Ns3R_LrMcs_P4hs_m57Z-h-BBBdKklvqibLAZTp_0l90-Quy1vcrER7lN3oIfwSEpxhebA8CWKlTYROUfTax6g_25JSAKtUT-wjGl29_rRlFIs9tQcmDrwCkz7iRv5y9tE_S5hbiJ5n7vBPKna7zaeYqcq-09K_SP8iopGkiUC1LVUIiwYt2UdDGi2FnebhtWiuPQTE0zVqqe_ivY0GTKvbQndXfAYkMnWS3L6BXcIAFNPxBpcRynkAsOM5GUKtGa8laHkcAJ5uzPsurlWhPnlmFQv41fQvyzMH-jWWqzeU0RHyIufgy2Zj6-sO4ImbH1lhK2M_Y4dplIAtAfWIcWzatz3SAuksdCp1r8FuSBP2uMS0Y2v0nQU6QC78WymqNPebv7XO-q55Tl4CO3z-uf4qeV0RnQLMvNa0LIz-IduJicV01_QKw8dCfn4zLNCV5l8Tc15G1CumDIpFFe_kbuYWyQ9v6111EyPVOu3Qeom8zDWE5qmaiQ8eB-LE45zi7Da_6HKVH0LSSMEzneNDYonJqQR1Ea1mkHglzjbQRiylclCzMRNKbAKhXM7erolX0HwLj27iliGoQ1itIgeAsNYtty2JVmIE2pI2p2YimvUkLNiqhhZtFhagDVmxo2GeFD7PBS4-RxdmM0kuyb-VB8sDFMEeZ5hW1wec2rfy1eNfS5sVLtSvCBpMbUvG0eHZWHvYAFX-4yJ5F1tQoYlK_Yc7RJuR_D0lcpBTiobYwRCXIsuGMf-hhrSyzSKDMG0rIowf-XC1XInAjdzpq4LLNykUIntJrFsDobbngoKJAMJUcRA3SUElRXvYkms6E62lSQPEGeuPTLcMrM3mumUND6uf0wcw96VM3Rd6NgSJ-U6Xd8ofy76X-GSYxj3O7j4r5EjEqHFaogLpthA85PYJmYdinH7eXRQ47AHLJmAwXfS-Tiu776Iep8_lUY2n78_i4QaA8gPPyLXa6JN-IL6uFdnowjGfpDWnIjUmUqVODMIrtIr7LjNtQhz0PXj-PvUIjXTcA__wkGZDi3TXSJ9X8C7XH7xUJbXo1jQsya-A_5erTd6RGSZs4Pgtn6Q714sC2PVhB0Ks3qOVe6t42iFQ_1Y4VYBa9e-5PW4TRMn4VjF0wrXHWZqlF1uEf5c3zbFF9JDT4NehvdcAnBc9HcyY18V9V7tZGnrmIVeKSZIXO1nKBplQR_roSS-ikIBYwR0V6sVjy8czM6eE2-9WL64d0V7PNGth5XTUF3BLwVpKXFq6nyRdLJvN_5ASDUtOXV6Gwxv2a_hFMA9Sx1KzewxQZVNiOEwO7WGgja46JsmLg0EUDLAKXMFsUGAqdE9E6b8CY_EbSPfEEFayt6KOpihVKDwDsvhe-rIJiQlszfLDvPHQTC3DRL6KbmncdHjlV93RjcBK2HsF1DQM8MOjAtBQMDvZv46PA56kYnSPKqNH_vaLo7bX173j829KikrfJcCj8ca2fYOKh7kY6nZfFInceJFVmKFO0Ea1EqI4o9koCRNMVA4IRBJTVA4EC0WBPQ_KqY7K2tA85zDwFCVx8uxT8bdu7XUd3jU24KVkAucQoP_OcTCgPjaDCqoO0rta-EJ45547sxzhfaCoG4QFP5XMXFwwo756O5_QXBk8PUIwMDKKMCqvFn0ySswcOE5vLxhtXvRq7OXytEPtfVvmF_Tt0Kkb6KBvBrFjrWiJkNfWEvwZonPC5xN4FgJcIW-Xm4mOAuIJVIEH3I-JvmTYAMfgMz85L0C7O2ls9n9_vMsHAKpeDUn4iJ9UuIOp3x8QkEgBTBSoIC3e22wVGjdExzeuqIT_e_6poFl6l7Vx-UBi_dPrNGETxvW4K5-svXtiV-Igsw3YonweKIpZ516C3PajGK1_BjwyzsdyqKoKfadtdMXgv9llh98OfqAjXOju-BsWf9Z7DBpxC8G7ZgArHOKauh8bGORtC3iBph-Pe_YYuJhayTsD2iaf_JpMiZS2fS2ooeuLHC86A5ZFhQJ8dbrFCGDfWds_WCpKyy8igEZVjBdTZS5vRLJ5BJKvZw_vNa37FLjAH0EyuSCXaPHF9TpdsqtfJbauv-yvPBlwxVh3j8zm8WipFeRBdPitDlDWAvwIYrgYRIgGaq_FrSYVrXoSwTxSoahjRAGE7YdpEJWGssDttSol4fIdZA5IyDnhGV6zk-IYYZuPjWs8p49b0yyuvPiDCen-hgYIdaVrB3UyzdX9MxPfqopLAtp8KIr_9RbPkNg26eEfQOxqTCS6qPNIpnSHKEOxEQACdMEJ6VUFZcKzS41cywiGoqNHvu0PrwTQxcAYqS9A2d-xpf7M4ZJ73",
- "expires_in": 300,
- "not-before-policy": 1618235966,
- "scope": "credits webhooks companiesLogo bankingExternal banking contracts",
- "session_state": "1e2212ad-e13f-4d3d-af05-7d1716ee920a",
- "token_type": "Bearer"
}
Your client is assigned a set of scopes on creation. Scopes define which service or endpoints can be used with your client. For now, this can only be done manually by one of our engineers. If you want to book or cancel a certain scopes or services, please contact us.
To determine which scopes you need, just check out the endpoints and services you want to implement. The required scope is documented on every endpoint.
scope | description |
---|---|
banking | access to all banking features |
banking-fetch | fetching of raw accounts and transactions |
banking-connect | connecting to xs2a interface to retrieve accounts and transactions and enable automatic daily syncs of the data |
banking-upload | uploading of raw accounts and transactions |
categorization | transaction tags detected by our analysis |
categorization-categories | categories tree and their dependencies on each other and a description of the categories with localization in German and English |
account-detection | list of accounts uploaded or retrieved with xs2a and additional accounts detected by our analysis |
account-history | daily balances for all accounts |
contracts | contracts based on tags and other characteristics |
cockpits | comprehensive display of our analysis results |
renter-information | compact salary and rental information |
webhooks | enables to create webhooks to receive notifications or data for every scope or analysis result |
Users in the finoOS API represent the end-user of your application. All services that require some kind of data persistence are only usable in connection with a user.
Gets all users paginated.
page | string The page of users to retrieve |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "context": {
- "client": "testClient",
- "count": 15,
- "page": 1,
- "pageSize": 10,
- "tenant": "testTenant"
}, - "users": [
- {
- "automaticAnalysis": "suspended",
- "createdAt": "2024-08-14T11:37:20.515Z",
- "customUserID": "0815",
- "name": "John Doe",
- "type": "person",
- "userID": "e57a73a9-bcda-4cda-9e8a-99a915a7d675",
- "userScopes": [
- "banking",
- "banking-fetch",
- "banking-upload",
- "account-detection",
- "categorization",
- "contracts",
- "cockpits"
]
}
]
}
Adds a user.
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload of the request
automaticAnalysis | string Default: "active" Enum: "suspended" "active" Optional field to deactivate the automatic analysis for the user. If set to suspended, the user will not be analyzed automatically and trigger-analysis can be used instead. If set to active, the user will be analyzed automatically. |
customUserID | string Optional CustomUserID of the created user. |
name | string Optional Name of the created user. |
type | string Enum: "person" "company" Type of the user. |
userScopes | Array of strings Optional Scopes array to create this specific user with reduced calculation scopes. Can be a array containing values of [banking,banking-fetch,banking-upload,account-detection,categorization,contracts,cockpits]. Only the given scopes will be accessible and calculated for the created user. |
{- "automaticAnalysis": "suspended",
- "customUserID": "0815",
- "name": "John Doe",
- "type": "person",
- "userScopes": [
- "banking",
- "banking-fetch",
- "banking-upload",
- "account-detection",
- "categorization",
- "contracts",
- "cockpits"
]
}
{- "context": {
- "client": "testClient",
- "tenant": "testTenant"
}, - "user": {
- "automaticAnalysis": "suspended",
- "createdAt": "2024-08-14T11:37:20.515Z",
- "customUserID": "0815",
- "name": "John Doe",
- "type": "person",
- "userID": "e57a73a9-bcda-4cda-9e8a-99a915a7d675",
- "userScopes": [
- "banking",
- "banking-fetch",
- "banking-upload",
- "account-detection",
- "categorization",
- "contracts",
- "cockpits"
]
}
}
Updates a user.
Authorization required | string The authorization token |
tenantID | string The client's tenant |
The payload of the request
automaticAnalysis | string Enum: "suspended" "active" Optional field to deactivate the automatic analysis for the user. If set to suspended, the user will not be analyzed automatically and trigger-analysis can be used instead. If set to active, the user will be analyzed automatically. |
customUserID | string Optional CustomUserID of the created user. |
name | string Optional Name of the created user. |
{- "automaticAnalysis": "active",
- "customUserID": "0815",
- "name": "John Doe"
}
{- "context": {
- "client": "testClient",
- "tenant": "testTenant"
}, - "user": {
- "automaticAnalysis": "suspended",
- "createdAt": "2024-08-14T11:37:20.515Z",
- "customUserID": "0815",
- "name": "John Doe",
- "type": "person",
- "userID": "e57a73a9-bcda-4cda-9e8a-99a915a7d675",
- "userScopes": [
- "banking",
- "banking-fetch",
- "banking-upload",
- "account-detection",
- "categorization",
- "contracts",
- "cockpits"
]
}
}
Get User by using optional value customUserID which can be assigned to a user on creation. Note this currently can only find the customUserID if a cockpit was successfully created.
custom-user-id required | string The customUserID id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "advisorID": "string",
- "advisorIDs": [
- "string"
], - "createdAt": "2024-08-14T11:37:20.515Z",
- "customUserID": "0815",
- "duplicates": [
- {
- "createdAt": "2024-08-14T11:37:20.515Z",
- "customUserID": "0815",
- "id": "2b694f26-b9c3-43d9-a1d4-c2947275967a",
- "name": "John Doe",
- "tenant": "testTenant2",
- "type": "person"
}
], - "id": "e57a73a9-bcda-4cda-9e8a-99a915a7d675",
- "tenant": "testTenant",
- "type": "person"
}
Delete multiple user.
Authorization required | string The authorization token |
TenantID | string The client's tenant |
The payload of the request
userIDs | Array of strings |
{- "userIDs": [
- "da009c79-542f-42f8-b720-a9f3e8c0ecdd",
- "7911e6b9-a83f-49f9-b931-6ab1a8155a42",
- "18c2d236-5fcb-4931-bfbb-05f55d5f895f"
]
}
{- "users": {
- "deleted": [
- "da009c79-542f-42f8-b720-a9f3e8c0ecdd"
], - "failedToDelete": [
- "7911e6b9-a83f-49f9-b931-6ab1a8155a42"
], - "notFound": [
- "18c2d236-5fcb-4931-bfbb-05f55d5f895f"
]
}
}
Scope: banking or banking-upload and cockpits
Send User Creation information alongside the bank accounts and transactions When you set the accounts and transactions, make sure to provide a unique id or number on each
Otherwise our services will not be able to handle your data correctly and return unexpected results.
Authorization required | string Default: Bearer <Add access token here> The authorization token |
The payload of the request
required | Array of objects (banking.AccountRequest) non-empty |
Array of objects (banking.Advisor) Only required for status=start. Optional Advisors of the created user. Minimum is a id to connect the cockpit to the advisor. | |
customUserID required | string Required CustomUserID of the user and later used for allocation of created user. |
name | string Only required for status=start. Optional Name of the created user. |
status required | string Enum: "start" "upload" "finish" Combination of enums is allowed. |
type | string Enum: "person" "company" Only required for status=start. Required Type of the created user. Can be person or company. |
{- "accounts": [
- {
- "accountId": "A38253.f837c3ab353",
- "accountNumber": "83767594",
- "balance": 2004.41,
- "bankCode": "10020000",
- "bankName": "Fino Bank",
- "bic": "FINOBANK01",
- "creditLine": 0,
- "currency": "EUR",
- "iban": "DE64100200007791587578",
- "monthlySpendingLimit": 6000,
- "name": "Girokonto",
- "overdraft": {
- "amount": 5000,
- "available": true
}, - "owner": "Torben Mais",
- "securities": [
- {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "amountOriginalCurrency": 150,
- "currency": "EUR",
- "exchangeRate": 1.23,
- "isin": "US0378331005",
- "market": "NASDAQ",
- "name": "finoOS Security",
- "price": 1.23,
- "priceCurrency": "EUR",
- "purchasePrice": 150,
- "purchasePriceCurrency": "EUR",
- "quantity": 40,
- "securityId": "5ecd4d9bb9e14800012d99e9",
- "wkn": "A3GZKD"
}
], - "standingOrders": [
- {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "creationTimestamp": "2020-05-26 17:11:22Z",
- "currency": "EUR",
- "executionDay": 2,
- "firstExecutionDate": "2020-05-26",
- "iban": "DE64100200007791587578",
- "interval": "MONTHLY",
- "lastExecutionDate": "2020-05-26",
- "name": "5ecd4d9bb9e14800012d99e9",
- "purpose": "Taschengeld",
- "standingOrderId": "0ddad370-6738-4652-8586-2c48bc3681b5"
}
], - "transactions": [
- {
- "amount": 3563.84,
- "bookingDate": 1705928941,
- "bookingText": "Salary current month",
- "currency": "EUR",
- "differentCreditor": "DIFC98450",
- "differentDebitor": "DIFD70204",
- "eref": "K12345678901/000002/34ABC45D",
- "mref": "PWG9O3S2BVHZ0V27BI2X",
- "paymentPartner": {
- "bic": "GENODEF1S04",
- "creditorId": "",
- "iban": "DE83701999010000002000",
- "name": "Andreas Schett"
}, - "purpose": "Salary current month",
- "sepaPurposeCode": "ACCT",
- "transactionCode": 999,
- "transactionId": "accId1_txId1",
- "valueDate": 1705928941
}
], - "type": "GIRO"
}
], - "advisors": [
- {
- "id": "string",
- "linkID": "string",
- "mail": "consultant-max-mustermann@huk.com",
- "name": "max mustermann",
- "onboardingMail": true,
- "phoneNumber": "0123456789",
- "reportAccess": false,
- "reportInterval": "0 0 1W * *",
- "reportRole": "report-tenant, report",
- "reportSend": false,
- "role": "tenantadmin, tenant-manager, employee",
- "sendMail": true,
- "type": "person, company, person-company, company-person",
- "welcomeMail": true
}
], - "customUserID": "1337",
- "name": "string",
- "status": "start,finish",
- "type": "person"
}
{- "correlationID": "string",
- "correlationTimestamp": "string",
- "customUserID": "1337",
- "userID": "1234567890"
}
Get a user.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "context": {
- "client": "testClient",
- "tenant": "testTenant"
}, - "user": {
- "automaticAnalysis": "suspended",
- "createdAt": "2024-08-14T11:37:20.515Z",
- "customUserID": "0815",
- "name": "John Doe",
- "type": "person",
- "userID": "e57a73a9-bcda-4cda-9e8a-99a915a7d675",
- "userScopes": [
- "banking",
- "banking-fetch",
- "banking-upload",
- "account-detection",
- "categorization",
- "contracts",
- "cockpits"
]
}
}
Delete a user.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "message": "string",
- "type": "invalidInput"
}
Adds scopes to user and trigger a new calculation with expanded scopes.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload of the request
userScopes | Array of strings Scopes input for a user to calculate more scopes. Scopes can only be added and cannot be removed. Can be a array containing values of [banking,banking-fetch,banking-upload,account-detection,categorization,contracts,cockpits]. Only the given scopes will be accessible and calculated for the user. |
{- "userScopes": [
- "banking",
- "banking-fetch",
- "banking-upload",
- "account-detection",
- "categorization",
- "contracts",
- "cockpits"
]
}
{- "correlationID": "18bf1171-9e82-4a74-bf52-923b9a80144e",
- "userScopes": [
- "banking",
- "banking-fetch",
- "banking-upload",
- "account-detection",
- "categorization",
- "contracts",
- "cockpits"
]
}
Manually trigger a new analysis for this user. The user needs to have raw banking data instead if not this no new analysis can be triggered.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "correlationID": "18bf1171-9e82-4a74-bf52-923b9a80144e",
- "userScopes": [
- "banking",
- "banking-fetch",
- "banking-upload",
- "account-detection",
- "categorization",
- "contracts",
- "cockpits"
]
}
The finoOS Banking service provides a secure and reliable way to access and manage financial data of bank accounts.
For multi banking
access or connecting of multiple bank accounts use the following procedure:
addBankLogin=true
skips the overview UI and starts a connect flow for an additional account so that you can seamlessly connect multiple accountsScope: banking
user-id required | string The user id of the finoOS user |
includeTransactions | boolean Set to false if accounts response should not include transactions. Defaults to true |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "accounts": [
- {
- "accountId": "A38253.f837c3ab353",
- "accountNumber": "83767594",
- "balance": 2004.41,
- "bankCode": "10020000",
- "bankLoginId": "5d7267d1b747aa683d88668f",
- "bankName": "Fino Bank",
- "bic": "FINOBANK01",
- "creditLine": 0,
- "currency": "EUR",
- "iban": "DE64100200007791587578",
- "monthlySpendingLimit": 6000,
- "name": "Girokonto",
- "overdraft": {
- "amount": 5000,
- "available": true
}, - "owner": "Torben Mais",
- "securities": [
- {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "amountOriginalCurrency": 150,
- "currency": "EUR",
- "exchangeRate": 1.23,
- "isin": "US0378331005",
- "market": "NASDAQ",
- "name": "finoOS Security",
- "price": 1.23,
- "priceCurrency": "EUR",
- "purchasePrice": 150,
- "purchasePriceCurrency": "EUR",
- "quantity": 40,
- "securityId": "5ecd4d9bb9e14800012d99e9",
- "wkn": "A3GZKD"
}
], - "standingOrders": [
- {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "creationTimestamp": "2020-05-26 17:11:22Z",
- "currency": "EUR",
- "executionDay": 2,
- "firstExecutionDate": "2020-05-26",
- "iban": "DE64100200007791587578",
- "interval": "MONTHLY",
- "lastExecutionDate": "2020-05-26",
- "name": "5ecd4d9bb9e14800012d99e9",
- "purpose": "Taschengeld",
- "standingOrderId": "0ddad370-6738-4652-8586-2c48bc3681b5"
}
], - "supportedPayments": [
- "SINGLE_MONEY_TRANSFER"
], - "transactions": [
- {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 3563.84,
- "bookingDate": 1705928941,
- "bookingText": "Salary current month",
- "currency": "EUR",
- "differentCreditor": "DIFC98450",
- "differentDebitor": "DIFD70204",
- "eref": "K12345678901/000002/34ABC45D",
- "mref": "PWG9O3S2BVHZ0V27BI2X",
- "paymentPartner": {
- "bic": "GENODEF1S04",
- "creditorId": "",
- "iban": "DE83701999010000002000",
- "name": "Andreas Schett"
}, - "purpose": "Salary current month",
- "sepaPurposeCode": "ACCT",
- "transactionCode": 999,
- "transactionId": "T3fe91f3b-27b0-4568-8594-160ef78ae451",
- "valueDate": 1705928941
}
], - "type": "GIRO"
}
]
}
Scope: banking,banking-upload
Note: You can only set accounts if you do not use our Banking UI and already possess the bank data of your user.
Set the bank accounts of the user. When you set the accounts and transactions, make sure to provide a unique id or number on each
Otherwise our services will not be able to handle your data correctly and return unexpected results.
If an account with an existing accountId and accountNumber is provided, it will override the existing account in our database.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload of the request
required | Array of objects (banking.AccountRequest) non-empty |
{- "accounts": [
- {
- "accountId": "A38253.f837c3ab353",
- "accountNumber": "83767594",
- "balance": 2004.41,
- "bankCode": "10020000",
- "bankName": "Fino Bank",
- "bic": "FINOBANK01",
- "creditLine": 0,
- "currency": "EUR",
- "iban": "DE64100200007791587578",
- "monthlySpendingLimit": 6000,
- "name": "Girokonto",
- "overdraft": {
- "amount": 5000,
- "available": true
}, - "owner": "Torben Mais",
- "securities": [
- {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "amountOriginalCurrency": 150,
- "currency": "EUR",
- "exchangeRate": 1.23,
- "isin": "US0378331005",
- "market": "NASDAQ",
- "name": "finoOS Security",
- "price": 1.23,
- "priceCurrency": "EUR",
- "purchasePrice": 150,
- "purchasePriceCurrency": "EUR",
- "quantity": 40,
- "securityId": "5ecd4d9bb9e14800012d99e9",
- "wkn": "A3GZKD"
}
], - "standingOrders": [
- {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "creationTimestamp": "2020-05-26 17:11:22Z",
- "currency": "EUR",
- "executionDay": 2,
- "firstExecutionDate": "2020-05-26",
- "iban": "DE64100200007791587578",
- "interval": "MONTHLY",
- "lastExecutionDate": "2020-05-26",
- "name": "5ecd4d9bb9e14800012d99e9",
- "purpose": "Taschengeld",
- "standingOrderId": "0ddad370-6738-4652-8586-2c48bc3681b5"
}
], - "transactions": [
- {
- "amount": 3563.84,
- "bookingDate": 1705928941,
- "bookingText": "Salary current month",
- "currency": "EUR",
- "differentCreditor": "DIFC98450",
- "differentDebitor": "DIFD70204",
- "eref": "K12345678901/000002/34ABC45D",
- "mref": "PWG9O3S2BVHZ0V27BI2X",
- "paymentPartner": {
- "bic": "GENODEF1S04",
- "creditorId": "",
- "iban": "DE83701999010000002000",
- "name": "Andreas Schett"
}, - "purpose": "Salary current month",
- "sepaPurposeCode": "ACCT",
- "transactionCode": 999,
- "transactionId": "accId1_txId1",
- "valueDate": 1705928941
}
], - "type": "GIRO"
}
]
}
{- "userId": "d73df22f-cff9-4a31-8cd2-7f46e8603414"
}
Scope: banking,banking-upload
_Note: You can only set accounts which were previously added by a manual upload with banking-create-external-accounts
Updates the bank accounts of the user. Can update account fields and transaction fields excluding the ids
and accountnumber
.
When fields are omitted from the request or null they will be ignored by the update.
For example if bankName
is set to "example" and the update request does not contain bankName
, the bankName
will not be updated and still be set to "example".
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload of the request
Array of objects |
{- "accounts": [
- {
- "accountId": "string",
- "accountNumber": "string",
- "balance": 0,
- "bankCode": "string",
- "bankName": "string",
- "bic": "string",
- "creditLine": 0,
- "currency": "string",
- "iban": "string",
- "icon": "string",
- "monthlySpendingLimit": 0,
- "name": "string",
- "overdraft": {
- "amount": 5000,
- "available": true
}, - "owner": "string",
- "supportedPayments": [
- "string"
], - "transactions": [
- {
- "accountId": "string",
- "amount": 0,
- "bookingDate": 2147483646,
- "bookingText": "string",
- "currency": "string",
- "differentCreditor": "string",
- "differentDebitor": "string",
- "eref": "string",
- "mref": "string",
- "paymentPartner": {
- "bic": "string",
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "purpose": "string",
- "sepaPurposeCode": "string",
- "transactionCode": 0,
- "transactionId": "string",
- "valueDate": 2147483646
}
], - "type": "GIRO"
}
]
}
{- "message": "string",
- "type": "invalidInput"
}
Scope: banking,banking-upload
Delete transactions from existing accounts. The account with the provided id must exist or this request will fail accordingly.
user-id required | string The user id of the finoOS user |
account-id required | string The account id of the account |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload of the request
ids | Array of strings The transactionIds to delete for the account |
{- "ids": [
- "string"
]
}
{- "message": "string",
- "type": "invalidInput"
}
Scope: banking,banking-upload
Update transactions for existing accounts. The account with the provided id must exist or this request will fail. Also each transactionId must already exist to update a transaction.
When fields are omitted from the request or null they will be ignored by the update.
For example if bookingText
is set to "example" and the update request does not contain bookingText
, the bookingText
will not be updated and still be set to "example".
user-id required | string The user id of the finoOS user |
account-id required | string The account id of the account |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload of the request
Array of objects |
{- "transactions": [
- {
- "accountId": "string",
- "amount": 0,
- "bookingDate": 2147483646,
- "bookingText": "string",
- "currency": "string",
- "differentCreditor": "string",
- "differentDebitor": "string",
- "eref": "string",
- "mref": "string",
- "paymentPartner": {
- "bic": "string",
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "purpose": "string",
- "sepaPurposeCode": "string",
- "transactionCode": 0,
- "transactionId": "string",
- "valueDate": 2147483646
}
]
}
{- "message": "string",
- "type": "invalidInput"
}
Scope: banking
Returns the account summary as a PDF that contains up to a maximum of 10000 transactions.
If since
and until
are provided, the summary will only contain transactions within the specified
date range.
If no date range is specified, the summary will attempt to gather all transactions of the account up to a limit of 10000 transactions.
If a date range is provided, and it contains more than 10000 transactions, the pdf will only contain all transactions up to the last date that does not exceed this limit. In this case, the response will have a 206 status code.
If a pdf file returns with a 206 status code, the response will contain a header stoppedAt
which will
point to the next available date after the last page that was successfully processed.
Note: It is also possible to only provide the since
parameter. In this case, the summary will be
generated from the provided date until the current date. Also, if the gathered data exceeds 10000
transactions, the response will be cropped as described above.
user-id required | string The user id of the finoOS user |
account-id required | string The id of account to get the summary for |
since | string RFC3339 formatted timestamp for inclusive filtering |
until | string RFC3339 formatted timestamp for inclusive filtering |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
Scope: banking,banking-upload
Add transactions to existing accounts. The account with the provided id must exist or this request will fail accordingly.
You have to provide unique transaction ids. Otherwise our services will override existing transactions.
user-id required | string The user id of the finoOS user |
account-id required | string The account id of the account |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload of the request
required | Array of objects (banking.TransactionRequest) |
{- "transactions": [
- {
- "amount": 3563.84,
- "bookingDate": 1705928941,
- "bookingText": "Salary current month",
- "currency": "EUR",
- "differentCreditor": "DIFC98450",
- "differentDebitor": "DIFD70204",
- "eref": "K12345678901/000002/34ABC45D",
- "mref": "PWG9O3S2BVHZ0V27BI2X",
- "paymentPartner": {
- "bic": "GENODEF1S04",
- "creditorId": "",
- "iban": "DE83701999010000002000",
- "name": "Andreas Schett"
}, - "purpose": "Salary current month",
- "sepaPurposeCode": "ACCT",
- "transactionCode": 999,
- "transactionId": "accId1_txId1",
- "valueDate": 1705928941
}
]
}
{- "transactionsAdded": 0
}
Scope: banking
Connect the user with the banking service. This creates a session for our Banking UI and returns a URL to the bank login section of the Banking UI. Redirect your user to this URL. After connecting the bank login or in case of an error or exit of the user, we will redirect the user to your application. Specify your own redirect URLs for the following cases:
redirectURL
: The bank login was successfulerrorURL
: An error happenedexitURL
: The user exits the Banking UI
The redirect URLs will contain an userID
query parameter to match the redirect to the respective finoOS user.user-id required | string The user id of the finoOS user |
demo | string Set to true to activate demo mode for UBA. Simulates the login flow with fino bank and the selected demo account. False by default. |
bankCode | string The bank code of the bank to connect to. If not provided, the user will be prompted to select a bank in the Banking UI. |
multiple | string Set to true to redirect back to the management screen to connect additional accounts, false otherwise (also by default). Will be included in the response's |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload of the request
accountTypes | Array of strings Items Enum: "BAUSPAREN" "DEPOT" "FESTGELD" "FONDSDEPOT" "GIRO" "KREDIT_KARTE" "KREDIT_KONTO" "KREDITDARLEHEN" "SPARBUCH" "TAGESGELD" "UNKNOWN" "OTHER" List of account types to be shown during login |
errorURL required | string The URL your user will be redirect to in case of an error during bank login |
exitURL required | string The URL your user will be redirect to in case she or he exits the process |
persistNonRecurring | boolean Flag that indicates whether to persist non-recurring users. If omitted or set to false, non-recurring users and associated account data will be automatically deleted after 24 hours. This flag has no effect on recurring users |
recurring | boolean Default: false Whether this shall be a recurring user or not |
redirectURL required | string The URL your user will be redirect to in case of a successful bank login |
storeSecrets | boolean Whether the bank login credentials should be stored or not |
{- "accountTypes": [
- "GIRO"
], - "persistNonRecurring": false,
- "recurring": false,
- "storeSecrets": false
}
Scope: banking
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "correlationID": "cc451d48-dbc2-4ea4-894a-fb4b299f9e56",
- "correlationTimestamp": "2024-01-22T14:08:47+01:00"
}
Scope: banking
Disconnects a user from the banking service. This will also delete all stored banking data connected to
the user such as his bank logins and banking. It will not delete the user itself.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
User-IP required | string The IP address of the user. This is mandatory due to PSD2 regulations. |
{- "message": "string",
- "type": "invalidInput"
}
Scope: banking
Get the synchronization status of the connected bank logins. Determine whether the connected bank login is still synchronized automatically in background or if you need to Trigger a Synchronization manually
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
[- {
- "active": true,
- "bankLoginId": "5d7267d1b747aa683d88668f",
- "lastSynchronization": 1705928941
}
]
Scope: banking
Delete a connected bank login of the user.
user-id required | string The user id of the finoOS user |
banklogin-id required | string The bankLoginId of the accounts to be deleted |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
User-IP required | string The IP address of the user. This is mandatory due to PSD2 regulations. |
{- "message": "string",
- "type": "invalidInput"
}
Scope: banking
Sends a list of money transfers. Either returns 200 (no TAN was required, transfer was successful) or 451 (user input required)
user-id required | string The user id of the finoOS user |
banklogin-id required | string The id of BankLogin to execute the money transfer on |
Authorization required | string The authorization token |
User-IP required | string The IP address of the user. This is mandatory due to PSD2 regulations. |
The payload of the request
accountId | string Internal AccountID |
executionDate | string Execution date for the money transfer(s) in the format 'YYYY-MM-DD'. Cannot be in the past. If omitted, current date will be used. |
exitUrl | string URL the user gets redirected to after exiting the money transfer operation. Only secured URLs permitted (https) |
fallbackUrl | string URL the user gets redirected to after an error occurs during money transfer. Only secured URLs permitted (https) |
Array of objects (banking.MoneyTransferInfo) Holds all user input for a single money transfer | |
redirectUrl | string URL the user gets redirected to after money transfer operation succeeds. Only secured URLs permitted (https) |
singleBooking | boolean Only relevant for multiple money transfers. Processes the money transfers as a single booking (value: |
{- "accountId": "2000",
- "executionDate": "2018-05-19",
- "moneyTransferInfos": [
- {
- "amount": -33,
- "creditor": {
- "bic": "FINOBANK01",
- "iban": "DE64100200007791587578",
- "name": "John Doe"
}, - "purpose": "visit to a restaurant"
}
], - "singleBooking": false
}
{- "paymentId": "4c3f499042d08950a7f6126b",
- "sessionId": "5c3f499042d08950a7f6126b",
- "status": "success"
}
Scope: banking
Returns a detailed response for an existing MoneyTransfer with the executed payments and the current status
user-id required | string The user id of the finoOS user |
banklogin-id required | string The id of BankLogin the money transfer was executed on |
money-transfer-id required | string The id of the money transfer |
Authorization required | string The authorization token |
User-IP required | string The IP address of the user. This is mandatory due to PSD2 regulations. |
{- "moneyTransfers": [
- {
- "amount": -33,
- "creditor": {
- "bic": "FINOBANK01",
- "iban": "DE64100200007791587578",
- "name": "John Doe"
}, - "currency": "EUR",
- "debtor": {
- "accountNumber": "83767594",
- "bic": "FINOBANK01",
- "iban": "DE64100200007318991",
- "name": "Jane Doe"
}, - "purpose": "visit to a restaurant"
}
], - "status": "OPEN"
}
Scope: banking
This creates a session for our Banking UI and returns a URL to the overview section of the Banking UI. Redirect your user to this URL. After connecting the bank login or in case of an error or exit of the user, we will redirect the user to your application. Specify your own redirect URLs for the following cases:
redirectURL
: The bank login was successfulerrorURL
: An error happenedexitURL
: The user exits the Banking UI
The redirect URLs will contain an userID
query parameter to match the redirect to the respective finoOS user.user-id required | string The user id of the finoOS user |
addBankLogin | string Jump directly to the add bank login screen in the Banking UI |
bankCode | string In combination with addBankLogin the bank code of the bank to connect to. If not provided, the user will be prompted to select a bank in the Banking UI. |
demo | string Set to true to activate demo mode for UBA. Simulates the login flow with fino bank and the selected demo account. False by default. |
multiple | string Set to true to redirect back to the management screen to connect additional accounts, false otherwise (also by default). Will be included in the response's |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload of the request
accountTypes | Array of strings Items Enum: "BAUSPAREN" "DEPOT" "FESTGELD" "FONDSDEPOT" "GIRO" "KREDIT_KARTE" "KREDIT_KONTO" "KREDITDARLEHEN" "SPARBUCH" "TAGESGELD" "UNKNOWN" "OTHER" List of account types to be shown during login |
bankLoginId | string The ID of the bank login to be synchronized |
errorURL | string The URL your user will be redirect to in case of an error during bank login |
exitURL | string The URL your user will be redirect to in case she or he exits the process |
redirectURL | string The URL your user will be redirect to in case of a successful bank login |
{- "accountTypes": [
- "BAUSPAREN"
], - "bankLoginId": "5d7267d1b747aa683d88668f",
}
Scope: banking
Connect and add a mocked bank account from our fino bank without going through any SCA process. This is just for testing and demo purposes.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload of the request
userName | string Username of the test bank account to connect. Your contact person at fino can provide you with some test accounts.
If not provided, the default value will be |
{- "userName": "finocontext1"
}
{- "alreadyConnected": true,
- "bankLoginId": "4c3f499042d08950a7f6126b",
- "data": [
- {
- "accountId": "A5d498b5c80c1810001608dff.df482427055b8360541d60f3b7023778ba4bcb4b",
- "accountNumber": "4739183",
- "bankLoginId": "4c3f499042d08950a7f6126b",
- "iban": "DE67100200004711951500",
- "name": "Girokonto",
- "owner": "Max Mustermann",
- "type": "GIRO"
}
], - "status": "success"
}
Scope: banking
Trigger the synchronization of a connected bank login to fetch new account and transaction data from the bank. This can result in the following responses:
204
: The synchronization was successful and you can query the latest bank accounts data via Get Accounts409
: The interface used to set up the bank connection is deprecated. The user must update the connection, please redirect him to the management session.422
: The user's credentials are required for syncing.423
: The access to the account is blocked. This possibly is a problem on the user's chosen banking provider. Please refer to the payload of the response for more context429
: The daily limit of manual synchronizations has been reached451
: This creates a session in our Banking UI, because the user has to redo the SCA process to fetch new data.
Redirect your user to the response URL. After connecting the bank login or in case of an error or exit of the user,
we will redirect the user to your application. Specify your own redirect URLs for the following cases:redirectURL
: The bank login was successfulerrorURL
: An error happenedexitURL
: The user exits the Banking UI
The redirect URLs will contain a userID
query parameter to match the redirect to the respective finoOS user.user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
User-IP required | string The IP address of the user. This is mandatory due to PSD2 regulations. |
The payload of the request
bankLoginId | string The ID of the bank login to be synchronized |
errorURL | string The URL your user will be redirect to in case of an error during bank login |
exitURL | string The URL your user will be redirect to in case she or he exits the process |
redirectURL | string The URL your user will be redirect to in case of a successful bank login |
{- "bankLoginId": "5d7267d1b747aa683d88668f",
}
{- "message": "string",
- "type": "invalidInput"
}
Scope: banking
Returns all transactions for this user
user-id required | string The user id of the finoOS user |
since | string RFC3339 formatted timestamp for inclusive filtering |
until | string RFC3339 formatted timestamp for inclusive filtering |
transactionIds | string TransactionId`s seperated bei comma. If this is sent since and until are ignored |
lastMonths | string filters the transactions of the last n months from the current time. Must be a positive value |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
[- {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 3563.84,
- "bookingDate": 1705928941,
- "bookingText": "Salary current month",
- "currency": "EUR",
- "differentCreditor": "DIFC98450",
- "differentDebitor": "DIFD70204",
- "eref": "K12345678901/000002/34ABC45D",
- "mref": "PWG9O3S2BVHZ0V27BI2X",
- "paymentPartner": {
- "bic": "GENODEF1S04",
- "creditorId": "",
- "iban": "DE83701999010000002000",
- "name": "Andreas Schett"
}, - "purpose": "Salary current month",
- "sepaPurposeCode": "ACCT",
- "transactionCode": 999,
- "transactionId": "T3fe91f3b-27b0-4568-8594-160ef78ae451",
- "valueDate": 1705928941
}
]
This categorization-categories
scope allows access to the categories and to determine their dependencies on each other. Additionally, a description of the categories is available with localization in German and English.
The hash version of the tree and the description is an aid to recognizing the changes, it is not a version per se. We reserve the right to adapt the hierarchies if we think that it fits better from a technical point of view.
Returns a paginated list or current tags for transactions. Its possible to query for changes in the categorization by providing a correlationID in the query. This will return the diff of newly added tags for transactions since the provided correlation.
user-id required | string The user id of the finoOS user |
page | integer The page number. Default is 1. |
pageSize | integer The number of transactions to return. Default is 10. |
correlationID | string optional: If provided, the response will only contain changes to tagging for the correlationID or newer. This includes tags for newly added transactions or changes in tagging for previously tagged transactions |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "categorization": [
- {
- "accountId": "123-321-123",
- "creationDate": "2024-01-22T14:08:47+01:00",
- "tags": [
- "earning",
- "fix",
- "recurring"
], - "transactionId": "123-321-123"
}
], - "metaData": {
- "page": 0,
- "pageSize": 0,
- "pages": 0,
- "totalCount": 0
}
}
Scope: categorization
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "correlationID": "cc451d48-dbc2-4ea4-894a-fb4b299f9e56",
- "correlationTimestamp": "2024-01-22T14:08:47+01:00"
}
Returns a list of patterns that the user has added
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "ids": {
- "ad28d72b35fb6fac8b0dbbb57a328289fc494bf5": [
- "spending",
- "insurance"
]
}, - "patterns": [
- {
- "since": "2019-04-12T11:46:23+00:00",
- "tags": [
- "earning",
- "fix",
- "recurring"
], - "type": "name",
- "until": "2019-04-12T11:46:23+00:00",
- "value": "Müschke GmbH"
}
]
}
The endpoint makes a complete update of the patterns and then categorizes the transactions. Therefore, all patterns must be specified in the body, even if the pattern does not change. Currently it is only possible to create patterns based on the PaymentPartner (Name and CreditorID). Further possibilities will follow. If since and until are omitted, all existing transactions are tagged.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload with patterns
object (categorization.SwagID) | |
Array of objects (categorization.Pattern) |
{- "ids": {
- "ad28d72b35fb6fac8b0dbbb57a328289fc494bf5": [
- "spending",
- "insurance"
]
}, - "patterns": [
- {
- "since": "2019-04-12T11:46:23+00:00",
- "tags": [
- "earning",
- "fix",
- "recurring"
], - "type": "name",
- "until": "2019-04-12T11:46:23+00:00",
- "value": "Müschke GmbH"
}
]
}
Returns the transactions of the user with the current valid tags
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "accounts": [
- {
- "accountId": "A38253.f837c3ab353",
- "accountNumber": "83767594",
- "balance": 2004.41,
- "bankCode": "10020000",
- "bankLoginId": "5d7267d1b747aa683d88668f",
- "bankName": "Fino Bank",
- "bic": "FINOBANK01",
- "creditLine": 0,
- "currency": "EUR",
- "iban": "DE64100200007791587578",
- "monthlySpendingLimit": 6000,
- "name": "Girokonto",
- "overdraft": {
- "amount": 5000,
- "available": true
}, - "owner": "Torben Mais",
- "securities": [
- {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "amountOriginalCurrency": 150,
- "currency": "EUR",
- "exchangeRate": 1.23,
- "isin": "US0378331005",
- "market": "NASDAQ",
- "name": "finoOS Security",
- "price": 1.23,
- "priceCurrency": "EUR",
- "purchasePrice": 150,
- "purchasePriceCurrency": "EUR",
- "quantity": 40,
- "securityId": "5ecd4d9bb9e14800012d99e9",
- "wkn": "A3GZKD"
}
], - "standingOrders": [
- {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "creationTimestamp": "2020-05-26 17:11:22Z",
- "currency": "EUR",
- "executionDay": 2,
- "firstExecutionDate": "2020-05-26",
- "iban": "DE64100200007791587578",
- "interval": "MONTHLY",
- "lastExecutionDate": "2020-05-26",
- "name": "5ecd4d9bb9e14800012d99e9",
- "purpose": "Taschengeld",
- "standingOrderId": "0ddad370-6738-4652-8586-2c48bc3681b5"
}
], - "supportedPayments": [
- "SINGLE_MONEY_TRANSFER"
], - "transactions": [
- {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 3563.84,
- "bookingDate": 1705928941,
- "bookingText": "Salary current month",
- "currency": "EUR",
- "differentCreditor": "DIFC98450",
- "differentDebitor": "DIFD70204",
- "eref": "K12345678901/000002/34ABC45D",
- "mref": "PWG9O3S2BVHZ0V27BI2X",
- "paymentPartner": {
- "bic": "GENODEF1S04",
- "creditorId": "",
- "iban": "DE83701999010000002000",
- "name": "Andreas Schett"
}, - "purpose": "Salary current month",
- "sepaPurposeCode": "ACCT",
- "tags": [
- "earning",
- "fix",
- "recurring"
], - "transactionCode": 999,
- "transactionId": "T3fe91f3b-27b0-4568-8594-160ef78ae451",
- "valueDate": 1705928941
}
], - "type": "GIRO"
}
]
}
Returns the current tags of a transaction
user-id required | string The user id of the finoOS user |
transaction-id required | string The transaction id |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "tags": [
- "earning",
- "fix",
- "recurring"
]
}
This categorization-categories
scope allows access to the categories and to determine their dependencies on each other. Additionally, a description of the categories is available with localization in German and English.
The hash version of the tree and the description is an aid to recognizing the changes, it is not a version per se. We reserve the right to adapt the hierarchies if we think that it fits better from a technical point of view.
Returns the categorization tree, which represents a hierarchy of tags when categorizing
Authorization required | string Default: Bearer <Add access token here> The authorization token |
{- "nodes": {
- "children": [
- { }
], - "level": 0,
- "tag": "string",
- "type": "attribute"
}, - "treeVersionHash": "string",
- "type": "string"
}
Returns the description of tags
Authorization required | string Default: Bearer <Add access token here> The authorization token |
{- "descriptionList": [
- {
- "description": "string",
- "displayName": "string",
- "name": "string"
}
], - "descriptionVersionHash": "string",
- "language": "string",
- "type": "string"
}
This Banking Module returns a list of Bank-Account & CreditCards that the User has connected.
Additionally other Accounts that were found through the Analysis of the Users Transaction-Data are also returned.
If an account was found through the analysis the field additionalAnalysesInfo.IsUserAdded
will be true
.
Returns a list of user connect accounts + other accounts found through transaction analysis
user-id required | string The user id of the finoOS user |
Authorization required | string The authorization token |
TenantID | string The client's tenant |
{- "accountsOverview": {
- "accountsView": [
- {
- "accountId": "string",
- "accountNumber": "string",
- "additionalAnalysesInfo": {
- "analysis": {
- "average": 0,
- "averageEarning": 0,
- "averageSpending": 0,
- "median": 0,
- "medianEarning": 0,
- "medianSpending": 0
}, - "analysisPeriod": {
- "since": "string",
- "until": "string"
}, - "isUserAdded": true
}, - "balance": 0,
- "bankCode": "string",
- "bankName": "string",
- "bic": "string",
- "currency": "string",
- "iban": "string",
- "icon": "string",
- "name": "string",
- "overDraft": "string",
- "overDraftAvailable": true,
- "owner": "string",
- "type": "GIRO"
}
], - "creditsView": [
- {
- "accountId": "string",
- "accountNumber": "string",
- "additionalAnalysesInfo": {
- "analysis": {
- "average": 0,
- "averageEarning": 0,
- "averageSpending": 0,
- "median": 0,
- "medianEarning": 0,
- "medianSpending": 0
}, - "analysisPeriod": {
- "since": "string",
- "until": "string"
}, - "isUserAdded": true
}, - "balance": 0,
- "bankCode": "string",
- "bankName": "string",
- "bic": "string",
- "currency": "string",
- "iban": "string",
- "icon": "string",
- "name": "string",
- "overDraft": "string",
- "overDraftAvailable": true,
- "owner": "string",
- "type": "GIRO"
}
]
}
}
Scope: account-detection
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "correlationID": "cc451d48-dbc2-4ea4-894a-fb4b299f9e56",
- "correlationTimestamp": "2024-01-22T14:08:47+01:00"
}
Scope: account-history
Returns a list of accounts and their daily balances for the last two years
user-id required | string The user id of the finoOS user |
Authorization required | string The authorization token |
TenantID | string The client's tenant |
{- "histories": [
- {
- "account": {
- "accountId": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932"
}, - "dailyBalances": [
- {
- "balance": 1000,
- "date": "2024-01-30"
}
], - "startingBalance": {
- "balance": 1000,
- "date": "2024-01-30"
}
}
]
}
Scope: account-history
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "correlationID": "cc451d48-dbc2-4ea4-894a-fb4b299f9e56",
- "correlationTimestamp": "2024-01-22T14:08:47+01:00"
}
The finoOS Contracts service uses an intelligent bank account analysis algorithm to detect contracts and their respective transactions on one or multiple bank accounts of a user. This way, you can easily see the ongoing and past contracts of a user to get an understanding of his financial relationships. Use the finoOS Contracts service to manage these contracts by adding, updating or deleting contracts.
Be aware that we define a contract as any transactions which:
Before you can use the Contracts service, make sure to register your user with the Banking service and have one or multiple bank logins connected.
Scope: contracts
Get all contracts of the connected bank logins of a user. This includes active and past contracts.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
[- {
- "amount": -108,
- "amountConsistency": "variabel",
- "attributes": [
- "privacy"
], - "category": "CAR_TAX",
- "contractId": "cce88a0c-fca9-4ecf-8197-c54a904662c3",
- "contractPartner": {
- "additionalInfos": {
- "change_url": "",
- "preferred_contact": "letter"
}, - "address": {
- "city": "Trier",
- "countryCode": "",
- "postCode": "54232",
- "street": "Postfach 42 20",
- "streetAdditional": null,
- "streetNumber": ""
}, - "contact": {
- "email": "bk-tr.gzd@zoll.bund.de",
- "fax": "+49 651 14481001",
- "phone": "+49 651 14480",
- "preferredContact": "letter",
}, - "creditorIds": [
- "DE09ZZZ00000000001"
], - "id": "55961",
- "name": "Bundeskasse Trier",
- "tags": [
- "KfZ-Steuer"
]
}, - "duration": 365,
- "interval": "ANNUALLY",
- "isActive": true,
- "mref": "KFZFK11111111111",
- "nextBookingDate": "2024-01-20",
- "nextBookingRange": [
- "2025-01-15",
- "2025-01-25"
], - "transactions": [
- {
- "transactionId": "T3fe91f3b-27b0-4568-8594-160ef78ae451"
}
]
}
]
Scope: contracts
Delete all contracts of the specified user
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "message": "string",
- "type": "invalidInput"
}
Scope: contracts
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "correlationID": "cc451d48-dbc2-4ea4-894a-fb4b299f9e56",
- "correlationTimestamp": "2024-01-22T14:08:47+01:00"
}
Scope: contracts
Delete a contract from the user's existing list of contracts.
user-id required | string The user id of the finoOS user |
contract-id required | string The id of the contract to be deleted |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "message": "string",
- "type": "invalidInput"
}
The finoOS Companies service provides access to a database with several hundred thousand verified companies. It holds information about these companies' addresses, contact information, logos, creditor identifiers, related bank accounts and more.
Scope: companies
Search for a companies via queries. Define a keyword
to search for. Define the properties
of the company model
on which you want to perform the search. Specify a limit
for the maximum search results for a unique query.
logo-size | integer determines logo width to be returned - does not scale svg images (default is 0 and returns images in original size) |
Authorization required | string The authorization token |
queries
required | Array of objects (companies.CompanyQuery) |
{- "queries": [
- {
- "keyword": "string",
- "limit": 1,
- "properties": [
- {
- "name": "name",
- "weight": 3
}
]
}
]
}
{- "results": {
- "property1": [
- {
- "company": {
- "addresses": [
- {
- "city": "Kassel",
- "countryCode": "DE",
- "houseNumber": "string",
- "postcode": "34127",
- "street": "Universitätspl. 12",
- "streetAdditionalInfo": "PO Box 31127"
}
], - "attributes": {
- "property1": "string",
- "property2": "string"
}, - "contactInformations": [
- {
- "address": {
- "city": "Kassel",
- "countryCode": "DE",
- "houseNumber": "string",
- "postcode": "34127",
- "street": "Universitätspl. 12",
- "streetAdditionalInfo": "PO Box 31127"
}, - "contacts": {
- "email": "mm@fino.digital",
- "fax": "+495611234",
- "telephone": "+495611234",
}, - "tags": [
- {
- "name": "{default,account-change}",
- "preferredContact": "fax"
}
]
}
], - "creditorIDs": [
- "string"
], - "departments": [
- {
- "addresses": [
- {
- "city": "Kassel",
- "countryCode": "DE",
- "houseNumber": "string",
- "postcode": "34127",
- "street": "Universitätspl. 12",
- "streetAdditionalInfo": "PO Box 31127"
}
], - "contactInformations": [
- {
- "email": "mm@fino.digital",
- "fax": "+495611234",
- "telephone": "+495611234",
}
], - "name": "Einkauf"
}
], - "foundingDate": "2018-09-22T12:42:31Z",
- "id": 42,
- "ignoreCreditor": true,
- "industry": 1,
- "legalForm": 1,
- "logos": [
- {
- "type": "string",
- "url": "string"
}
], - "name": "E.ON",
- "tags": [
- "string"
], - "terminationDate": "2018-09-22T12:42:31Z",
- "websites": [
- {
- "type": "{main_page,impressum,sepa_info}",
- "url": "string"
}
]
}, - "score": 3
}
], - "property2": [
- {
- "company": {
- "addresses": [
- {
- "city": "Kassel",
- "countryCode": "DE",
- "houseNumber": "string",
- "postcode": "34127",
- "street": "Universitätspl. 12",
- "streetAdditionalInfo": "PO Box 31127"
}
], - "attributes": {
- "property1": "string",
- "property2": "string"
}, - "contactInformations": [
- {
- "address": {
- "city": "Kassel",
- "countryCode": "DE",
- "houseNumber": "string",
- "postcode": "34127",
- "street": "Universitätspl. 12",
- "streetAdditionalInfo": "PO Box 31127"
}, - "contacts": {
- "email": "mm@fino.digital",
- "fax": "+495611234",
- "telephone": "+495611234",
}, - "tags": [
- {
- "name": "{default,account-change}",
- "preferredContact": "fax"
}
]
}
], - "creditorIDs": [
- "string"
], - "departments": [
- {
- "addresses": [
- {
- "city": "Kassel",
- "countryCode": "DE",
- "houseNumber": "string",
- "postcode": "34127",
- "street": "Universitätspl. 12",
- "streetAdditionalInfo": "PO Box 31127"
}
], - "contactInformations": [
- {
- "email": "mm@fino.digital",
- "fax": "+495611234",
- "telephone": "+495611234",
}
], - "name": "Einkauf"
}
], - "foundingDate": "2018-09-22T12:42:31Z",
- "id": 42,
- "ignoreCreditor": true,
- "industry": 1,
- "legalForm": 1,
- "logos": [
- {
- "type": "string",
- "url": "string"
}
], - "name": "E.ON",
- "tags": [
- "string"
], - "terminationDate": "2018-09-22T12:42:31Z",
- "websites": [
- {
- "type": "{main_page,impressum,sepa_info}",
- "url": "string"
}
]
}, - "score": 3
}
]
}
}
Scope: companiesLogo
Search for logos of companies via queries. If you provide a queryID
on each query object, you can
match the query result objects to the respective queries. The order of the results
list is not guaranteed
to match the order of the queries
list. The maximum number of queries
in a request is 200
.
exactMatch | boolean determines whether to perform an exact match on the name instead of a fuzzy match (default is false) |
fuzziness | string determines the fuzziness (levenshtein distance) performed on the name - not used if exact match is set to true (recommended values 'AUTO'/'1'/'2', default is 'AUTO') |
logo-size | integer determines logo width to be returned - does not scale svg images (default is 0 and returns images in original size) |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
The payload of the request
required | Array of objects (companies.LogoQuery) The queries to search for the logos |
{- "queries": [
- {
- "bankCode": "64090100",
- "bic": "PBNKDEFF",
- "creditorID": "DE41EON00000129793",
- "domain": "eon.de",
- "iban": "123",
- "name": "E.ON",
- "queryID": "1"
}
]
}
{- "results": [
- {
- "company": "fino",
- "companyID": "jhads7123hjas98d812jkh3978hg7g75",
- "queryID": "1",
- "status": "ok",
}
]
}
A cockpit manages to show, through analysing accounts, accumulated data about income, expenses, contracts, living situation, home situation, credits, asset accumulation and more based on the modules booked. There exists different types of cockpits - for private persons and for companies.
Before using the cockpit endpoints the following necessary steps need to be taken:
person
or company
determining what type of cockpit will be created.Scope: cockpits
Returns a paginated minimized cockpit model as list in json format.
page | integer the page number (default: 1) |
page-size | integer ths page size (default: 20 min: 2) |
advisor-id | string search cockpits for the specified advisor-ID |
custom-user-id | string search cockpits for the custom-user-ID |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "cockpits": [
- {
- "createdAt": "string",
- "customUserID": "string",
- "customerApproval": "string",
- "id": "string",
- "name": "string",
- "type": "person"
}
], - "metaData": {
- "page": 0,
- "pageCount": 0,
- "pageSize": 0,
- "totalCount": 0
}
}
Returns a URL to the desired cockpit including token and additionally a timestamp that indicates how long the token is valid
user-id required | string The user id of the finoOS user |
expires-in | integer How long the link is valid given in seconds. Defaults to 24 hours |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "expireTimestamp": "2022-03-22T15:14:27",
}
Scope: cockpits
Webhook Event: companycockpit
Returns a company cockpit in json format.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "accountData": {
- "accounts": [
- {
- "accountId": "string",
- "accountNumber": "string",
- "additionalAnalysesInfo": {
- "analysis": {
- "average": 0,
- "averageEarning": 0,
- "averageSpending": 0,
- "median": 0,
- "medianEarning": 0,
- "medianSpending": 0
}, - "analysisPeriod": {
- "Since": "string",
- "Until": "string"
}, - "isUserAdded": true
}, - "balance": 0,
- "bankCode": "string",
- "bankName": "string",
- "bic": "string",
- "creditLine": 0,
- "iban": "string",
- "icon": "string",
- "name": "string",
- "overDraft": 0,
- "overDraftAvailable": true,
- "owner": "string",
- "type": "GIRO"
}
], - "creditCards": [
- {
- "accountId": "string",
- "accountNumber": "string",
- "additionalAnalysesInfo": {
- "analysis": {
- "average": 0,
- "averageEarning": 0,
- "averageSpending": 0,
- "median": 0,
- "medianEarning": 0,
- "medianSpending": 0
}, - "analysisPeriod": {
- "Since": "string",
- "Until": "string"
}, - "isUserAdded": true
}, - "balance": 0,
- "bankCode": "string",
- "bankName": "string",
- "bic": "string",
- "creditLine": 0,
- "iban": "string",
- "icon": "string",
- "name": "string",
- "overDraft": 0,
- "overDraftAvailable": true,
- "owner": "string",
- "type": "GIRO"
}
]
}, - "caa": {
- "balance": 0,
- "earnings": 0,
- "foreignSales": {
- "earnings": 0,
- "incoming": 0,
- "outgoing": 0,
- "spendings": 0
}, - "incoming": 0,
- "liquidity": [
- {
- "account": {
- "accountId": "string",
- "accountNumber": "string",
- "balance": 0,
- "creditLine": 0,
- "creditLineProvided": true,
- "currency": "string",
- "iban": "string"
}, - "liquidityMonthly": [
- {
- "backDebitCount": 0,
- "date": "string",
- "earnings": 0,
- "endOfMonthBalance": 0,
- "maxBalance": 0,
- "minBalance": 0,
- "overdrawDays": 0,
- "spendings": 0
}
]
}
], - "negativeTotal": true,
- "outgoing": 0,
- "revenueForecastData": [
- {
- "from": "string",
- "incoming": 0,
- "interval": "string",
- "outgoing": 0,
- "payments": [
- {
- "amount": 0,
- "paymentDate": "string"
}
], - "timestamp": 0
}
], - "revenueGraphData": [
- {
- "from": "string",
- "incoming": 0,
- "interval": "string",
- "outgoing": 0,
- "payments": [
- {
- "amount": 0,
- "paymentDate": "string"
}
], - "timestamp": 0
}
], - "spendingForecastData": [
- {
- "from": "string",
- "incoming": 0,
- "interval": "string",
- "outgoing": 0,
- "payments": [
- {
- "amount": 0,
- "paymentDate": "string"
}
], - "timestamp": 0
}
], - "spendingGraphData": [
- {
- "from": "string",
- "incoming": 0,
- "interval": "string",
- "outgoing": 0,
- "payments": [
- {
- "amount": 0,
- "paymentDate": "string"
}
], - "timestamp": 0
}
], - "spendings": 0,
- "total": 0
}, - "cashflow": {
- "incomings": {
- "amount": 0,
- "transactionCount": 0,
- "transactionIDs": [
- "string"
]
}, - "outgoings": {
- "amount": 0,
- "transactionCount": 0,
- "transactionIDs": [
- "string"
]
}
}, - "collectivePayments": {
- "quantity": 0,
- "sum": 0
}, - "contracts": [
- {
- "amount": "10.33",
- "attributes": [
- "string"
], - "bookingText": "string",
- "category": "WORK",
- "contractPartner": {
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "interval": "MONTHLY",
- "isActive": true,
- "logo": "string",
- "transactionIDs": [
- "string"
]
}
], - "createdAt": "string",
- "credits": [
- {
- "amount": "10.33",
- "attributes": [
- "string"
], - "bookingText": "string",
- "category": "WORK",
- "contractPartner": {
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "interval": "MONTHLY",
- "isActive": true,
- "logo": "string",
- "transactionIDs": [
- "string"
]
}
], - "customerTop": [
- {
- "averageAmountTransaction": 0,
- "creditorID": "string",
- "displayPercent": "string",
- "iban": "string",
- "logo": "string",
- "name": "string",
- "numberOfTransactions": 0,
- "percent": 0,
- "rank": 0,
- "totalPayments": 0
}
], - "facts": {
- "staff": {
- "socialInsuranceEmployees": 0,
- "totalMonthlyExpenses": 0,
- "totalNumberOfEmployees": 0
}
}, - "graphs": [
- {
- "category": "string",
- "interval": "string",
- "paymentType": "string",
- "reviews": [
- {
- "from": "string",
- "incoming": 0,
- "interval": "string",
- "outgoing": 0,
- "payments": [
- {
- "amount": 0,
- "paymentDate": "string"
}
], - "timestamp": 0
}
]
}
], - "insurances": [
- {
- "amount": "10.33",
- "attributes": [
- "string"
], - "bookingText": "string",
- "category": "WORK",
- "contractPartner": {
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "interval": "MONTHLY",
- "isActive": true,
- "logo": "string",
- "transactionIDs": [
- "string"
]
}
], - "internalContracts": [
- {
- "amount": "10.33",
- "attributes": [
- "string"
], - "bookingText": "string",
- "category": "WORK",
- "contractPartner": {
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "interval": "MONTHLY",
- "isActive": true,
- "logo": "string",
- "transactionIDs": [
- "string"
]
}
], - "liquidity": {
- "cardPaymentTerminalAmount": 0,
- "cardPaymentTerminalProvided": true,
- "creditsAmount": 0,
- "creditsProvided": true,
- "tagesgeld": 0,
- "tagesgeldProvided": true
}, - "observationPeriod": {
- "firstTransactionDate": "string",
- "firstTransactionDateFormatted": "string",
- "gapWithinObservationPeriod": true,
- "lastTransactionDate": "string",
- "lastTransactionDateFormatted": "string",
- "score": 0
}, - "savingSecurities": [
- {
- "amount": "10.33",
- "attributes": [
- "string"
], - "bookingText": "string",
- "category": "WORK",
- "contractPartner": {
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "interval": "MONTHLY",
- "isActive": true,
- "logo": "string",
- "transactionIDs": [
- "string"
]
}
], - "securities": [
- {
- "amount": 200,
- "isin": "US0378331005",
- "isinwkn": "string",
- "logo": {
- "svg": "string",
- "svgBase64": "string",
- "url": "string"
}, - "name": "string",
- "priceAmount": 0,
- "priceCurrency": "EUR",
- "purchasePriceAmount": 0,
- "purchasePriceCurrency": "EUR",
- "quantity": 0,
- "wkn": "string"
}
], - "supplierTop": [
- {
- "averageAmountTransaction": 0,
- "creditorID": "string",
- "displayPercent": "string",
- "iban": "string",
- "logo": "string",
- "name": "string",
- "numberOfTransactions": 0,
- "percent": 0,
- "rank": 0,
- "totalPayments": 0
}
], - "tenant": {
- "color": "string",
- "logoUrl": "string",
- "name": "string"
}, - "type": "string",
- "user": {
- "finoOSID": "string"
}, - "version": "string"
}
Scope: cockpit
user-id required | string The user id of the finoOS user |
correlation-id | string If specified, the corresponding correlation is returned |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "correlationID": "cc451d48-dbc2-4ea4-894a-fb4b299f9e56",
- "correlationTimestamp": "2024-01-22T14:08:47+01:00"
}
Scope: cockpits
Webhook Event: personcockpit
Returns a person cockpit in json format.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "accountData": {
- "accounts": [
- {
- "accountId": "string",
- "accountNumber": "string",
- "additionalAnalysesInfo": {
- "analysis": {
- "average": 0,
- "averageEarning": 0,
- "averageSpending": 0,
- "median": 0,
- "medianEarning": 0,
- "medianSpending": 0
}, - "analysisPeriod": {
- "Since": "string",
- "Until": "string"
}, - "isUserAdded": true
}, - "balance": 0,
- "bankCode": "string",
- "bankName": "string",
- "bic": "string",
- "creditLine": 0,
- "iban": "string",
- "icon": "string",
- "name": "string",
- "overDraft": 0,
- "overDraftAvailable": true,
- "owner": "string",
- "type": "GIRO"
}
], - "creditCards": [
- {
- "accountId": "string",
- "accountNumber": "string",
- "additionalAnalysesInfo": {
- "analysis": {
- "average": 0,
- "averageEarning": 0,
- "averageSpending": 0,
- "median": 0,
- "medianEarning": 0,
- "medianSpending": 0
}, - "analysisPeriod": {
- "Since": "string",
- "Until": "string"
}, - "isUserAdded": true
}, - "balance": 0,
- "bankCode": "string",
- "bankName": "string",
- "bic": "string",
- "creditLine": 0,
- "iban": "string",
- "icon": "string",
- "name": "string",
- "overDraft": 0,
- "overDraftAvailable": true,
- "owner": "string",
- "type": "GIRO"
}
]
}, - "accountHistories": {
- "histories": [
- {
- "account": {
- "accountId": "string",
- "iban": "string",
- "overDraft": 0,
- "overDraftAvailable": true
}, - "dailyBalances": [
- {
- "balance": 0,
- "date": "string"
}
]
}
]
}, - "contracts": [
- {
- "amount": "10.33",
- "attributes": [
- "string"
], - "bookingText": "string",
- "category": "WORK",
- "contractPartner": {
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "interval": "MONTHLY",
- "isActive": true,
- "logo": "string",
- "transactionIDs": [
- "string"
]
}
], - "createdAt": "string",
- "credits": [
- {
- "amount": "10.33",
- "attributes": [
- "string"
], - "bookingText": "string",
- "category": "string",
- "contractPartner": {
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "interval": "MONTHLY",
- "logo": "string",
- "transactionIDs": [
- "string"
]
}
], - "householdExpenditure": {
- "cashWithdrawal": {
- "average": 0,
- "data": [
- {
- "date": "string",
- "value": 0
}
], - "median": 0,
- "total": 0,
- "transactions": [
- "string"
]
}, - "clothing": {
- "average": 0,
- "data": [
- {
- "date": "string",
- "value": 0
}
], - "median": 0,
- "total": 0,
- "transactions": [
- "string"
]
}, - "consumptionAverage": 0,
- "consumptionData": [
- {
- "date": "string",
- "value": 0
}
], - "consumptionMedian": 0,
- "consumptionTotal": 0,
- "groceries": {
- "average": 0,
- "data": [
- {
- "date": "string",
- "value": 0
}
], - "median": 0,
- "total": 0,
- "transactions": [
- "string"
]
}, - "mobility": {
- "average": 0,
- "data": [
- {
- "date": "string",
- "value": 0
}
], - "median": 0,
- "total": 0,
- "transactions": [
- "string"
]
}, - "other": {
- "average": 0,
- "data": [
- {
- "date": "string",
- "value": 0
}
], - "median": 0,
- "total": 0,
- "transactions": [
- "string"
]
}, - "recreational": {
- "average": 0,
- "data": [
- {
- "date": "string",
- "value": 0
}
], - "median": 0,
- "total": 0,
- "transactions": [
- "string"
]
}, - "vacation": {
- "average": 0,
- "data": [
- {
- "date": "string",
- "value": 0
}
], - "median": 0,
- "total": 0,
- "transactions": [
- "string"
]
}
}, - "income": {
- "alimony": 0,
- "alimonyProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "childBenefit": 0,
- "childBenefitsProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "elternGeld": 0,
- "elterngeldProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "employer": [
- "string"
], - "months": [
- {
- "date": "string",
- "value": 0
}
], - "nonRecurringIncome": 0,
- "nonRecurringIncomeProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "other": 0,
- "otherProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "pension": 0,
- "pensionProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "rental": 0,
- "rentalProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "salary": 0,
- "salaryList": [
- {
- "amount": 0,
- "amountMedian": 0,
- "employer": "string",
- "months": [
- {
- "amount": 0,
- "month": "string"
}
]
}
], - "salaryMedian3Months": 0,
- "salaryMedianProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "salaryProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "total": 0
}, - "insurances": [
- {
- "amount": "10.33",
- "attributes": [
- "string"
], - "bookingText": "string",
- "category": "string",
- "contractPartner": {
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "interval": "MONTHLY",
- "logo": "string",
- "transactionIDs": [
- "string"
]
}
], - "internalContracts": [
- {
- "amount": "10.33",
- "attributes": [
- "string"
], - "bookingText": "string",
- "category": "WORK",
- "contractPartner": {
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "interval": "MONTHLY",
- "isActive": true,
- "logo": "string",
- "transactionIDs": [
- "string"
]
}
], - "liquidity": {
- "creditLine": 0,
- "creditLineProvided": true,
- "creditsAmount": 0,
- "creditsProvided": true,
- "hasCreditCard": true,
- "tagesgeld": 0,
- "tagesgeldProvided": true,
- "transactionsPerMonth": 0
}, - "observationPeriod": {
- "firstTransactionDate": "string",
- "firstTransactionDateFormatted": "string",
- "gapWithinObservationPeriod": true,
- "lastTransactionDate": "string",
- "lastTransactionDateFormatted": "string",
- "score": 0
}, - "overview": {
- "childrenCount": 0,
- "hasCar": true,
- "incomeTotal": 0,
- "isTenant": true
}, - "savingSecurities": [
- {
- "amount": "10.33",
- "attributes": [
- "string"
], - "bookingText": "string",
- "category": "WORK",
- "contractPartner": {
- "creditorId": "string",
- "iban": "string",
- "name": "string"
}, - "interval": "MONTHLY",
- "isActive": true,
- "logo": "string",
- "transactionIDs": [
- "string"
]
}
], - "securities": [
- {
- "amount": 200,
- "isin": "US0378331005",
- "isinwkn": "string",
- "logo": {
- "svg": "string",
- "svgBase64": "string",
- "url": "string"
}, - "name": "string",
- "priceAmount": 0,
- "priceCurrency": "EUR",
- "purchasePriceAmount": 0,
- "purchasePriceCurrency": "EUR",
- "quantity": 0,
- "wkn": "string"
}
], - "spending": {
- "consumption": 0,
- "consumptionProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "contract": 0,
- "contractProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "credit": 0,
- "creditCards": 0,
- "creditCardsProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "creditProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "insurance": 0,
- "insuranceProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "rental": 0,
- "rentalProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "securitySavingPlans": 0,
- "securitySavingPlansProps": {
- "amount": 262.41,
- "transactionIDs": [
- "T5e79367c-7fbf-4ad9-bd6b-02163e1306fe",
- "Tfbb49e37-5d0d-48c3-be75-bcbd085b79db",
- "T5a811673-aa52-4c04-b737-7af57fa477af"
]
}, - "total": 0
}, - "tenant": {
- "color": "string",
- "logoUrl": "string",
- "name": "string"
}, - "type": "string",
- "user": {
- "finoOSID": "string"
}, - "version": "string",
- "wealth": {
- "depot": true,
- "hasRealEstate": true,
- "housingSaving": 0,
- "securities": 0,
- "securitySavingPlans": 0
}
}
Scope: cockpits
Webhook Event: companycockpit-recommendations,personcockpit-recommendations,cockpitrecommendations.notification
Returns cockpit recommendations in json format.
user-id required | string The user id of the finoOS user |
Authorization required | string Default: Bearer <Add access token here> The authorization token |
TenantID | string The client's tenant |
{- "recommendations": [
- {
- "advisorText": "string",
- "data": null,
- "dataModel": "string",
- "dataType": "string",
- "hyperlinkLabel": "string",
- "icon": "string",
- "id": "string",
- "name": "string",
- "priority": "string",
- "product": "string",
- "showAdvisor": true,
- "showCustomer": true,
- "text": "string",
- "textHyperlink": "string",
- "title": "string"
}
]
}
Advisor is a submodule of the cockpit and offers the possibility to assign cockpits to an advisor in order to assign a specific contact person. After creating an advisor, cockpits can be created via the URL of the advisor. Depending on how it is configured, an advisor is automatically notified when a cockpit is created.