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 name
and secret
, you can start using the finoOS API as described in the following sections.
All endpoints are located at https://os.fino.cloud/api/v1
for production access and https://os.test.fino.cloud/api/v1
for testing access.
To get started with the finoOS API, check out our Quickstart guide.
Follow these steps to get up and running with the finoOS API by connecting a bank login with our Banking service and retrieve the bank data of your user.
Before you can start to integrate with our API, make sure you have received your credentials name
and secret
for our testing environment.
To access the finoOS API, you need to authenticate yourself with the API and obtain an accessToken
. This
accessToken
needs to be provided in every subsequent request, otherwise you will not be able to access
the API.
To authenticate with the API you need your name
and secret
and request a token via our
Authenticate endpoint.
curl -s -X POST https://os.test.fino.cloud/api/v1/auth \
-H "Content-Type: application/json" \
-d '{"name": "<YOUR_NAME>", "secret": "<YOUR_SECRET>"}'
The finoOS API will return the following object.
{
"accessToken": "<ACCESS_TOKEN>",
"refreshToken": "<REFRESH_TOKEN>",
"expiresIn": 300,
"refreshExpiresIn": 1800
}
The response contains the required accessToken
which you will need to provide in the next steps. It also
contains a refreshToken
which you will need to refresh your authentication
when the accessToken
has expired.
To connect a bank login, you first need to create a user for whom you want to connect the bank login. finoOS distinguishes users in two different types:
person
(a real human being)company
(businesses, SMEs, etc.)Choosing the type of the user will influence how finoOS analyzes the user's data. To learn more about this, check out the Users section. For now, we will assume the user is a person.
To access the Create User endpoint, you need to provide the
accessToken
from the first step via the Authorization
header and send the following request.
curl -s -X POST https://os.test.fino.cloud/api/v1/users \
-H "Content-Type: application/json" \
-H "Authorization: <ACCESS_TOKEN>" \
-d '{"type": "person"}'
The finoOS API will return the following object.
{
"id": "<USER_ID>"
}
The provided id
is a unique identifier belonging to this user, which you need to provide in the next steps.
The finoOS API provides two different ways to connect a bank login. Depending on how you want to process your user's data, you can connect the bank login of a user via
If you want to use our Banking UI, proceed with Step 4a. If you already possess the user's bank data and want to send it directly to our API, proceed with Step 4b.
To access our Banking UI, you need to create a session to connect the user to the Banking service and redirect your user to our UI.
You need to provide three URLs where we can redirect the user to after the bank login. This way, you can provide different URLs in case of
redirectURL
errorURL
exitURL
To access the Create Connect User Session endpoint,
you will also need the id
of the user from the second step and your accessToken
. Send the following request.
curl -s -X POST https://os.test.fino.cloud/api/v1/users/<USER_ID>/banking/connect \
-H "Content-Type: application/json" \
-H "Authorization: <ACCESS_TOKEN>" \
-d '{
"errorURL": "https://yourapp.com/your-error-redirect-resource",
"exitURL": "https://yourapp.com/your-exit-redirect-resource",
"recurring": true,
"redirectURL": "https://yourapp.com/your-success-redirect-resource"
}'
The finoOS API will return the following object.
{
"redirectURL": "https://uba.test.fino.run/auth..."
}
Redirect your user to the redirectURL
of the response object. The user will now be presented our secure
Banking UI to connect the bank login.
First, the user needs to choose a bank and provide their credentials. To try it out, you can search for the
fino Bank
(bank code is 10020000) and enter the following credentials:
dummy
654321
Second, the user needs to enter a generated TAN for the Strong Customer Authentication(SCA). For the provided test bank login, the TAN will be presented on the Banking UI screen as shown below.
The user is now connected to our Banking service and will be redirected to the redirectURL
you provided on the initial
request.
To connect the bank login directly via our API, you need to possess the bank login data and set the logins of the user via the Set Logins endpoint.
To try it out, you can use the provided bank login data in the request below. You need to provide the id
of the user from
Step 3 and your accessToken
.
curl -s -X POST https://os.test.fino.cloud/api/v1/users/<USER_ID>/banking/logins \
-H "Authorization: <ACCESS_TOKEN>" \
-d '{
"logins": [
{
"accounts": [
{
"balance": 2004.41,
"creditLine": 0,
"currency": "EUR",
"iban": "DE64100200007791587578",
"id": "A38253.f837c3ab353",
"monthlySpendingLimit": 6000,
"name": "Girokonto",
"number": "83767594",
"owner": "Torben Mais",
"securities": [
{
"accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
"amount": 200,
"currency": "EUR",
"exchangeRate": 1.23,
"id": "5ecd4d9bb9e14800012d99e9",
"isin": "US0378331005",
"market": "NASDAQ",
"name": "finoOS Security",
"priceAmount": 100,
"priceCurrency": "EUR",
"purchasePriceAmount": 150,
"purchasePriceCurrency": "EUR",
"quantity": 40
}
],
"standingOrders": [
{
"accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
"amount": 200,
"creationDate": "2020-05-26T17:11:22Z",
"currency": "EUR",
"executionDay": 2,
"firstExecutionDate": "2020-05-26T17:11:22Z",
"id": "5ecd4d9bb9e14800012d99e9",
"interval": "MONTHLY",
"lastExecutionDate": "2020-05-26T17:11:22Z",
"purpose": "Taschengeld"
}
],
"transactions": [
{
"accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
"amount": 24.99,
"booked": true,
"bookingDate": "2020-05-26T17:11:22Z",
"codes": [
{
"type": "transactionCode",
"value": "999"
}
],
"counterPart": {
"bic": "GENODEF1S04",
"creditorId": "DE97ZZZ12345678901",
"iban": "DE83701999010000002000",
"name": "Schettchens Schnittchen"
},
"currency": "EUR",
"id": "5ecd4d9bb9e14800012d99e9",
"mref": "MREF123ZZ678JJ",
"purpose": "Welcome to finoOS",
"tags": [
{
"name": "salary",
"source": "string"
}
],
"valueDate": "2020-05-26T17:11:22Z"
}
],
"type": "GIRO"
}
],
"bank": {
"bankCode": "70199901",
"bic": "SUBSDE71",
"logo": {
"type": "string",
"url": "string"
},
"name": "fino Bank"
},
"id": "5d7267d1b747aa683d88668f"
}
]
}'
The user is now connected to our Banking service.
Finally, access the user's bank logins with the Get Logins endpoint. Send the following request.
curl -s -X GET https://os.test.fino.cloud/api/v1/users/5f22c402b6968c000128edb6/banking/logins \
-H "Authorization: <ACCESS_TOKEN>"
The finoOS API will return the following object.
{
"logins": [
{
"id": "5d7267d1b747aa683d88668f",
"bank": {
"name": "fino Bank",
"bic": "SUBSDE71",
"bankCode": "70199901",
"logo": {
"url": "",
"type": ""
}
},
"accounts": [
{
"iban": "DE64100200007791587578",
"id": "A38253.f837c3ab353",
"number": "83767594",
"name": "Girokonto",
"owner": "Torben Mais",
"type": "GIRO",
"balance": 2004.41,
"creditLine": 0,
"monthlySpendingLimit": 6000,
"currency": "EUR",
"transactions": [
{
"id": "5ecd4d9bb9e14800012d99e9",
"accountID": "A38253.f837c3ab353",
"bookingDate": "2020-05-26T17:11:22Z",
"valueDate": "2020-05-26T17:11:22Z",
"currency": "EUR",
"mref": "MREF123ZZ678JJ",
"purpose": "Welcome to finoOS",
"booked": true,
"amount": 24.99,
"counterPart": {
"bic": "GENODEF1S04",
"iban": "DE83701999010000002000",
"creditorId": "DE97ZZZ12345678901",
"name": "Schettchens Schnittchen"
},
"tags": [
{
"name": "salary"
}
],
"codes": [
{
"value": "999",
"type": "transactionCode"
}
]
}
],
"standingOrders": [
{
"id": "",
"accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
"creationDate": "2020-05-26T17:11:22Z",
"firstExecutionDate": "2020-05-26T17:11:22Z",
"lastExecutionDate": "2020-05-26T17:11:22Z",
"executionDay": 2,
"interval": "MONTHLY",
"amount": 200,
"currency": "EUR",
"purpose": "Taschengeld"
}
],
"securities": [
{
"id": "5ecd4d9bb9e14800012d99e9",
"accountID": "A38253.f837c3ab353",
"amount": 200,
"priceAmount": 100,
"purchasePriceAmount": 150,
"currency": "EUR",
"priceCurrency": "EUR",
"purchasePriceCurrency": "EUR",
"exchangeRate": 1.23,
"quantity": 40,
"isin": "US0378331005",
"name": "finoOS Security",
"market": "NASDAQ"
}
]
}
]
}
]
}
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.
To guarantee backwards compatibility, each breaking change causes an upgrade of the API version. This way, users are still able to use the API as usual and can upgrade to a newer version when they are ready.
The API version is part of your account but can be overwritten using a request header. Future new versions will be configurable within our developer portal (not released yet) without any need to update anything on your side. As a precaution, it's recommended to test a new API version before committing to an upgrade.
Every API response contains an API-Version
header with the current version of your account. The version
is a string date of the format YYYY-MM-DD
. The date itself refers to the day of the version's release.
The latest version of the API is 2020-06-16
.
New features, bug fixes and patches will always be backwards compatible. They can be found in the Changelog. We only release a new version of the API when we introduce breaking changes. We consider breaking changes as one of the following:
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 |
204 | OK | 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 |
The finoOS API returns a X-Request-ID
header with every API response. This way,
you can trace a specific request. If you want to make tracing requests easier for yourself,
you can overwrite the X-Request-ID
header on your requests.
When reporting a failure during a request to our API, providing the respective request ID will
greatly improve our ability to provide support.
September 25, 2020
July 29, 2020 Add Scope To User payload changed - renamed scope to name
July 02, 2020
June 25, 2020
June 22, 2020
User-IP
header to adhere to the latest PSD2 regulationsJune 15, 2020
May 25, 2020
May 19, 2020
May 4, 2020
To authenticate yourself with the finoOS API, you exchange your credentials name
and 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.
Once the returned accessToken
expires, exchange the refreshToken
for a new pair of JWT.
If this is not possible, because the refreshToken
has expired too, restart the authentication process
from the beginning.
The diagram below shows a sample flow of the authentication process before calling the Search Companies
resource of our
Companies service.
Authenticate with your credentials name
and secret
to retrieve a JWT.
The expiresIn
and refreshExpiresIn
properties indicate the lifetime of the accessToken
and refreshToken
in seconds.
credentials
name required | string Your name |
secret required | string Your secret |
{- "name": "fino",
- "secret": "3bdfef4d-e122-4c8d-a3cf-01ac776eca17"
}
{- "accessToken": "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",
- "expiresIn": 300,
- "refreshExpiresIn": 1800,
- "refreshToken": "xBaVaO-xzWsUiGixAJD1YaOUyQQJ1KBYIJxqxtmwYhr1Rgxbq3YvDi1X1bxUcSRZVk-78g_SCsqK5aKKj__GHxS7BLeS7BaJ6XHRn9wwNKhvZ5pHgcpayV8v7qKP7lhDyPS54fIret3xXtQqR50pmZ3ybqjmOYc7MttP3aBc1RD1ZuKB0JibtPdENOA4qHsBvrWBxMiQ2UQdEglO4aaKGla0wCCu7FoLhVm_oVQxVATw2Y6w5ox_WxT_bwCpZFZ_ixsdc-ecMoR8k-wBOns5gu57qlhQc1m5nI9drrdQ6WYbvDSmbiVjCxiqs2Pwm9usYFMfx1h76GmEc9m9zZ59b2g5v857dNqCxD4sqzUYyVe4HtKF2XVLsTGQlEP4xGOz6lwMtLvFAQ-u3w5AWEoj4B4Hd3XcpxaN-4SjZeOA7uR16KSxmTBIQz2g7khdoWdEnv1qYThw7DsVK8BBhIax1hBYnC1vt4DDijowy8pwozmoFHXEvDB3_GgT5rsImkENQsdBP4sN3LTS30-blxTA8XTeNMZbKslYUBYtJ6ZTNxGopa4CvujAyvYOe6dskUDeXWG3qXCWwvP2uVXV4XkRc4IiKiqyTJ0nx_UAs51M_crHwnbXpYEqA0Rgoe-1CdmC1k1TYcIzECxtu-wDwJdYPYGBjg8CaGi27ZCW-vRcZeJjWNTr-DviQpcj0T9lXw8IwHyZ287s5YVblL98PU7E3EGRIqpmeryQrmMUdwB1K6JMzZTEcLN5Dmt8xIkKnCQ5-kHOfVUEDaYqx6nY87IXMxVfdLFjwW2zHef4uPJ_YbAKxU3B2gEdP5qfZ-b8MPnAVbCtO_EwnwvsU1N3MT_9NIuiIxrPFjcZdm0IFJ1P0hdbT2Ccu2qYE-bBMScHwlTUoFmPRI3jvpAesINhIgpmZC3uSOX-dsvzT9ul7ISz6fAFdmxdiK3W62faQQ8JDJ0Y_iljSoc7uD_H45lBFBwvBbmRVm47IEvwWfPZwDtnV390zZSZrg4deH7qcNIHks59As5VVfMgSptySv20OjP1RlzRLGLTc7XYO9R3Jqi3Qfyf4bcpw0WF7VaYy-k8dfdjNIeWU-Qp7PSJM80UU0Ny1vZGIr2CHEE6P8z0lo021SJW917-6NfyHfztqQ_ID_Vsuodqhtn9oiJgy_ONEBN4kHjR2k3vyvb0-zrkyHkfh6P9dcJBOVz2Fe92A_ts3nBgFQVAssATXZklndE7tjBTQRt8J2Ys4qBARY8f3P8cPuJADQ5DTqlE_-m7p6_PuHxyij-nLSbTrTWi0Zotv957kIgSHLkXl-djHxUghsetuX9r8waWX6pDaWRpRBjjGvHpTeK_YyvLBDfdd_KB9GQfmOohxx_IPuvvpttCQdGq7Xz_oAcQyUoMVMufsQDgrJH3aYYqTDd3x55pCYTTSLnVmDx_n1C2Jfb3VjUFqQbfjZJ1ndndYtIoK4uxR7nfyq3NauKnPAAzymis-2ALvDENFejE8VwCr9MngLgjlom24OAYhP2CyRqWDqLy7VZZ6-3PlGp9aEz0nVAxmiyEIkJnPcDsuAEXAI-oy1y_CeBr7bHFKhMpn20rVmWWxs7JQBgJbzzlikcJunMhIiI4MuSGnGZHqnxc7_8mI-TyacudbaasdjkyZq98YU0JKXhBWEY-BwynZB4CNEuFLBzpk_f6CdKTXQmC_1d7vQhgVdsEfN4U-jEbZiBtjBQtHjYQbA=="
}
Refresh your authentication. Retrieve a new JWT by providing your
credentials name
and secret
and a valid refreshToken
.
credentials and refresh token
name required | string Your name |
refreshToken required | string The received refresh token |
secret required | string Your secret |
{- "name": "fino",
- "refreshToken": "xBaVaO-xzWsUiGixAJD1YaOUyQQJ1KBYIJxqxtmwYhr1Rgxbq3YvDi1X1bxUcSRZVk-78g_SCsqK5aKKj__GHxS7BLeS7BaJ6XHRn9wwNKhvZ5pHgcpayV8v7qKP7lhDyPS54fIret3xXtQqR50pmZ3ybqjmOYc7MttP3aBc1RD1ZuKB0JibtPdENOA4qHsBvrWBxMiQ2UQdEglO4aaKGla0wCCu7FoLhVm_oVQxVATw2Y6w5ox_WxT_bwCpZFZ_ixsdc-ecMoR8k-wBOns5gu57qlhQc1m5nI9drrdQ6WYbvDSmbiVjCxiqs2Pwm9usYFMfx1h76GmEc9m9zZ59b2g5v857dNqCxD4sqzUYyVe4HtKF2XVLsTGQlEP4xGOz6lwMtLvFAQ-u3w5AWEoj4B4Hd3XcpxaN-4SjZeOA7uR16KSxmTBIQz2g7khdoWdEnv1qYThw7DsVK8BBhIax1hBYnC1vt4DDijowy8pwozmoFHXEvDB3_GgT5rsImkENQsdBP4sN3LTS30-blxTA8XTeNMZbKslYUBYtJ6ZTNxGopa4CvujAyvYOe6dskUDeXWG3qXCWwvP2uVXV4XkRc4IiKiqyTJ0nx_UAs51M_crHwnbXpYEqA0Rgoe-1CdmC1k1TYcIzECxtu-wDwJdYPYGBjg8CaGi27ZCW-vRcZeJjWNTr-DviQpcj0T9lXw8IwHyZ287s5YVblL98PU7E3EGRIqpmeryQrmMUdwB1K6JMzZTEcLN5Dmt8xIkKnCQ5-kHOfVUEDaYqx6nY87IXMxVfdLFjwW2zHef4uPJ_YbAKxU3B2gEdP5qfZ-b8MPnAVbCtO_EwnwvsU1N3MT_9NIuiIxrPFjcZdm0IFJ1P0hdbT2Ccu2qYE-bBMScHwlTUoFmPRI3jvpAesINhIgpmZC3uSOX-dsvzT9ul7ISz6fAFdmxdiK3W62faQQ8JDJ0Y_iljSoc7uD_H45lBFBwvBbmRVm47IEvwWfPZwDtnV390zZSZrg4deH7qcNIHks59As5VVfMgSptySv20OjP1RlzRLGLTc7XYO9R3Jqi3Qfyf4bcpw0WF7VaYy-k8dfdjNIeWU-Qp7PSJM80UU0Ny1vZGIr2CHEE6P8z0lo021SJW917-6NfyHfztqQ_ID_Vsuodqhtn9oiJgy_ONEBN4kHjR2k3vyvb0-zrkyHkfh6P9dcJBOVz2Fe92A_ts3nBgFQVAssATXZklndE7tjBTQRt8J2Ys4qBARY8f3P8cPuJADQ5DTqlE_-m7p6_PuHxyij-nLSbTrTWi0Zotv957kIgSHLkXl-djHxUghsetuX9r8waWX6pDaWRpRBjjGvHpTeK_YyvLBDfdd_KB9GQfmOohxx_IPuvvpttCQdGq7Xz_oAcQyUoMVMufsQDgrJH3aYYqTDd3x55pCYTTSLnVmDx_n1C2Jfb3VjUFqQbfjZJ1ndndYtIoK4uxR7nfyq3NauKnPAAzymis-2ALvDENFejE8VwCr9MngLgjlom24OAYhP2CyRqWDqLy7VZZ6-3PlGp9aEz0nVAxmiyEIkJnPcDsuAEXAI-oy1y_CeBr7bHFKhMpn20rVmWWxs7JQBgJbzzlikcJunMhIiI4MuSGnGZHqnxc7_8mI-TyacudbaasdjkyZq98YU0JKXhBWEY-BwynZB4CNEuFLBzpk_f6CdKTXQmC_1d7vQhgVdsEfN4U-jEbZiBtjBQtHjYQbA==",
- "secret": "3bdfef4d-e122-4c8d-a3cf-01ac776eca17"
}
{- "accessToken": "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",
- "expiresIn": 300,
- "refreshExpiresIn": 1800,
- "refreshToken": "xBaVaO-xzWsUiGixAJD1YaOUyQQJ1KBYIJxqxtmwYhr1Rgxbq3YvDi1X1bxUcSRZVk-78g_SCsqK5aKKj__GHxS7BLeS7BaJ6XHRn9wwNKhvZ5pHgcpayV8v7qKP7lhDyPS54fIret3xXtQqR50pmZ3ybqjmOYc7MttP3aBc1RD1ZuKB0JibtPdENOA4qHsBvrWBxMiQ2UQdEglO4aaKGla0wCCu7FoLhVm_oVQxVATw2Y6w5ox_WxT_bwCpZFZ_ixsdc-ecMoR8k-wBOns5gu57qlhQc1m5nI9drrdQ6WYbvDSmbiVjCxiqs2Pwm9usYFMfx1h76GmEc9m9zZ59b2g5v857dNqCxD4sqzUYyVe4HtKF2XVLsTGQlEP4xGOz6lwMtLvFAQ-u3w5AWEoj4B4Hd3XcpxaN-4SjZeOA7uR16KSxmTBIQz2g7khdoWdEnv1qYThw7DsVK8BBhIax1hBYnC1vt4DDijowy8pwozmoFHXEvDB3_GgT5rsImkENQsdBP4sN3LTS30-blxTA8XTeNMZbKslYUBYtJ6ZTNxGopa4CvujAyvYOe6dskUDeXWG3qXCWwvP2uVXV4XkRc4IiKiqyTJ0nx_UAs51M_crHwnbXpYEqA0Rgoe-1CdmC1k1TYcIzECxtu-wDwJdYPYGBjg8CaGi27ZCW-vRcZeJjWNTr-DviQpcj0T9lXw8IwHyZ287s5YVblL98PU7E3EGRIqpmeryQrmMUdwB1K6JMzZTEcLN5Dmt8xIkKnCQ5-kHOfVUEDaYqx6nY87IXMxVfdLFjwW2zHef4uPJ_YbAKxU3B2gEdP5qfZ-b8MPnAVbCtO_EwnwvsU1N3MT_9NIuiIxrPFjcZdm0IFJ1P0hdbT2Ccu2qYE-bBMScHwlTUoFmPRI3jvpAesINhIgpmZC3uSOX-dsvzT9ul7ISz6fAFdmxdiK3W62faQQ8JDJ0Y_iljSoc7uD_H45lBFBwvBbmRVm47IEvwWfPZwDtnV390zZSZrg4deH7qcNIHks59As5VVfMgSptySv20OjP1RlzRLGLTc7XYO9R3Jqi3Qfyf4bcpw0WF7VaYy-k8dfdjNIeWU-Qp7PSJM80UU0Ny1vZGIr2CHEE6P8z0lo021SJW917-6NfyHfztqQ_ID_Vsuodqhtn9oiJgy_ONEBN4kHjR2k3vyvb0-zrkyHkfh6P9dcJBOVz2Fe92A_ts3nBgFQVAssATXZklndE7tjBTQRt8J2Ys4qBARY8f3P8cPuJADQ5DTqlE_-m7p6_PuHxyij-nLSbTrTWi0Zotv957kIgSHLkXl-djHxUghsetuX9r8waWX6pDaWRpRBjjGvHpTeK_YyvLBDfdd_KB9GQfmOohxx_IPuvvpttCQdGq7Xz_oAcQyUoMVMufsQDgrJH3aYYqTDd3x55pCYTTSLnVmDx_n1C2Jfb3VjUFqQbfjZJ1ndndYtIoK4uxR7nfyq3NauKnPAAzymis-2ALvDENFejE8VwCr9MngLgjlom24OAYhP2CyRqWDqLy7VZZ6-3PlGp9aEz0nVAxmiyEIkJnPcDsuAEXAI-oy1y_CeBr7bHFKhMpn20rVmWWxs7JQBgJbzzlikcJunMhIiI4MuSGnGZHqnxc7_8mI-TyacudbaasdjkyZq98YU0JKXhBWEY-BwynZB4CNEuFLBzpk_f6CdKTXQmC_1d7vQhgVdsEfN4U-jEbZiBtjBQtHjYQbA=="
}
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. The resource paths of these services are prefixed
with /users/:userID
. At the end of the Types section, you will find a list of all services
which require a user.
Every user has a type. A user can either be of type person
or company
.
The type of your user will determine which services can be used. It also impacts how we analyze the user's data.
You need to specify the type of your user when you create a user.
The below table shows which services are available for which user type and provides details on how each service differs for the different types.
Service | Type "person" | Type "company" | Details |
---|---|---|---|
Banking | X | X | Connecting a user to our banking service with the type person will result in categorized transaction data for personal accounts and personal finance use cases. In contrast, setting the type to company will result in categorized transactions for business accounts. |
Payment Partner Analysis | - | X | This service is only available for users of the type company . |
The same way, as your account is assgined scopes, scopes need to be assigned to users to access certain endpoints and services. Set the user's scopes once when you create a user or later when you add a scope to a user
Be aware that when you assign a scope to a user, you will be billed for this scope for the user.
Gets a list of all users. Specify page
and perPage
for pagination.
page required | integer The page of the list. Pages start at 0 |
perPage required | integer The number of users per page (max. 50) |
Authorization required | string The authorization token |
{- "users": [
- {
- "createdAt": "string",
- "deleted": true,
- "deletedAt": "string",
- "id": "string",
- "modifiedAt": "string",
- "scopes": "string"
}
]
}
Creates a user of the specified type.
Authorization required | string The authorization token |
The payload of the request
scopes | Array of strings Items Enum: "banking" "companies" "companiesLogo" "contracts" "documentShipment" "paymentPartnerAnalysis" The scopes which will be activated for the user (default are all available scopes) |
type | string Enum: "person" "company" The type of the user (person or company) |
{- "scopes": [
- "banking"
], - "type": "person"
}
{- "id": "string"
}
Deletes a user. This will also delete all stored data connected to the user and disconnect him from all services. You cannot restore a user once it was deleted.
Authorization required | string The authorization token |
{- "message": "not found",
- "type": "notFound"
}
Adds a scope to the user. You can only add scopes which are activated for your account. If you are not sure which scopes are activated for your account, check out your Settings.
Authorization required | string The authorization token |
The payload of the request
name | string Enum: "banking" "companies" "companiesLogo" "contracts" "documentShipment" "paymentPartnerAnalysis" The scope which will be activated for the user |
{- "name": "banking"
}
{- "message": "not found",
- "type": "notFound"
}
Removes a scope from the user. You can only removes scopes which are activated for your account and the user. If you are not sure which scopes are activated for your account, check out your Settings.
Authorization required | string The authorization token |
{- "message": "not found",
- "type": "notFound"
}
You can manage the settings of your account directly with the finoOS API. The following sections describe what is configurable and how you can do it.
Scopes
Your account is assigned a set of scopes on creation. Scopes define which service or endpoints can be used with your account. In the future, you will be able to update your scopes by booking or cancelling them via our Developer Portal. For now, this can only be done manually by one of our engineers. If you want to book or cancel a certain scope or service, 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.
The finoOS Banking service provides a secure and reliable way to access and manage financial data of bank accounts. It is based on the Revised Payment Services Directive (PSD2) and adheres to its regulations. PSD2 prohibits non-regulated third-parties to transfer sensitive consumer data such as bank login credentials via an API.
Connecting bank logins with our Banking UI
Therefore, the finoOS Banking service comes with a Banking UI which can be used to connect a bank login by the consumer directly. The Banking UI also handles the mandatory Strong Customer Authentication (SCA) for the bank login. Once a bank login is connected to a user, the finoOS API will synchronize the account data automatically as long as no new SCA of the user is required. You can check if a new SCA is required via the Get Logins Synchronization Status endpoint.
Manually adding bank logins and transaction data
If you already possess the bank login and transaction data of your customers, you can use the finoOS Banking Service
by adding this data via the Set Logins and Update Logins routes.
You will not be able touse our Banking UI and the particular routes. Make sure to enable the bankingExternal
scope for the respective
user.
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.Authorization required | string The authorization token |
The payload of the request
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 |
recurring | boolean Whether the user will be connected permanently or only once (default is "true") |
redirectURL required | string The URL your user will be redirect to in case of a successful bank login |
{- "recurring": true,
}
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 accounts. It will not delete the user itself.
Authorization required | string The authorization token |
User-IP required | string The IP address of the user. This is mandatory due to PSD2 regulations. |
{- "message": "not found",
- "type": "notFound"
}
Scope: banking
Get all connected bank logins with their respective account and transaction data.
includeTransactions required | string Whether the response should include the transactions of the accounts. Default is |
Authorization required | string The authorization token |
{- "logins": [
- {
- "accounts": [
- {
- "balance": 2004.41,
- "creditLine": 0,
- "currency": "EUR",
- "iban": "DE64100200007791587578",
- "id": "A38253.f837c3ab353",
- "monthlySpendingLimit": 6000,
- "name": "Girokonto",
- "number": "83767594",
- "owner": "Torben Mais",
- "securities": [
- {
- "accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "currency": "EUR",
- "exchangeRate": 1.23,
- "id": "5ecd4d9bb9e14800012d99e9",
- "isin": "US0378331005",
- "market": "NASDAQ",
- "name": "finoOS Security",
- "priceAmount": 100,
- "priceCurrency": "EUR",
- "purchasePriceAmount": 150,
- "purchasePriceCurrency": "EUR",
- "quantity": 40
}
], - "standingOrders": [
- {
- "accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "creationDate": "2020-05-26T17:11:22Z",
- "currency": "EUR",
- "executionDay": 2,
- "firstExecutionDate": "2020-05-26T17:11:22Z",
- "id": "5ecd4d9bb9e14800012d99e9",
- "interval": "MONTHLY",
- "lastExecutionDate": "2020-05-26T17:11:22Z",
- "purpose": "Taschengeld"
}
], - "transactions": [
- {
- "accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 24.99,
- "booked": true,
- "bookingDate": "2020-05-26T17:11:22Z",
- "codes": [
- {
- "type": "transactionCode",
- "value": "999"
}
], - "counterPart": {
- "bic": "GENODEF1S04",
- "creditorId": "DE97ZZZ12345678901",
- "iban": "DE83701999010000002000",
- "name": "Andreas Schett"
}, - "currency": "EUR",
- "id": "5ecd4d9bb9e14800012d99e9",
- "mref": "MREF123ZZ678JJ",
- "purpose": "Welcome to finoOS",
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "valueDate": "2020-05-26T17:11:22Z"
}
], - "type": "GIRO"
}
], - "bank": {
- "bankCode": "70199901",
- "bic": "SUBSDE71",
- "logo": {
- "type": "string",
- "url": "string"
}, - "name": "fino Bank"
}, - "id": "5d7267d1b747aa683d88668f"
}
]
}
Scope: bankingExternal
Note: You can only set bank logins if you do not use our Banking UI and already possess the bank data of your user.
Set the bank logins of the user. When you set bank logins with their accounts and transactions, make sure to provide a unique id on each
This will overwrite any existing bank login data you may have added before.
Authorization required | string The authorization token |
The payload of the request
Array of objects (banking.BankLogin) The bank login data of your user |
{- "logins": [
- {
- "accounts": [
- {
- "balance": 2004.41,
- "creditLine": 0,
- "currency": "EUR",
- "iban": "DE64100200007791587578",
- "id": "A38253.f837c3ab353",
- "monthlySpendingLimit": 6000,
- "name": "Girokonto",
- "number": "83767594",
- "owner": "Torben Mais",
- "securities": [
- {
- "accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "currency": "EUR",
- "exchangeRate": 1.23,
- "id": "5ecd4d9bb9e14800012d99e9",
- "isin": "US0378331005",
- "market": "NASDAQ",
- "name": "finoOS Security",
- "priceAmount": 100,
- "priceCurrency": "EUR",
- "purchasePriceAmount": 150,
- "purchasePriceCurrency": "EUR",
- "quantity": 40
}
], - "standingOrders": [
- {
- "accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "creationDate": "2020-05-26T17:11:22Z",
- "currency": "EUR",
- "executionDay": 2,
- "firstExecutionDate": "2020-05-26T17:11:22Z",
- "id": "5ecd4d9bb9e14800012d99e9",
- "interval": "MONTHLY",
- "lastExecutionDate": "2020-05-26T17:11:22Z",
- "purpose": "Taschengeld"
}
], - "transactions": [
- {
- "accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 24.99,
- "booked": true,
- "bookingDate": "2020-05-26T17:11:22Z",
- "codes": [
- {
- "type": "transactionCode",
- "value": "999"
}
], - "counterPart": {
- "bic": "GENODEF1S04",
- "creditorId": "DE97ZZZ12345678901",
- "iban": "DE83701999010000002000",
- "name": "Andreas Schett"
}, - "currency": "EUR",
- "id": "5ecd4d9bb9e14800012d99e9",
- "mref": "MREF123ZZ678JJ",
- "purpose": "Welcome to finoOS",
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "valueDate": "2020-05-26T17:11:22Z"
}
], - "type": "GIRO"
}
], - "bank": {
- "bankCode": "70199901",
- "bic": "SUBSDE71",
- "logo": {
- "type": "string",
- "url": "string"
}, - "name": "fino Bank"
}, - "id": "5d7267d1b747aa683d88668f"
}
]
}
{- "message": "not found",
- "type": "notFound"
}
Scope: bankingExternal
Note: You can only add bank logins if you do not use our Banking UI and already possess the bank data of your user.
Update the bank logins of the user. This will merge the existing bank login data with data of the request.
Bank logins and accounts will be matched by their id
. Make sure, your bank login and account ids are always
unique. Otherwise, this will return an invalid input error.
Authorization required | string The authorization token |
The payload of the request
Array of objects (banking.BankLogin) The bank login data of your user |
{- "logins": [
- {
- "accounts": [
- {
- "balance": 2004.41,
- "creditLine": 0,
- "currency": "EUR",
- "iban": "DE64100200007791587578",
- "id": "A38253.f837c3ab353",
- "monthlySpendingLimit": 6000,
- "name": "Girokonto",
- "number": "83767594",
- "owner": "Torben Mais",
- "securities": [
- {
- "accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "currency": "EUR",
- "exchangeRate": 1.23,
- "id": "5ecd4d9bb9e14800012d99e9",
- "isin": "US0378331005",
- "market": "NASDAQ",
- "name": "finoOS Security",
- "priceAmount": 100,
- "priceCurrency": "EUR",
- "purchasePriceAmount": 150,
- "purchasePriceCurrency": "EUR",
- "quantity": 40
}
], - "standingOrders": [
- {
- "accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 200,
- "creationDate": "2020-05-26T17:11:22Z",
- "currency": "EUR",
- "executionDay": 2,
- "firstExecutionDate": "2020-05-26T17:11:22Z",
- "id": "5ecd4d9bb9e14800012d99e9",
- "interval": "MONTHLY",
- "lastExecutionDate": "2020-05-26T17:11:22Z",
- "purpose": "Taschengeld"
}
], - "transactions": [
- {
- "accountID": "A5ecd4d9bb9e14800012d99e9.1356664d2044208d10cf439e5009e810382ba932",
- "amount": 24.99,
- "booked": true,
- "bookingDate": "2020-05-26T17:11:22Z",
- "codes": [
- {
- "type": "transactionCode",
- "value": "999"
}
], - "counterPart": {
- "bic": "GENODEF1S04",
- "creditorId": "DE97ZZZ12345678901",
- "iban": "DE83701999010000002000",
- "name": "Andreas Schett"
}, - "currency": "EUR",
- "id": "5ecd4d9bb9e14800012d99e9",
- "mref": "MREF123ZZ678JJ",
- "purpose": "Welcome to finoOS",
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "valueDate": "2020-05-26T17:11:22Z"
}
], - "type": "GIRO"
}
], - "bank": {
- "bankCode": "70199901",
- "bic": "SUBSDE71",
- "logo": {
- "type": "string",
- "url": "string"
}, - "name": "fino Bank"
}, - "id": "5d7267d1b747aa683d88668f"
}
]
}
{- "message": "not found",
- "type": "notFound"
}
Scope: banking
Delete a connected bank login of the user.
Authorization required | string The authorization token |
User-IP required | string The IP address of the user. This is mandatory due to PSD2 regulations. |
{- "message": "not found",
- "type": "notFound"
}
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
Authorization required | string The authorization token |
{- "loginsStatuses": [
- {
- "active": true,
- "id": "5d7267d1b747aa683d88668f",
- "lastSynchronization": "2020-05-26T17:11:22Z"
}
]
}
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.addBankLogin required | string Jump directly to the add bank login screen in the banking UI |
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
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 |
redirectURL required | string The URL your user will be redirect to in case of a successful bank login |
{
}
Scope: banking
Trigger the synchronization of a connected bank login to fetch new account and transaction data from the bank. This can result in two responses:
204
: The synchronization was successful and you can query the latest bank login data via Get Logins200
: 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.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
bankLoginId required | string The ID of the bank login to be synchronized |
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 |
redirectURL required | string The URL your user will be redirect to in case of a successful bank login |
{- "bankLoginId": "5d726fcf5c23711d09ebabda",
}
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: 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') |
Authorization required | string The authorization token |
queries
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",
- "queryID": "1",
- "status": "ok",
}
]
}
The finoOS Document Shipment service provides an easy way to send documents via fax or a letter. You can simply encode a PDF file as a base64-encoded string and send it to any recipient.
Scope: documentShipment
Send a fax. This triggers an asynchronous process in our backend which will inform you whether or not the
the delivery succeeded. To get informed, specify a CallbackURL
and a UUID
on the request object. We will send a HTTP POST request to the specified CallbackURL
of the following format
http://yourapp.com/callback?requestid=<processID>&success=<true|false>
The success
parameter tells you if the delivery succeeded.
Authorization required | string The authorization token |
The payload of the request
required | object (shared.Address) |
callbackURL required | string The URL to notify you about the process |
pdfContent required | string PDF content is a base64 encoded string |
processID required | string An unique identifier for the shipment process |
recipient required | string The name of the recipient |
subject required | string The subject of the letter |
{- "address": {
- "city": "Kassel",
- "countryCode": "DE",
- "houseNumber": "string",
- "postcode": "34127",
- "street": "Universitätspl. 12",
- "streetAdditionalInfo": "PO Box 31127"
}, - "pdfContent": "YXNkYXNkbGFzYXNkYXNkaWFpc29wZG9xc2lwZGFzaW9kYWlwZHNpc2FvZG9wdzkxMjM4OTEwODEyMzAxOTI4w58xwrQyMDM5McK0MzEyMzE",
- "processID": "f976b0ee-d9fb-4327-bdbf-f34ac1938054",
- "recipient": "string",
- "subject": "string"
}
{- "message": "not found",
- "type": "notFound"
}
Scope: documentShipment
Send a letter. This triggers an asynchronous process in our backend which will inform you whether or not the
the delivery succeeded. To get informed, specify a CallbackURL
and a UUID
on the request object. We will send a HTTP POST request to the specified CallbackURL
of the following format
http://yourapp.com/callback?requestid=<processID>&success=<true|false>
The success
parameter tells you if the delivery succeeded.
Authorization required | string The authorization token |
The payload of the request
required | object (shared.Address) |
callbackURL required | string The URL to notify you about the process |
pdfContent required | string PDF content is a base64 encoded string |
processID required | string An unique identifier for the shipment process |
recipient required | string The name of the recipient |
subject required | string The subject of the letter |
{- "address": {
- "city": "Kassel",
- "countryCode": "DE",
- "houseNumber": "string",
- "postcode": "34127",
- "street": "Universitätspl. 12",
- "streetAdditionalInfo": "PO Box 31127"
}, - "pdfContent": "YXNkYXNkbGFzYXNkYXNkaWFpc29wZG9xc2lwZGFzaW9kYWlwZHNpc2FvZG9wdzkxMjM4OTEwODEyMzAxOTI4w58xwrQyMDM5McK0MzEyMzE",
- "processID": "f976b0ee-d9fb-4327-bdbf-f34ac1938054",
- "recipient": "string",
- "subject": "string"
}
{- "message": "not found",
- "type": "notFound"
}
The finoOS Payment Partner Analysis service is an intelligent bank account analysis service. It analyses your payment partners and returns information on how relevant an individual payment partner is for your liquidity. This information includes details on how long the relationship to this customer or supplier exists, how much of your income/outcome is dedicated to this partner and much more.
Scope: paymentPartnerAnalysis
Get the payment partner analysis for the user.
Authorization required | string The authorization token |
[- {
- "accountID": "string",
- "accountName": "string",
- "customerAll": [
- {
- "abroad": true,
- "activitySpan": 0,
- "averageAmountsMonthly": [
- {
- "average": 1214.47,
- "month": "3",
- "year": "2020"
}
], - "averageAmountsQuarterly": [
- {
- "average": 1214.47,
- "quarter": "3",
- "year": "2020"
}
], - "averageAmountsYearly": [
- {
- "average": 1214.47,
- "year": "2020"
}
], - "averageOfRanks": 0,
- "creditorID": "string",
- "daysBetweenTransactions": [
- 0
], - "daysBetweenTransactionsAverage": 0,
- "daysBetweenTransactionsDeviation": 0,
- "daysBetweenTransactionsVariance": 0,
- "firstTransactionDate": "string",
- "iban": "string",
- "lastTransactionDate": "string",
- "medianAmount": 0,
- "name": "string",
- "overallAmountRank": 0,
- "overallTransactionCountRank": 0,
- "percentageOfOverallActivitySpan": 0,
- "percentageOfOverallAmount": 0,
- "percentageOfOverallAmountMonthly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountMonthlySlope": 0,
- "percentageOfOverallAmountQuarterly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountYearly": [
- {
- "percentage": 14.7,
- "year": "2020"
}
], - "percentageOfOverallTransactionCount": 0,
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "totalAmount": 0,
- "totalAmountMonthly": [
- {
- "month": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountMonthlySlope": 0,
- "totalAmountQuarterly": [
- {
- "quarter": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountYearly": [
- {
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "transactionAmountSlope": 0,
- "transactionCount": 0
}
], - "customerLastMonth": [
- {
- "abroad": true,
- "activitySpan": 0,
- "averageAmountsMonthly": [
- {
- "average": 1214.47,
- "month": "3",
- "year": "2020"
}
], - "averageAmountsQuarterly": [
- {
- "average": 1214.47,
- "quarter": "3",
- "year": "2020"
}
], - "averageAmountsYearly": [
- {
- "average": 1214.47,
- "year": "2020"
}
], - "averageOfRanks": 0,
- "creditorID": "string",
- "daysBetweenTransactions": [
- 0
], - "daysBetweenTransactionsAverage": 0,
- "daysBetweenTransactionsDeviation": 0,
- "daysBetweenTransactionsVariance": 0,
- "firstTransactionDate": "string",
- "iban": "string",
- "lastTransactionDate": "string",
- "medianAmount": 0,
- "name": "string",
- "overallAmountRank": 0,
- "overallTransactionCountRank": 0,
- "percentageOfOverallActivitySpan": 0,
- "percentageOfOverallAmount": 0,
- "percentageOfOverallAmountMonthly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountMonthlySlope": 0,
- "percentageOfOverallAmountQuarterly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountYearly": [
- {
- "percentage": 14.7,
- "year": "2020"
}
], - "percentageOfOverallTransactionCount": 0,
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "totalAmount": 0,
- "totalAmountMonthly": [
- {
- "month": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountMonthlySlope": 0,
- "totalAmountQuarterly": [
- {
- "quarter": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountYearly": [
- {
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "transactionAmountSlope": 0,
- "transactionCount": 0
}
], - "customerPreMonth": [
- {
- "abroad": true,
- "activitySpan": 0,
- "averageAmountsMonthly": [
- {
- "average": 1214.47,
- "month": "3",
- "year": "2020"
}
], - "averageAmountsQuarterly": [
- {
- "average": 1214.47,
- "quarter": "3",
- "year": "2020"
}
], - "averageAmountsYearly": [
- {
- "average": 1214.47,
- "year": "2020"
}
], - "averageOfRanks": 0,
- "creditorID": "string",
- "daysBetweenTransactions": [
- 0
], - "daysBetweenTransactionsAverage": 0,
- "daysBetweenTransactionsDeviation": 0,
- "daysBetweenTransactionsVariance": 0,
- "firstTransactionDate": "string",
- "iban": "string",
- "lastTransactionDate": "string",
- "medianAmount": 0,
- "name": "string",
- "overallAmountRank": 0,
- "overallTransactionCountRank": 0,
- "percentageOfOverallActivitySpan": 0,
- "percentageOfOverallAmount": 0,
- "percentageOfOverallAmountMonthly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountMonthlySlope": 0,
- "percentageOfOverallAmountQuarterly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountYearly": [
- {
- "percentage": 14.7,
- "year": "2020"
}
], - "percentageOfOverallTransactionCount": 0,
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "totalAmount": 0,
- "totalAmountMonthly": [
- {
- "month": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountMonthlySlope": 0,
- "totalAmountQuarterly": [
- {
- "quarter": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountYearly": [
- {
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "transactionAmountSlope": 0,
- "transactionCount": 0
}
], - "customerQuarter": [
- {
- "abroad": true,
- "activitySpan": 0,
- "averageAmountsMonthly": [
- {
- "average": 1214.47,
- "month": "3",
- "year": "2020"
}
], - "averageAmountsQuarterly": [
- {
- "average": 1214.47,
- "quarter": "3",
- "year": "2020"
}
], - "averageAmountsYearly": [
- {
- "average": 1214.47,
- "year": "2020"
}
], - "averageOfRanks": 0,
- "creditorID": "string",
- "daysBetweenTransactions": [
- 0
], - "daysBetweenTransactionsAverage": 0,
- "daysBetweenTransactionsDeviation": 0,
- "daysBetweenTransactionsVariance": 0,
- "firstTransactionDate": "string",
- "iban": "string",
- "lastTransactionDate": "string",
- "medianAmount": 0,
- "name": "string",
- "overallAmountRank": 0,
- "overallTransactionCountRank": 0,
- "percentageOfOverallActivitySpan": 0,
- "percentageOfOverallAmount": 0,
- "percentageOfOverallAmountMonthly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountMonthlySlope": 0,
- "percentageOfOverallAmountQuarterly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountYearly": [
- {
- "percentage": 14.7,
- "year": "2020"
}
], - "percentageOfOverallTransactionCount": 0,
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "totalAmount": 0,
- "totalAmountMonthly": [
- {
- "month": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountMonthlySlope": 0,
- "totalAmountQuarterly": [
- {
- "quarter": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountYearly": [
- {
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "transactionAmountSlope": 0,
- "transactionCount": 0
}
], - "customerYear": [
- {
- "abroad": true,
- "activitySpan": 0,
- "averageAmountsMonthly": [
- {
- "average": 1214.47,
- "month": "3",
- "year": "2020"
}
], - "averageAmountsQuarterly": [
- {
- "average": 1214.47,
- "quarter": "3",
- "year": "2020"
}
], - "averageAmountsYearly": [
- {
- "average": 1214.47,
- "year": "2020"
}
], - "averageOfRanks": 0,
- "creditorID": "string",
- "daysBetweenTransactions": [
- 0
], - "daysBetweenTransactionsAverage": 0,
- "daysBetweenTransactionsDeviation": 0,
- "daysBetweenTransactionsVariance": 0,
- "firstTransactionDate": "string",
- "iban": "string",
- "lastTransactionDate": "string",
- "medianAmount": 0,
- "name": "string",
- "overallAmountRank": 0,
- "overallTransactionCountRank": 0,
- "percentageOfOverallActivitySpan": 0,
- "percentageOfOverallAmount": 0,
- "percentageOfOverallAmountMonthly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountMonthlySlope": 0,
- "percentageOfOverallAmountQuarterly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountYearly": [
- {
- "percentage": 14.7,
- "year": "2020"
}
], - "percentageOfOverallTransactionCount": 0,
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "totalAmount": 0,
- "totalAmountMonthly": [
- {
- "month": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountMonthlySlope": 0,
- "totalAmountQuarterly": [
- {
- "quarter": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountYearly": [
- {
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "transactionAmountSlope": 0,
- "transactionCount": 0
}
], - "supplierAll": [
- {
- "abroad": true,
- "activitySpan": 0,
- "averageAmountsMonthly": [
- {
- "average": 1214.47,
- "month": "3",
- "year": "2020"
}
], - "averageAmountsQuarterly": [
- {
- "average": 1214.47,
- "quarter": "3",
- "year": "2020"
}
], - "averageAmountsYearly": [
- {
- "average": 1214.47,
- "year": "2020"
}
], - "averageOfRanks": 0,
- "creditorID": "string",
- "daysBetweenTransactions": [
- 0
], - "daysBetweenTransactionsAverage": 0,
- "daysBetweenTransactionsDeviation": 0,
- "daysBetweenTransactionsVariance": 0,
- "firstTransactionDate": "string",
- "iban": "string",
- "lastTransactionDate": "string",
- "medianAmount": 0,
- "name": "string",
- "overallAmountRank": 0,
- "overallTransactionCountRank": 0,
- "percentageOfOverallActivitySpan": 0,
- "percentageOfOverallAmount": 0,
- "percentageOfOverallAmountMonthly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountMonthlySlope": 0,
- "percentageOfOverallAmountQuarterly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountYearly": [
- {
- "percentage": 14.7,
- "year": "2020"
}
], - "percentageOfOverallTransactionCount": 0,
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "totalAmount": 0,
- "totalAmountMonthly": [
- {
- "month": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountMonthlySlope": 0,
- "totalAmountQuarterly": [
- {
- "quarter": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountYearly": [
- {
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "transactionAmountSlope": 0,
- "transactionCount": 0
}
], - "supplierLastMonth": [
- {
- "abroad": true,
- "activitySpan": 0,
- "averageAmountsMonthly": [
- {
- "average": 1214.47,
- "month": "3",
- "year": "2020"
}
], - "averageAmountsQuarterly": [
- {
- "average": 1214.47,
- "quarter": "3",
- "year": "2020"
}
], - "averageAmountsYearly": [
- {
- "average": 1214.47,
- "year": "2020"
}
], - "averageOfRanks": 0,
- "creditorID": "string",
- "daysBetweenTransactions": [
- 0
], - "daysBetweenTransactionsAverage": 0,
- "daysBetweenTransactionsDeviation": 0,
- "daysBetweenTransactionsVariance": 0,
- "firstTransactionDate": "string",
- "iban": "string",
- "lastTransactionDate": "string",
- "medianAmount": 0,
- "name": "string",
- "overallAmountRank": 0,
- "overallTransactionCountRank": 0,
- "percentageOfOverallActivitySpan": 0,
- "percentageOfOverallAmount": 0,
- "percentageOfOverallAmountMonthly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountMonthlySlope": 0,
- "percentageOfOverallAmountQuarterly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountYearly": [
- {
- "percentage": 14.7,
- "year": "2020"
}
], - "percentageOfOverallTransactionCount": 0,
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "totalAmount": 0,
- "totalAmountMonthly": [
- {
- "month": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountMonthlySlope": 0,
- "totalAmountQuarterly": [
- {
- "quarter": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountYearly": [
- {
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "transactionAmountSlope": 0,
- "transactionCount": 0
}
], - "supplierPreMonth": [
- {
- "abroad": true,
- "activitySpan": 0,
- "averageAmountsMonthly": [
- {
- "average": 1214.47,
- "month": "3",
- "year": "2020"
}
], - "averageAmountsQuarterly": [
- {
- "average": 1214.47,
- "quarter": "3",
- "year": "2020"
}
], - "averageAmountsYearly": [
- {
- "average": 1214.47,
- "year": "2020"
}
], - "averageOfRanks": 0,
- "creditorID": "string",
- "daysBetweenTransactions": [
- 0
], - "daysBetweenTransactionsAverage": 0,
- "daysBetweenTransactionsDeviation": 0,
- "daysBetweenTransactionsVariance": 0,
- "firstTransactionDate": "string",
- "iban": "string",
- "lastTransactionDate": "string",
- "medianAmount": 0,
- "name": "string",
- "overallAmountRank": 0,
- "overallTransactionCountRank": 0,
- "percentageOfOverallActivitySpan": 0,
- "percentageOfOverallAmount": 0,
- "percentageOfOverallAmountMonthly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountMonthlySlope": 0,
- "percentageOfOverallAmountQuarterly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountYearly": [
- {
- "percentage": 14.7,
- "year": "2020"
}
], - "percentageOfOverallTransactionCount": 0,
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "totalAmount": 0,
- "totalAmountMonthly": [
- {
- "month": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountMonthlySlope": 0,
- "totalAmountQuarterly": [
- {
- "quarter": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountYearly": [
- {
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "transactionAmountSlope": 0,
- "transactionCount": 0
}
], - "supplierQuarter": [
- {
- "abroad": true,
- "activitySpan": 0,
- "averageAmountsMonthly": [
- {
- "average": 1214.47,
- "month": "3",
- "year": "2020"
}
], - "averageAmountsQuarterly": [
- {
- "average": 1214.47,
- "quarter": "3",
- "year": "2020"
}
], - "averageAmountsYearly": [
- {
- "average": 1214.47,
- "year": "2020"
}
], - "averageOfRanks": 0,
- "creditorID": "string",
- "daysBetweenTransactions": [
- 0
], - "daysBetweenTransactionsAverage": 0,
- "daysBetweenTransactionsDeviation": 0,
- "daysBetweenTransactionsVariance": 0,
- "firstTransactionDate": "string",
- "iban": "string",
- "lastTransactionDate": "string",
- "medianAmount": 0,
- "name": "string",
- "overallAmountRank": 0,
- "overallTransactionCountRank": 0,
- "percentageOfOverallActivitySpan": 0,
- "percentageOfOverallAmount": 0,
- "percentageOfOverallAmountMonthly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountMonthlySlope": 0,
- "percentageOfOverallAmountQuarterly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountYearly": [
- {
- "percentage": 14.7,
- "year": "2020"
}
], - "percentageOfOverallTransactionCount": 0,
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "totalAmount": 0,
- "totalAmountMonthly": [
- {
- "month": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountMonthlySlope": 0,
- "totalAmountQuarterly": [
- {
- "quarter": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountYearly": [
- {
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "transactionAmountSlope": 0,
- "transactionCount": 0
}
], - "supplierYear": [
- {
- "abroad": true,
- "activitySpan": 0,
- "averageAmountsMonthly": [
- {
- "average": 1214.47,
- "month": "3",
- "year": "2020"
}
], - "averageAmountsQuarterly": [
- {
- "average": 1214.47,
- "quarter": "3",
- "year": "2020"
}
], - "averageAmountsYearly": [
- {
- "average": 1214.47,
- "year": "2020"
}
], - "averageOfRanks": 0,
- "creditorID": "string",
- "daysBetweenTransactions": [
- 0
], - "daysBetweenTransactionsAverage": 0,
- "daysBetweenTransactionsDeviation": 0,
- "daysBetweenTransactionsVariance": 0,
- "firstTransactionDate": "string",
- "iban": "string",
- "lastTransactionDate": "string",
- "medianAmount": 0,
- "name": "string",
- "overallAmountRank": 0,
- "overallTransactionCountRank": 0,
- "percentageOfOverallActivitySpan": 0,
- "percentageOfOverallAmount": 0,
- "percentageOfOverallAmountMonthly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountMonthlySlope": 0,
- "percentageOfOverallAmountQuarterly": [
- {
- "percentage": 14.7,
- "quarter": "3",
- "year": "2020"
}
], - "percentageOfOverallAmountYearly": [
- {
- "percentage": 14.7,
- "year": "2020"
}
], - "percentageOfOverallTransactionCount": 0,
- "tags": [
- {
- "name": "salary",
- "source": "string"
}
], - "totalAmount": 0,
- "totalAmountMonthly": [
- {
- "month": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountMonthlySlope": 0,
- "totalAmountQuarterly": [
- {
- "quarter": "3",
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "totalAmountYearly": [
- {
- "totalAmount": 1241.23,
- "transactionCount": 56,
- "year": "2020"
}
], - "transactionAmountSlope": 0,
- "transactionCount": 0
}
]
}
]