.0.8.2.source-code.swagger.json Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rest Show documentation
Show all versions of rest Show documentation
A library for Tink core services
{"swagger":"2.0","info":{"description":"This is a sample server for a pet store.","version":"1.0.1","title":"Tink API","termsOfService":"http://example.com/terms/","contact":{"name":"API Support","url":"http://www.example.com/support","email":"[email protected]"},"license":{"name":"Apache 2.0","url":"https://github.com/OAI/OpenAPI-Specification/blob/master/https://www.apache.org/licenses/LICENSE-2.0.html"}},"tags":[{"name":"Category"},{"name":"Loan"},{"name":"ENTERPRISE"},{"name":"Monitoring"},{"name":"Webhook"},{"name":"Transfer"},{"name":"Search"},{"name":"Device"},{"name":"Actionable Insight"},{"name":"BETA"},{"name":"Authentication"},{"name":"Transaction"},{"name":"Beneficiary"},{"name":"Provider"},{"name":"Identity"},{"name":"User"},{"name":"Payment Request"},{"name":"Version"},{"name":"Notification"},{"name":"Savings Goals"},{"name":"Activity"},{"name":"Statistics"},{"name":"Credentials"},{"name":"Investment"},{"name":"Follow Item"},{"name":"Calendar"},{"name":"User Data Control"},{"name":"Account"},{"name":"Budget"}],"paths":{"/api/v1/accounts":{"get":{"tags":["Account"],"operationId":"list","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","headers":{},"schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"deprecated":true}},"/api/v1/accounts/list":{"get":{"tags":["Account"],"summary":"List accounts","description":"Returns an object with a list of the authenticated user's accounts.","operationId":"listAccounts","produces":["application/json","application/x-protobuf"],"parameters":[],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/AccountListResponse"}}},"security":[{"OAuth2":["accounts:read"]}]}},"/api/v1/accounts/{id}":{"put":{"tags":["Account","ENTERPRISE"],"summary":"Update an Account","description":"Updates mutable properties of an account. The following properties are possible to update: accountExclusion, accountNumber, excluded, favored, name, type","operationId":"update","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The ID of the account","required":true,"type":"string","x-example":"8937fa00166946cbbcbbec569c9d6e90"},{"in":"body","name":"body","description":"The updated account object","required":true,"schema":{"$ref":"#/definitions/Account"}}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Account"}},"400":{"description":"The payload does not pass validation, or the account does not exist."}},"security":[{"OAuth2":["accounts:write"]}]}},"/api/v1/activities/query":{"post":{"tags":["Activity","ENTERPRISE"],"summary":"Query activities","description":"Queries activities","operationId":"query","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"in":"body","name":"body","description":"The query.","required":true,"schema":{"$ref":"#/definitions/ActivityQuery"}}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ActivityQueryResponse"}}}}},"/api/v1/activities/{key}":{"get":{"tags":["Activity","ENTERPRISE"],"summary":"Get activity","description":"Get activity","operationId":"get","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"name":"key","in":"path","description":"The key of the activity.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Activity"}}}}},"/api/v1/authorization/hooks":{"get":{"tags":["Webhook","ENTERPRISE"],"summary":"List Webhooks","description":"List the registered webhooks for the given client.","operationId":"listHooks","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/OAuth2WebHookResponse"}}}},"post":{"tags":["Webhook","ENTERPRISE"],"summary":"Create Webhook","description":"Create a new webhook for the authenticated user, giving the possibility to get pushed updates for certain events. Creating a new webhook will remove the existing one.","operationId":"createHook","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","description":"The specifics of the webhook to create","required":true,"schema":{"$ref":"#/definitions/OAuth2WebHook"}}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Webhook"}}}}},"/api/v1/authorization/hooks/{id}":{"delete":{"tags":["Webhook","ENTERPRISE"],"summary":"Delete Webhook","description":"Delete the webhook of the given ID.","operationId":"deleteHook","parameters":[{"name":"id","in":"path","description":"The ID of the webhook","required":true,"type":"string"}],"responses":{"default":{"description":"successful operation"}}}},"/api/v1/beneficiaries":{"get":{"tags":["Beneficiary","ENTERPRISE","BETA"],"summary":"List beneficiaries","description":"Lists all beneficiaries for all accounts belonging to the authenticated user.","operationId":"list","parameters":[],"responses":{"200":{"description":"The operation was successful.","schema":{"$ref":"#/definitions/ListBeneficiariesResponse"}},"500":{"description":"An unexpected error occurred when trying to fetch beneficiaries."}},"security":[{"OAuth2":["beneficiaries:read"]}]},"post":{"tags":["Beneficiary","ENTERPRISE","BETA"],"summary":"Create beneficiary","description":"Initiates a request to add beneficiary to the given account belonging to the authenticated user.","operationId":"create","consumes":["application/json"],"parameters":[{"in":"body","name":"body","description":"Configuration for new beneficiary.","required":false,"schema":{"$ref":"#/definitions/CreateBeneficiaryRequest"}}],"responses":{"204":{"description":"The operation was successful."},"500":{"description":"An unexpected error occured when trying to initiate adding a beneficiary."}},"security":[{"OAuth2":["beneficiaries:write"]}]}},"/api/v1/budgets":{"get":{"tags":["Budget","ENTERPRISE"],"summary":"List budgets","description":"List all budgets for the user. Returns `500 Internal Server Error` for any unspecified error.","operationId":"listSpecifications","produces":["application/json"],"parameters":[{"name":"includeArchived","in":"query","description":"Whether to include archived budgets or not in the response.","required":false,"type":"boolean","default":false,"x-example":false}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ListBudgetSpecificationsResponse"}}}}},"/api/v1/budgets/one-off":{"post":{"tags":["Budget","ENTERPRISE"],"summary":"Create one-off budget","description":"Creates a budget for a specific date interval. Returns `400 Bad Request` if any of the request parameters is incorrect or missing. Returns `500 Internal Server Error` for any unspecified error.","operationId":"createOneOff","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","description":"The one off budget to be created.","required":true,"schema":{"$ref":"#/definitions/CreateOneOffBudgetRequest"}}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/CreateBudgetResponse"}}}}},"/api/v1/budgets/recurring":{"post":{"tags":["Budget","ENTERPRISE"],"summary":"Create recurring budget","description":"Creates a recurring budget with a set periodicity.Returns `400 Bad Request` if any of the request parameters is incorrect or missing. Returns `500 Internal Server Error` for any unspecified error.","operationId":"createRecurring","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","description":"The recurring budget to be created.","required":true,"schema":{"$ref":"#/definitions/CreateRecurringBudgetRequest"}}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/CreateBudgetResponse"}}}}},"/api/v1/budgets/summaries":{"get":{"tags":["Budget","ENTERPRISE"],"summary":"List budgets with summaries","description":"List all budgets for the user including current period for each budget. Returns `500 Internal Server Error` for any unspecified error.","operationId":"listSummaries","produces":["application/json"],"parameters":[{"name":"includeArchived","in":"query","description":"Whether to include archived budgets or not in the response.","required":false,"type":"boolean","default":false,"x-example":false}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ListBudgetSummariesResponse"}}}}},"/api/v1/budgets/{id}":{"put":{"tags":["Budget","ENTERPRISE"],"summary":"Update budget","description":"Updates the specified budget. Returns `404 Not Found` if the budget does not exist. Returns `400 Bad Request` if any of the request parameters is incorrect or missing. Returns `500 Internal Server Error` for any unspecified error.","operationId":"update","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The ID of the budget.","required":true,"type":"string","x-example":"630ff47c3aa841e9a11e7317c8683ca6"},{"in":"body","name":"body","description":"The modified budget to be applied.","required":true,"schema":{"$ref":"#/definitions/UpdateBudgetRequest"}}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/UpdateBudgetResponse"}}}},"delete":{"tags":["Budget","ENTERPRISE"],"summary":"Delete budget","description":"Deletes the specified budget. Returns `404 Not Found` if the budget does not exist. Returns `400 Bad Request` if any of the request parameters is incorrect or missing. Returns `500 Internal Server Error` for any unspecified error.","operationId":"delete","parameters":[{"name":"id","in":"path","description":"The ID of the budget.","required":true,"type":"string","x-example":"630ff47c3aa841e9a11e7317c8683ca6"}],"responses":{"default":{"description":"successful operation"}}}},"/api/v1/budgets/{id}/archive":{"put":{"tags":["Budget","ENTERPRISE"],"summary":"Archive budget","description":"Archives the specified budget.Returns `404 Not Found` if the budget does not exist. Returns `400 Bad Request` if any of the request parameters is incorrect or missing. Returns `500 Internal Server Error` for any unspecified error.","operationId":"archive","produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The ID of the budget.","required":true,"type":"string","x-example":"630ff47c3aa841e9a11e7317c8683ca6"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ArchiveBudgetResponse"}}}}},"/api/v1/budgets/{id}/details":{"get":{"tags":["Budget","ENTERPRISE"],"summary":"Get budget details","description":"Get the specified budget and its periods within the start and end dates. The date parameters are inclusive, thus specifying a date in the middle of a period will include the complete period amounts. Returns `404 Not Found` if the budget does not exist. Returns `400 Bad Request` if any of the request parameters is incorrect or missing. Returns `500 Internal Server Error` for any unspecified error.","operationId":"getDetails","produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The ID of the budget.","required":true,"type":"string","x-example":"630ff47c3aa841e9a11e7317c8683ca6"},{"name":"start","in":"query","description":"Date within the first period expressed as UTC epoch timestamp in milliseconds.","required":false,"type":"integer","default":"Current time.","format":"int64","x-example":1549976786000},{"name":"end","in":"query","description":"Date within the last period expressed as UTC epoch timestamp in milliseconds.","required":false,"type":"integer","default":"Current time.","format":"int64","x-example":155239598000}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/BudgetDetailsResponse"}}}}},"/api/v1/budgets/{id}/transactions":{"get":{"tags":["Budget","ENTERPRISE"],"summary":"Get budget transactions","description":"List all transactions for the specified budget within the start and end date. The date parameters are inclusive. Returns `404 Not Found` if the budget does not exist. Returns `400 Bad Request` if any of the request parameters is incorrect or missing. Returns `500 Internal Server Error` for any unspecified error.","operationId":"getTransactions","produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The ID of the budget.","required":true,"type":"string","x-example":"630ff47c3aa841e9a11e7317c8683ca6"},{"name":"start","in":"query","description":"Query start date expressed as UTC epoch timestamp in milliseconds.","required":true,"type":"integer","format":"int64","x-example":1549976786000},{"name":"end","in":"query","description":"Query end date expressed as UTC epoch timestamp in milliseconds.","required":true,"type":"integer","format":"int64","x-example":1552395986000}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/BudgetTransactionsResponse"}}}}},"/api/v1/calendar/businessdays/{startYear}-{startMonth}":{"get":{"tags":["Calendar","ENTERPRISE"],"summary":"Get business days","description":"Get the business days available for this user.","operationId":"businessDays","produces":["application/json","application/x-protobuf"],"parameters":[{"name":"startYear","in":"path","description":"Start year for queried business days","required":true,"type":"integer","format":"int32","x-example":2016},{"name":"startMonth","in":"path","description":"Start month for queried business days","required":true,"type":"integer","format":"int32","x-example":5},{"name":"months","in":"query","description":"Number of months queried for. Defaults to 1.","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"The business days was successfully returned.","schema":{"$ref":"#/definitions/BusinessDaysResponse"}},"400":{"description":"The start year was not greater than 0 or start month was not between 1 and 12."}}}},"/api/v1/calendar/periods":{"get":{"tags":["Calendar","ENTERPRISE"],"summary":"Query Period details","description":"Get a list of detailed periods from a given start period to an end period. Will always return one of the monthly resolutions.","operationId":"queryPeriods","produces":["application/json","application/x-protobuf"],"parameters":[{"name":"period_gte","in":"query","description":"Date inside the start period","required":true,"type":"string","enum":["YYYY-MM-DD"],"x-example":"2016-05-21"},{"name":"period_lte","in":"query","description":"Date inside the end period","required":true,"type":"string","enum":["YYYY-MM-DD"],"x-example":"2016-08-13"}],"responses":{"200":{"description":"The periods were successfully returned.","schema":{"type":"array","items":{"$ref":"#/definitions/Period"}}},"400":{"description":"A period query parameter format is invalid or period_gte is after period_lte"}}}},"/api/v1/calendar/periods/{period}":{"get":{"tags":["Calendar","ENTERPRISE"],"summary":"Get period details","description":"Get details for the supplied period. Will always return one of the monthly resolutions.","operationId":"listPeriods","produces":["application/json","application/x-protobuf"],"parameters":[{"name":"period","in":"path","description":"Period to get details for","required":true,"type":"string","enum":["YYYY","YYYY-MM","YYYY-MM-DD"],"x-example":"2016-05-21"}],"responses":{"200":{"description":"The periods were successfully returned.","schema":{"type":"array","items":{"$ref":"#/definitions/Period"}}},"400":{"description":"The period format is invalid."}}}},"/api/v1/categories":{"get":{"tags":["Category"],"summary":"List categories","description":"Returns all categories for the given locale. The locale is either taken from the authenticated user or from a query parameter, if no user is authenticated. If no user and no query parameter is given, a default locale is used.","operationId":"list","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"locale","in":"query","description":"The locale for which to fetch categories.","required":false,"type":"string","x-example":"sv_SE"}],"responses":{"200":{"description":"The categories were successfully returned.","schema":{"type":"array","items":{"$ref":"#/definitions/Category"}}}}}},"/api/v1/credentials":{"post":{"tags":["Credentials","ENTERPRISE"],"summary":"Create credentials","description":"Creates the Credentials for the user. The create request will trigger a refresh towards the provider.","operationId":"create","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"in":"body","name":"body","description":"The credentials to create. Only providerName and fields are required.","required":false,"schema":{"$ref":"#/definitions/CreateCredentialsRequest"}},{"name":"items","in":"query","description":"The data types to aggregate from the provider. Multiple items are allowed and are passed as: items=item1&items=item2. If omitted, all data types are aggregated.","required":false,"type":"array","items":{"type":"string","enum":["CHECKING_ACCOUNTS","CHECKING_TRANSACTIONS","SAVING_ACCOUNTS","SAVING_TRANSACTIONS","CREDITCARD_ACCOUNTS","CREDITCARD_TRANSACTIONS","LOAN_ACCOUNTS","LOAN_TRANSACTIONS","INVESTMENT_ACCOUNTS","INVESTMENT_TRANSACTIONS","EINVOICES","TRANSFER_DESTINATIONS","IDENTITY_DATA"]},"collectionFormat":"multi","x-example":"CHECKING_ACCOUNTS,CHECKING_TRANSACTIONS,SAVING_ACCOUNTS,SAVING_TRANSACTIONS,CREDITCARD_ACCOUNTS,CREDITCARD_TRANSACTIONS,LOAN_ACCOUNTS,LOAN_TRANSACTIONS,INVESTMENT_ACCOUNTS,INVESTMENT_TRANSACTIONS,EINVOICES,TRANSFER_DESTINATIONS,IDENTITY_DATA"}],"responses":{"200":{"description":"The credentials was successfully created.","schema":{"$ref":"#/definitions/Credentials"}},"400":{"description":"The payload does not pass validation."},"404":{"description":"The provider could not be found."},"409":{"description":"There is already a credentials with the same provider name and same values of the fields."}},"security":[{"OAuth2":["credentials:write"]}]}},"/api/v1/credentials/list":{"get":{"tags":["Credentials"],"summary":"List credentials","description":"List all credentials for the user.","operationId":"getCredentialsList","produces":["application/json","application/x-protobuf"],"parameters":[],"responses":{"200":{"description":"The list of credentials was successfully returned.","schema":{"$ref":"#/definitions/CredentialsListResponse"}}},"security":[{"OAuth2":["credentials:read"]}]}},"/api/v1/credentials/third-party/callback/relayed":{"post":{"tags":["Credentials","ENTERPRISE"],"summary":"Third-party callback with redirect","description":"Send callback information from an ASPSP. This endpoint will return the registered redirect uri as response.","operationId":"thirdPartyCallbackRelayedPost","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","description":"The callback response from the ASPSP with JSON format.","required":true,"schema":{"$ref":"#/definitions/CallbackRelayedRequest"}}],"responses":{"200":{"description":"The callback request was successful."},"400":{"description":"The payload does not pass validation."}}}},"/api/v1/credentials/{id}":{"get":{"tags":["Credentials"],"summary":"Get credentials","description":"Gets credentials by ID.","operationId":"get","produces":["application/json","application/x-protobuf"],"parameters":[{"name":"id","in":"path","description":"The internal identifier of the credentials to get","required":true,"type":"string"}],"responses":{"200":{"description":"The credentials was successfully returned.","schema":{"$ref":"#/definitions/Credentials"}},"404":{"description":"The credentials could not be found."}},"security":[{"OAuth2":["credentials:read"]}]},"put":{"tags":["Credentials","ENTERPRISE"],"summary":"Modify credentials","description":"Modify the specified credentials.","operationId":"update","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"name":"id","in":"path","description":"The internal identifier of the credentials to change","required":true,"type":"string"},{"in":"body","name":"body","description":"The new credentials object.","required":true,"schema":{"$ref":"#/definitions/UpdateCredentialsRequest"}}],"responses":{"200":{"description":"The credentials was successfully modified.","schema":{"$ref":"#/definitions/Credentials"}},"400":{"description":"The payload does not pass validation."}},"security":[{"OAuth2":["credentials:write"]}]},"delete":{"tags":["Credentials","ENTERPRISE"],"summary":"Delete credentials","description":"Deletes the given credentials. The deletion is partly done asynchronously.","operationId":"delete","parameters":[{"name":"id","in":"path","description":"The internal identifier of the credentials to delete","required":true,"type":"string"}],"responses":{"204":{"description":"The credentials has been successfully sent for deletion."},"404":{"description":"The credentials could not be found."}},"security":[{"OAuth2":["credentials:write"]}]}},"/api/v1/credentials/{id}/authenticate":{"post":{"tags":["Credentials","ENTERPRISE"],"summary":"Manual authenticate of credentials","description":"Triggers a full authentication flow to renew refresh tokens with ASPSPs. This endpoint is limited to credentials connected to providers of access type `OPEN_BANKING`. This endpoint only triggers authentication, thus a full credentials refresh will not be executed.","operationId":"manualAuthentication","consumes":["application/json"],"parameters":[{"name":"id","in":"path","description":"The internal identifier of the `Credentials` object to authenticate.","required":true,"type":"string","x-example":"2d3bd65493b549e1927d97a2d0683ab9"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/ManualAuthenticationRequest"}}],"responses":{"204":{"description":"The credentials authentication was successfully initiated."},"404":{"description":"The credentials could not be found."}},"security":[{"OAuth2":["credentials:refresh"]}]}},"/api/v1/credentials/{id}/qr":{"get":{"tags":["Credentials"],"summary":"Get QR code","description":"QR code for authentication flows such as Mobile BankID as base64 encoded PNG. Includes `data:image/png;base64,`.","operationId":"qrAsBase64","consumes":["application/json"],"produces":["text/html"],"parameters":[{"name":"id","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"The QR code was successfully returned.","schema":{"type":"string"}},"400":{"description":"The payload does not pass validation."},"404":{"description":"Could not find the autostarttoken."}},"security":[{"OAuth2":["credentials:read"]}]}},"/api/v1/credentials/{id}/refresh":{"post":{"tags":["Credentials","ENTERPRISE"],"summary":"Refresh credentials","description":"Refreshes the specified credentials. It's only possible to refresh a credential every tenth minute, given that the latest refresh was successful.","operationId":"refresh","consumes":["application/json"],"parameters":[{"name":"id","in":"path","description":"The internal identifier of the `Credentials` object to refresh.","required":true,"type":"string","x-example":"2d3bd65493b549e1927d97a2d0683ab9"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/RefreshCredentialsRequest"}},{"name":"items","in":"query","description":"The data types to aggregate from the Provider. Multiple items are allowed. If omitted, all data types are aggregated.","required":false,"type":"array","items":{"type":"string","enum":["CHECKING_ACCOUNTS","CHECKING_TRANSACTIONS","SAVING_ACCOUNTS","SAVING_TRANSACTIONS","CREDITCARD_ACCOUNTS","CREDITCARD_TRANSACTIONS","LOAN_ACCOUNTS","LOAN_TRANSACTIONS","INVESTMENT_ACCOUNTS","INVESTMENT_TRANSACTIONS","EINVOICES","TRANSFER_DESTINATIONS","IDENTITY_DATA"]},"collectionFormat":"multi","x-example":"CHECKING_ACCOUNTS,CHECKING_TRANSACTIONS,SAVING_ACCOUNTS,SAVING_TRANSACTIONS,CREDITCARD_ACCOUNTS,CREDITCARD_TRANSACTIONS,LOAN_ACCOUNTS,LOAN_TRANSACTIONS,INVESTMENT_ACCOUNTS,INVESTMENT_TRANSACTIONS,EINVOICES,TRANSFER_DESTINATIONS,IDENTITY_DATA"},{"name":"optIn","in":"query","description":"Set to true to trigger an opt-in of accounts before doing the refresh. Today only available for enterprise customers.","required":false,"type":"boolean","x-example":"optIn=true"}],"responses":{"204":{"description":"The credentials refresh was successfully initiated."},"404":{"description":"The credentials could not be found."}},"security":[{"OAuth2":["credentials:refresh"]}]}},"/api/v1/credentials/{id}/supplemental-information":{"post":{"tags":["Credentials","ENTERPRISE"],"summary":"Add Supplemental Information","description":"Adds supplemental information to an authentication.","operationId":"supplemental","consumes":["application/json"],"parameters":[{"name":"id","in":"path","required":true,"type":"string"},{"in":"body","name":"body","description":"The supplemental information.","required":true,"schema":{"$ref":"#/definitions/SupplementalInformation"}}],"responses":{"204":{"description":"The supplemental information was successfully sent."},"404":{"description":"The credentials could not be found."}},"security":[{"OAuth2":["credentials:refresh"]}]}},"/api/v1/devices":{"get":{"tags":["Device","ENTERPRISE"],"summary":"List all devices","description":"Lists all devices.","operationId":"listDevices","consumes":["application/json"],"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/DeviceListResponse"}}},"security":[{"OAuth2":["device:read"]}]}},"/api/v1/devices/{deviceToken}":{"put":{"tags":["Device","ENTERPRISE"],"summary":"Update a device","description":"Updates a device for the authenticated user. If the same `notificationToken` would exist on some another user, it will be removed from that user. If the deviceToken is registered already with a different push token, it will be updated to the latest one.","operationId":"updateDevice","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"deviceToken","in":"path","description":"The (persistent) deviceToken","required":true,"type":"string"},{"in":"body","name":"body","description":"The token and some meta data around it","required":true,"schema":{"$ref":"#/definitions/Device"}}],"responses":{"default":{"description":"successful operation"}},"security":[{"OAuth2":["device:write"]}]},"delete":{"tags":["Device","ENTERPRISE"],"summary":"Delete a device","description":"Deletes the device. Does not require an authenticated user.","operationId":"deleteDevice","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"deviceToken","in":"path","description":"The (persistent) deviceToken","required":true,"type":"string"}],"responses":{"default":{"description":"successful operation"}},"security":[{"OAuth2":["device:write"]}]}},"/api/v1/devices/{deviceToken}/configuration":{"get":{"tags":["Device","ENTERPRISE"],"summary":"Get device configuration","description":"Get device configuration based on device token and optionally market code (default market is `SE`)","operationId":"getConfiguration","consumes":["application/json"],"produces":["application/json","application/x-protobuf"],"parameters":[{"name":"deviceToken","in":"path","description":"Device token","required":true,"type":"string"},{"name":"desiredMarket","in":"query","description":"Provide market code, e.g. `SE`, `US`, `NO` etc.","required":false,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/DeviceConfigurationDto"}}},"security":[{"OAuth2":["device:read"]}]}},"/api/v1/follow":{"post":{"tags":["Follow Item","ENTERPRISE"],"summary":"Create Follow Item","description":"Creates a follow item.","operationId":"create","consumes":["application/json"],"produces":["application/json","application/x-protobuf"],"parameters":[{"in":"body","name":"body","description":"The follow item to create","required":true,"schema":{"$ref":"#/definitions/Follow Item"}}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Follow Item"}}}}},"/api/v1/follow/list":{"get":{"tags":["Follow Item","ENTERPRISE"],"summary":"List Follow Items","description":"Lists all follow items. For list Follow Items, no transactions are populated on the Follow Data objects.","operationId":"getFollowList","produces":["application/json","application/x-protobuf"],"parameters":[{"name":"period","in":"query","description":"The period (yyyy-mm) to fetch data for. Defaults to current month.","required":false,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/FollowItemListResponse"}}}}},"/api/v1/follow/multiple":{"post":{"tags":["Follow Item","ENTERPRISE"],"summary":"Create multiple Follow Items","description":"Creates multiple Follow Items","operationId":"create","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","description":"A list of the follow items to create","required":true,"schema":{"type":"array","items":{"$ref":"#/definitions/Follow Item"}}}],"responses":{"200":{"description":"successful operation","schema":{"type":"array","items":{"$ref":"#/definitions/Follow Item"}}}}}},"/api/v1/follow/{id}":{"get":{"tags":["Follow Item","ENTERPRISE"],"summary":"Get Follow Item","description":"Gets a follow item by id.","operationId":"get","produces":["application/json","application/x-protobuf"],"parameters":[{"name":"id","in":"path","description":"The ID of the follow item","required":true,"type":"string"},{"name":"period","in":"query","description":"The period (yyyy-mm) to fetch data for. Defaults to current month.","required":false,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Follow Item"}}}},"put":{"tags":["Follow Item","ENTERPRISE"],"summary":"Update Follow Item","description":"Updates a follow item. Name and Criteria is updatable.","operationId":"update","consumes":["application/json"],"produces":["application/json","application/x-protobuf"],"parameters":[{"name":"id","in":"path","description":"The ID of the follow item to update","required":true,"type":"string"},{"in":"body","name":"body","description":"The new follow item","required":true,"schema":{"$ref":"#/definitions/Follow Item"}}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Follow Item"}}}},"delete":{"tags":["Follow Item","ENTERPRISE"],"summary":"Delete Follow Item","description":"Deletes a follow item.","operationId":"delete","parameters":[{"name":"id","in":"path","description":"The ID of the follow item to delete","required":true,"type":"string"}],"responses":{"default":{"description":"successful operation"}}}},"/api/v1/identities":{"get":{"tags":["Identity"],"summary":"List identity data","description":"Lists the available identity data from each provider for a user.","operationId":"listIdentityData","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/IdentityListResponse"}}},"security":[{"OAuth2":["identity:read"]}]}},"/api/v1/insights":{"get":{"tags":["Actionable Insight","ENTERPRISE","BETA"],"summary":"List insights","description":"Lists all insights for the user.","operationId":"list","parameters":[],"responses":{"200":{"description":"Returns `200 Ok` for a successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Actionable Insight"}}},"500":{"description":"Returns `500 Internal Server Error` for any unexpected error that occurs when trying to fetch insights."}}}},"/api/v1/insights/action":{"post":{"tags":["Actionable Insight","ENTERPRISE","BETA"],"summary":"Take action on an insight","description":"Report a user action on an insight and move the insight to an archived state.","operationId":"selectInsightAction","parameters":[{"in":"body","name":"body","description":"The insight action that should be selected.","required":true,"schema":{"$ref":"#/definitions/SelectInsightActionRequest"}}],"responses":{"204":{"description":"Returns `204 No Content` for a successful operation."},"400":{"description":"Returns `400 Bad Request` if any of the request parameters are incorrect or missing."},"404":{"description":"Returns `404 Not Found` if the provided id does not correspond to an active insight."},"500":{"description":"Returns `500 Internal Server Error` for any unexpected error that occurs when trying to take action on an insight."}}}},"/api/v1/insights/archived":{"get":{"tags":["Actionable Insight","ENTERPRISE","BETA"],"summary":"List archived insights","description":"Lists all archived insights for the user.","operationId":"listArchivedInsights","parameters":[],"responses":{"200":{"description":"Returns `200 Ok` for a successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/ArchivedInsight"}}},"500":{"description":"Returns `500 Internal Server Error` for any unexpected error that occurs when trying to fetch archived insights."}}}},"/api/v1/insights/{id}/archive":{"put":{"tags":["Actionable Insight","ENTERPRISE","BETA"],"summary":"Archive an insight","description":"Move an active insight to an archived state.","operationId":"archiveInsight","parameters":[{"name":"id","in":"path","description":"The identifier of the insight that should be archived.","required":true,"type":"string","x-example":"630ff47c3aa841e9a11e7317c8683ca6"}],"responses":{"204":{"description":"Returns `204 No Content` for a successful operation."},"400":{"description":"Returns `400 Bad Request` if any of the request parameters are incorrect or missing."},"404":{"description":"Returns `404 Not Found` if the provided id does not correspond to an active insight."},"500":{"description":"Returns `500 Internal Server Error` for any unexpected error that occurs when trying to archive on insight."}}}},"/api/v1/investments":{"get":{"tags":["Investment"],"summary":"List investments","description":"Returns an object with a list of the authenticated user's portfolios and corresponding financial instruments.","operationId":"getInvestments","produces":["application/json"],"parameters":[{"name":"portfolioType","in":"query","description":"The portfolio types to select from aggregated investment data. Multiple types are allowed and are passed as: portfolioType=type1&portfolioType=type2. If omitted, everything is selected.","required":false,"type":"array","items":{"type":"string","enum":["ISK","KF","DEPOT","PENSION","OTHER"]},"collectionFormat":"multi","x-example":"ISK, KF, DEPOT, PENSION, OTHER"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Investment"}}},"security":[{"OAuth2":["investments:read"]}]}},"/api/v1/loans":{"get":{"tags":["Loan"],"summary":"Get loans","description":"Get all the loans for a user.","operationId":"get","produces":["application/json","application/x-protobuf"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/LoanResponse"}}},"security":[{"OAuth2":["accounts:read"]}]}},"/api/v1/loans/events":{"get":{"tags":["Loan"],"summary":"List loan events","description":"Lists events that affect the properties of a loan such as interest rate changes.","operationId":"getEvents","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/LoanEventsResponse"}}},"security":[{"OAuth2":["accounts:read"]}]}},"/api/v1/loans/timelines":{"get":{"tags":["Loan"],"summary":"List loan history","description":"Lists historical rates and balances for all loans as well as weighted average calculations for all loans together.","operationId":"getLoanTimelines","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/LoanTimelineResponse"}}},"security":[{"OAuth2":["accounts:read"]}]}},"/api/v1/loans/update":{"put":{"tags":["Loan","ENTERPRISE"],"summary":"Update a loan","description":"Updates certain user modifiable properties of a loan. Please refer to the body schema to see which properties are modifiable by the loan.","operationId":"update","produces":["application/json","application/x-protobuf"],"parameters":[{"in":"body","name":"body","description":"The updated loan object","required":true,"schema":{"$ref":"#/definitions/UpdateLoanRequest"}}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Loan"}}}}},"/api/v1/monitoring/healthy":{"get":{"tags":["Monitoring"],"summary":"Health check","description":"Returns `ok` while the Tink API isn't experiencing unexpected disturbances. Returns `503 Service Unavailable` if the server is closing down and `500 Internal Server Error` for any other error.","operationId":"healthy","produces":["text/plain"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"type":"string"}}}}},"/api/v1/monitoring/ping":{"get":{"tags":["Monitoring"],"summary":"Ping","description":"Checks the current status of a Tink service and returns `pong` if the specified service is running.","operationId":"ping","produces":["text/plain"],"parameters":[{"name":"service","in":"query","description":"Forwards the ping to another service. Defaults to \"main\".","required":false,"type":"string","default":"main","enum":["aggregation","system","main"]}],"responses":{"200":{"description":"successful operation","schema":{"type":"string"}}}}},"/api/v1/notifications/query":{"post":{"tags":["Notification","ENTERPRISE"],"summary":"Query notifications","description":"Queries notifications","operationId":"queryNotifications","parameters":[{"in":"body","name":"body","description":"The query.","required":true,"schema":{"$ref":"#/definitions/NotificationQuery"}}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/NotificationQueryResponse"}}}}},"/api/v1/notifications/{id}/read":{"post":{"tags":["Notification","ENTERPRISE"],"summary":"Mark a notification as read","description":"Marks a notification as read","operationId":"read","parameters":[{"name":"id","in":"path","description":"The ID of the notification","required":true,"type":"string","x-example":"8937fa00166946cbbcbbec569c9d6e90"}],"responses":{"default":{"description":"successful operation"}}}},"/api/v1/notifications/{id}/received":{"post":{"tags":["Notification","ENTERPRISE"],"summary":"Mark a notification as received","description":"Marks a notification as received (only to be used for acknowledging encrypted notifications)","operationId":"received","parameters":[{"name":"id","in":"path","description":"The ID of the notification","required":true,"type":"string","x-example":"8937fa00166946cbbcbbec569c9d6e90"}],"responses":{"default":{"description":"successful operation"}}}},"/api/v1/payments/providers":{"get":{"tags":["Payment Request","ENTERPRISE","BETA"],"summary":"List providers","description":"Lists all providers available for a authenticated user.","operationId":"list","produces":["application/json"],"parameters":[{"name":"capability","in":"query","description":"Use the capability to only list providers with a specific capability. If no capability the provider response will not be filtered on capability.","required":false,"type":"string","enum":["UNKNOWN","TRANSFERS","EINVOICES","MORTGAGE_AGGREGATION","CHECKING_ACCOUNTS","SAVINGS_ACCOUNTS","CREDIT_CARDS","INVESTMENTS","LOANS","PAYMENTS","MORTGAGE_LOAN","IDENTITY_DATA"]},{"name":"includeTestProviders","in":"query","description":"Defaults to false. If set to `true`, Providers of `TEST` type will be added in the response list.","required":false,"type":"boolean"},{"name":"excludeNonTestProviders","in":"query","description":"Defaults to false. If set to `true`, Providers of type different than `TEST` will be removed from the response list.","required":false,"type":"boolean"},{"name":"name","in":"query","description":"Gets a specific provider from the name. If this query parameter is used, only one or no providers will be returned.","required":false,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ProviderListResponse"}}},"security":[{"OAuth2":["credentials:read"]}]}},"/api/v1/payments/providers/{market}":{"get":{"tags":["Payment Request","ENTERPRISE","BETA"],"summary":"List providers for a market","description":"Lists all providers on a specified market. Your authentication affects the list of providers you get: When authenticated, the result will only contain providers available for that user. When unauthenticated and without passing The OAuth2 Client ID header, you get all providers made available for the entire environment. If you are unauthenticated but you include The OAuth2 Client ID header, you will get providers available for the app with the given client id.","operationId":"listByMarket","produces":["application/json"],"parameters":[{"name":"X-Tink-OAuth-Client-ID","in":"header","description":"The OAuth2 Client ID","required":false,"type":"string"},{"name":"market","in":"path","description":"The ISO 3166-1 alpha-2 market code.","required":true,"type":"string"},{"name":"Accept-Language","in":"header","description":"Language to translate to.","required":false,"type":"string","x-example":"en-US"},{"name":"capability","in":"query","description":"Use the capability to only list providers with a specific capability. If no capability the provider response will not be filtered on capability.","required":false,"type":"string","enum":["UNKNOWN","TRANSFERS","EINVOICES","MORTGAGE_AGGREGATION","CHECKING_ACCOUNTS","SAVINGS_ACCOUNTS","CREDIT_CARDS","INVESTMENTS","LOANS","PAYMENTS","MORTGAGE_LOAN","IDENTITY_DATA"]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ProviderListResponse"}}},"security":[{"OAuth2":["providers:read"]}]}},"/api/v1/payments/requests":{"post":{"tags":["Payment Request","ENTERPRISE"],"summary":"Create payment request","description":"Create a payment request with the given values. Returns an id which can be used with Tink Link to create a full payment journey for an end-user.","operationId":"createPaymentRequest","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"paymentRequest","description":"The payment request to create","required":false,"schema":{"$ref":"#/definitions/Payment Request"}}],"responses":{"200":{"description":"The payment request was successfully created.","schema":{"$ref":"#/definitions/PaymentRequestResponse"}},"400":{"description":"Returns `400 Bad Request` if any of the request parameters is incorrect or missing."},"401":{"description":"Returns `401 Unauthorized` if the user is not authorized."}},"security":[{"OAuth2":["payment:write"]}]}},"/api/v1/payments/requests/all":{"post":{"tags":["Payment Request","ENTERPRISE","BETA"],"summary":"Payment Reconciliation","description":"Get all the transfers for the given filtering options. Currently only supports single day filtering. Payment Requests that have not been used for the given filtering options will return with an empty list of transfers","operationId":"getAllPaymentRequestTransfers","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"paymentRequestFilterOptions","description":"The filtering options.","required":false,"schema":{"$ref":"#/definitions/PaymentRequestFilterOptions"}}],"responses":{"200":{"description":"The list of all bank transfers for the given filtering options was successfully returned.","schema":{"$ref":"#/definitions/PaymentRequestReconciliationResponse"}},"400":{"description":"Returns `400 Bad Request` if any of the request parameters is incorrect or missing."},"401":{"description":"Returns `401 Unauthorized` if the user is not authorized."}},"security":[{"OAuth2":["payment:read"]}]}},"/api/v1/payments/requests/{id}":{"get":{"tags":["Payment Request","ENTERPRISE"],"summary":"Get payment request","description":"Returns the payment request data of the given id.","operationId":"getPaymentRequest","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The ID of the payment request","required":true,"type":"string","x-example":"05788970474211e988ddbd00e216758d"}],"responses":{"200":{"description":"The payment request data was successfully returned.","schema":{"$ref":"#/definitions/PaymentRequestResponse"}},"404":{"description":"Returns `404 Not found` if the given payment request can not be found."}},"security":[{"OAuth2":["payment:read"]}]}},"/api/v1/payments/requests/{id}/transfers":{"get":{"tags":["Payment Request","ENTERPRISE"],"summary":"Get transfers for payment request","description":"Gets a list of bank transfers for a given payment request id including transfer's latest status.","operationId":"getPaymentRequestTransfers","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The ID of the payment request","required":true,"type":"string","x-example":"05788970474211e988ddbd00e216758d"}],"responses":{"200":{"description":"The list of bank transfers for a given payment request was successfully returned.","schema":{"$ref":"#/definitions/PaymentRequestTransfersResponse"}},"401":{"description":"Returns `401 Unauthorized` if the user is not authorized."}},"security":[{"OAuth2":["payment:read"]}]}},"/api/v1/providers":{"get":{"tags":["Provider"],"summary":"List providers","description":"Lists all providers available for a authenticated user.","operationId":"list","parameters":[{"name":"capability","in":"query","description":"Use the capability to only list providers with a specific capability. If no capability the provider response will not be filtered on capability.","required":false,"type":"string","enum":["UNKNOWN","TRANSFERS","EINVOICES","MORTGAGE_AGGREGATION","CHECKING_ACCOUNTS","SAVINGS_ACCOUNTS","CREDIT_CARDS","INVESTMENTS","LOANS","PAYMENTS","MORTGAGE_LOAN","IDENTITY_DATA"]},{"name":"includeTestProviders","in":"query","description":"Defaults to false. If set to `true`, Providers of `TEST` type will be added in the response list.","required":false,"type":"boolean"},{"name":"excludeNonTestProviders","in":"query","description":"Defaults to false. If set to `true`, Providers of type different than `TEST` will be removed from the response list.","required":false,"type":"boolean"},{"name":"name","in":"query","description":"Gets a specific provider from the name. If this query parameter is used, only one or no providers will be returned.","required":false,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ProviderListResponse"}}},"security":[{"OAuth2":["credentials:read"]}]}},"/api/v1/providers/markets":{"get":{"tags":["Provider"],"summary":"List markets","description":"Lists all markets where there are providers available.","operationId":"listMarkets","parameters":[{"name":"X-Tink-OAuth-Client-ID","in":"header","description":"The OAuth2 Client ID","required":false,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ProviderMarketListResponse"}}},"security":[{"OAuth2":["providers:read"]}]}},"/api/v1/providers/suggest":{"get":{"tags":["Provider","ENTERPRISE"],"summary":"Suggest providers for user.","description":"","operationId":"suggest","parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ProviderListResponse"}}}}},"/api/v1/providers/{market}":{"get":{"tags":["Provider"],"summary":"List providers for a market","description":"Lists all providers on a specified market. Your authentication affects the list of providers you get: When authenticated, the result will only contain providers available for that user. When unauthenticated and without passing The OAuth2 Client ID header, you get all providers made available for the entire environment. If you are unauthenticated but you include The OAuth2 Client ID header, you will get providers available for the app with the given client id.","operationId":"listByMarket","parameters":[{"in":"body","name":"X-Tink-OAuth-Client-ID","description":"The OAuth2 Client ID","required":false,"schema":{"$ref":"#/definitions/OAuth2ClientRequest"}},{"name":"market","in":"path","description":"The ISO 3166-1 alpha-2 market code.","required":true,"type":"string"},{"name":"Accept-Language","in":"header","description":"Language to translate to.","required":false,"type":"string","x-example":"en-US"},{"name":"includeTestProviders","in":"query","description":"Defaults to false. If set to `true`, Providers of `TEST` type will be added in the response list.","required":false,"type":"boolean"},{"name":"excludeNonTestProviders","in":"query","description":"Defaults to false. If set to `true`, Providers of type different than `TEST` will be removed from the response list.","required":false,"type":"boolean"},{"name":"capability","in":"query","description":"Use the capability to only list providers with a specific capability. If no capability the provider response will not be filtered on capability.","required":false,"type":"string","enum":["UNKNOWN","TRANSFERS","EINVOICES","MORTGAGE_AGGREGATION","CHECKING_ACCOUNTS","SAVINGS_ACCOUNTS","CREDIT_CARDS","INVESTMENTS","LOANS","PAYMENTS","MORTGAGE_LOAN","IDENTITY_DATA"]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ProviderListResponse"}}},"security":[{"OAuth2":["providers:read"]}]}},"/api/v1/savings-goals":{"get":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"List Savings Goals","description":"List the user's Savings Goals.","operationId":"listSavingsGoals","produces":["application/json"],"parameters":[{"name":"page_token","in":"query","description":"(Optional) The first token is presented on the response of the first call if there are multiple pages.","required":false,"type":"string","x-example":"MQ=="},{"name":"page_size","in":"query","description":"(Optional) Size of the page to fetch.","required":false,"type":"integer","format":"int32","x-example":10},{"name":"status_in","in":"query","description":"Filter Savings Goals by status. If left out, it will by default, filter out ARCHIVED
Savings Goals.","required":false,"type":"array","items":{"type":"string","enum":["CREATED","IN_PROGRESS","COMPLETED","ARCHIVED"]},"collectionFormat":"multi"},{"name":"account_in","in":"query","description":"Filter the list of Savings Goals by account ids.","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","x-example":"d9f134ee2eb44846a4e02990ecc8d32e"}],"responses":{"200":{"description":"The list Savings Goals.","schema":{"$ref":"#/definitions/ListSavingsGoalsResponse"}},"401":{"description":"If the user is not authorized."}},"security":[{"OAuth2":["savings-goals:read"]}]},"post":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"Create Savings Goal","description":"Create a new Savings Goal.","operationId":"createSavingsGoal","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","description":"The Savings Goal to create","required":true,"schema":{"$ref":"#/definitions/Savings Goals"}}],"responses":{"200":{"description":"The successfully created Savings Goal.","schema":{"$ref":"#/definitions/Savings Goals"}},"400":{"description":"Request is not following the specification. See body for details."},"401":{"description":"If the user is not authorized."}},"security":[{"OAuth2":["savings-goals:write"]}]}},"/api/v1/savings-goals/accounts/{id}":{"get":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"Get Account","description":"Get Account by ID from a Savings Goals domain.","operationId":"getAccount","produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The account ID","required":true,"type":"string","x-example":"d9f134ee2eb44846a4e02990ecc8d32e"}],"responses":{"200":{"description":"The Account with actual balance and unallocated funds available for Savings Goals to allocate.","schema":{"$ref":"#/definitions/Account"}},"401":{"description":"If the user is not authorized."},"404":{"description":"Account not found."}},"security":[{"OAuth2":["savings-goals:read"]}]}},"/api/v1/savings-goals/accounts/{id}/allocations":{"get":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"List allocations by Account","description":"","operationId":"listAllocationsByAccount","produces":["application/json"],"parameters":[{"name":"page_token","in":"query","description":"(Optional) The first token is presented on the response of the first call if there are multiple pages.","required":false,"type":"string","x-example":"MQ=="},{"name":"page_size","in":"query","description":"(Optional) Size of the page to fetch.","required":false,"type":"integer","format":"int32","x-example":10},{"name":"id","in":"path","description":"The account ID","required":true,"type":"string","x-example":"d9f134ee2eb44846a4e02990ecc8d32e"}],"responses":{"200":{"description":"The list of allocations withdraw from, and deposit to, the Account.","schema":{"$ref":"#/definitions/ListAllocationsResponse"}},"401":{"description":"If the user is not authorized."},"404":{"description":"Account not found."}},"security":[{"OAuth2":["savings-goals:read"]}]}},"/api/v1/savings-goals/allocations/fund:reallocate":{"post":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"ReAllocate amount","description":"ReAllocate amount from a Savings Goal to another Savings Goal.","operationId":"reallocate","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","description":"The reallocation to make","required":true,"schema":{"$ref":"#/definitions/ReAllocateRequest"}}],"responses":{"200":{"description":"The reallocation allocation.","schema":{"$ref":"#/definitions/Allocation"}},"400":{"description":"Request is not following the specification. See body for details."},"401":{"description":"If the user is not authorized."},"404":{"description":"Savings Goal not found."}},"security":[{"OAuth2":["savings-goals:write"]}]}},"/api/v1/savings-goals/categories":{"get":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"List categories","description":"List all available categories.","operationId":"listCategories","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"The list of all available categories that can be set on a Savings Goal.","schema":{"$ref":"#/definitions/ListCategoriesResponse"}},"401":{"description":"If the user is not authorized."}},"security":[{"OAuth2":["savings-goals:read"]}]}},"/api/v1/savings-goals/{id}":{"get":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"Get Savings Goal","description":"Get Savings Goal by id.","operationId":"getSavingsGoal","produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The Savings Goal ID","required":true,"type":"string","x-example":"d9f134ee2eb44846a4e02990ecc8d32e"}],"responses":{"200":{"description":"The Savings Goal.","schema":{"$ref":"#/definitions/Savings Goals"}},"401":{"description":"If the user is not authorized."},"404":{"description":"Savings Goal not found."}},"security":[{"OAuth2":["savings-goals:read"]}]},"patch":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"Update Savings Goal","description":"Update a Savings Goal.","operationId":"updateSavingsGoal","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The Savings Goal ID","required":true,"type":"string","x-example":"d9f134ee2eb44846a4e02990ecc8d32e"},{"in":"body","name":"body","description":"The Savings Goal fields to update","required":true,"schema":{"$ref":"#/definitions/Savings Goals"}}],"responses":{"200":{"description":"The updated Savings Goal.","schema":{"$ref":"#/definitions/Savings Goals"}},"401":{"description":"If the user is not authorized."},"404":{"description":"Savings Goal not found."}},"security":[{"OAuth2":["savings-goals:write"]}]}},"/api/v1/savings-goals/{id}/allocations":{"get":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"List allocations","description":"List allocations by Savings Goal.","operationId":"listAllocations","produces":["application/json"],"parameters":[{"name":"page_token","in":"query","description":"(Optional) The first token is presented on the response of the first call if there are multiple pages.","required":false,"type":"string","x-example":"MQ=="},{"name":"page_size","in":"query","description":"(Optional) Size of the page to fetch.","required":false,"type":"integer","format":"int32","x-example":10},{"name":"id","in":"path","description":"The Savings Goal ID","required":true,"type":"string","x-example":"d9f134ee2eb44846a4e02990ecc8d32e"}],"responses":{"200":{"description":"The list of allocations.","schema":{"$ref":"#/definitions/ListAllocationsResponse"}},"401":{"description":"If the user is not authorized."},"404":{"description":"Savings Goal not found."}},"security":[{"OAuth2":["savings-goals:read"]}]}},"/api/v1/savings-goals/{id}/allocations/fund:deposit":{"post":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"Deposit to Savings Goal","description":"Deposit amount to a Savings Goal.","operationId":"depositFundAllocation","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The Savings Goal ID","required":true,"type":"string","x-example":"d9f134ee2eb44846a4e02990ecc8d32e"},{"in":"body","name":"body","description":"The amount to deposit","required":true,"schema":{"$ref":"#/definitions/AmountRequest"}}],"responses":{"200":{"description":"The deposit Allocation.","schema":{"$ref":"#/definitions/Allocation"}},"400":{"description":"Request is not following the specification. See body for details."},"401":{"description":"If the user is not authorized."},"404":{"description":"Savings Goal not found."}},"security":[{"OAuth2":["savings-goals:write"]}]}},"/api/v1/savings-goals/{id}/allocations/fund:withdraw":{"post":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"Withdraw from Savings Goal","description":"Withdraw amount from a Savings Goal.","operationId":"withdrawFundAllocation","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The Savings Goal ID","required":true,"type":"string","x-example":"d9f134ee2eb44846a4e02990ecc8d32e"},{"in":"body","name":"body","description":"The amount to withdraw","required":true,"schema":{"$ref":"#/definitions/AmountRequest"}}],"responses":{"200":{"description":"The withdraw Allocation.","schema":{"$ref":"#/definitions/Allocation"}},"400":{"description":"Request is not following the specification. See body for details."},"401":{"description":"If the user is not authorized."},"404":{"description":"Savings Goal not found."}},"security":[{"OAuth2":["savings-goals:write"]}]}},"/api/v1/savings-goals/{id}/period_progress":{"get":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"List periods progress","description":"Get a list of periodProgresses, based on Users periodMode
between the Savings Goal createTime
and targetDate
.
If no targetDate is set on the Savings Goal, it will return PeriodProgresses between createTime and the current date","operationId":"listPeriodProgresses","produces":["application/json"],"parameters":[{"name":"page_token","in":"query","description":"(Optional) The first token is presented on the response of the first call if there are multiple pages.","required":false,"type":"string","x-example":"MQ=="},{"name":"page_size","in":"query","description":"(Optional) Size of the page to fetch.","required":false,"type":"integer","format":"int32","x-example":10},{"name":"id","in":"path","description":"The Savings Goal ID","required":true,"type":"string","x-example":"d9f134ee2eb44846a4e02990ecc8d32e"}],"responses":{"200":{"description":"List of PeriodProgresses between the createTime and targetDate.","schema":{"$ref":"#/definitions/ListPeriodProgressesResponse"}},"401":{"description":"If the user is not authorized."},"404":{"description":"Savings Goal not found."}},"security":[{"OAuth2":["savings-goals:read"]}]}},"/api/v1/savings-goals/{id}:archive":{"post":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"Archive Savings Goal","description":"Archive a Savings Goal.
All funds will be withdrawn from the Savings Goal and status
changed to ARCHIVED
.","operationId":"archive","produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The Savings Goal ID","required":true,"type":"string","x-example":"d9f134ee2eb44846a4e02990ecc8d32e"}],"responses":{"200":{"description":"The Savings Goal with status changed status
to ARCHIVED
.","schema":{"$ref":"#/definitions/Savings Goals"}},"401":{"description":"If the user is not authorized."},"404":{"description":"Savings Goal not found."}},"security":[{"OAuth2":["savings-goals:write"]}]}},"/api/v1/savings-goals/{id}:complete":{"post":{"tags":["Savings Goals","ENTERPRISE","BETA"],"summary":"Complete Savings Goal","description":"Mark a Savings Goal as Completed
No more allocations can be made from or to this goal.","operationId":"complete","produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The Savings Goal ID","required":true,"type":"string","x-example":"d9f134ee2eb44846a4e02990ecc8d32e"}],"responses":{"200":{"description":"The Savings Goal with status changed status
to COMPLETED
.","schema":{"$ref":"#/definitions/Savings Goals"}},"400":{"description":"Request is not following the specification. See body for details."},"401":{"description":"If the user is not authorized."},"404":{"description":"Savings Goal not found."}},"security":[{"OAuth2":["savings-goals:write"]}]}},"/api/v1/search":{"post":{"tags":["Search"],"summary":"Query transactions","description":"Queries transactions based on multiple parameters and returns a response containing transactions and their corresponding statistics matching the query. The query contains both fixed parameters and parameters parsed from the free text `queryString`. All the commands below are typically applied per word in the query and if multiple commands are found, they are concatenated with an `AND` operation (`OR` does not exist).\n\n### Query string commands\n\nType | Description | Keywords\n---- | ----------------- | -----------------\nTags | Searches specifically for transactions with tags.| Words starting with '#'.\nAmount Span | Searches for transactions within the given amount span. Keywords here depend on the locality of the user. | `over`, `under`, `more than`, `less than`, `around`\nDate/Time Span | Searches for transactions within the given date/time span. Keywords here depend on the locality of the user. | `weekdays`, `weekends`, `today`, `yesterday`, `this week/month/year`, `last week/month/year`, `week #`.\nCategory | Searches specifically for transactions with the specified category. Keywords here depend on the locality of the user. | `Restaurant`, `Bar`\n","operationId":"searchQuery","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"in":"body","name":"body","description":"The search query.","required":true,"schema":{"$ref":"#/definitions/SearchQuery"}}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/SearchResponse"}},"400":{"description":"The payload does not pass validation."}},"security":[{"OAuth2":["transactions:read"]}]}},"/api/v1/statistics/query":{"post":{"tags":["Statistics"],"summary":"Query statistics","description":"By querying the statistics endpoint, an API customer can select the specific types of data to access. The query should be posted in the request body and you can specify any of the properties available to filter the result set. Defining multiple properties will yield an `AND` operation, and specifying multiple values of a property will yield an `OR` operation.\nNote: Monthly statistics will be calculated only with the resolution that the user has in the user settings (MONTHLY, MONTHLY_ADJUSTED), and not for both.\nNote: `YEARLY` resolution is aggregated based on the resolution that the user has in the user settings. With `MONTHLY` it will be the calendar year and with `MONTHLY_ADJUSTED` it will be adjusted based on the users' `periodbreakday`\n\n### Statistics types\n\nType | Value of description field | Description | Available resolutions\n---- | ----------------- | ----------------- | -----------------\n`balances-by-account` | Identifier of an account | Balances over time by each account | `MONTHLY` `MONTHLY_ADJUSTED`\n`balances-by-account-type-group` | The type group name | Balances over time by each account group | `MONTHLY` `MONTHLY_ADJUSTED`\n`expenses-by-category` | Identifier of a category | Sum of expenses per period in each category | `MONTHLY` `MONTHLY_ADJUSTED` `YEARLY` `DAILY` `WEEKLY`\n`expenses-by-primary-category` | Identifier of a primary category | Combined sum of all expenses of sub-categories per period in each primary category | `MONTHLY` `MONTHLY_ADJUSTED` `YEARLY` `DAILY` `WEEKLY`\n`expenses-by-category/by-count` | Identifier of a category | Count of expenses per period in each category | `MONTHLY` `MONTHLY_ADJUSTED` `DAILY` `WEEKLY`\n`expenses-by-primary-category/by-count` | Identifier of a primary category | Combined count of all expenses of sub-catetories per period in each primary category | `MONTHLY` `MONTHLY_ADJUSTED` `DAILY` `WEEKLY`\n`income-by-category` | Identifier of a category | Sum of Incomes per period in each category | `MONTHLY` `MONTHLY_ADJUSTED`\n`income-and-expenses` | | Sum of transactions per period for category type | `MONTHLY` `MONTHLY_ADJUSTED` `YEARLY`\n`left-to-spend` | The date | Takes income minus expenses over time | `MONTHLY` `MONTHLY_ADJUSTED`\n`left-to-spend-average` | The date | Average income minus expenses over 6 months | `MONTHLY` `MONTHLY_ADJUSTED`\n`incoming-transfers-by-category` | Identifier of a category | Sum of incoming transfers per period in each category Note: This feature is not enabled by default. Speak to your account manager for more information. | `YEARLY` `MONTHLY` `MONTHLY_ADJUSTED`\n`incoming-transfers-by-category/by-count` | Identifier of a category | Count of incoming transfers per period in each category Note: This feature is not enabled by default. Speak to your account manager for more information. | `YEARLY` `MONTHLY` `MONTHLY_ADJUSTED`\n`outgoing-transfers-by-category` | Identifier of a category | Sum of outgoing transfers per period in each category Note: This feature is not enabled by default. Speak to your account manager for more information. | `YEARLY` `MONTHLY` `MONTHLY_ADJUSTED`\n`outgoing-transfers-by-category/by-count` | Identifier of a category | Count of outgoing transfers per period in each category Note: This feature is not enabled by default. Speak to your account manager for more information. | `YEARLY` `MONTHLY` `MONTHLY_ADJUSTED`\n","operationId":"query","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","description":"The query object","required":true,"schema":{"$ref":"#/definitions/StatisticQuery"}}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Statistics"}}},"400":{"description":"The payload does not pass validation."}},"security":[{"OAuth2":["statistics:read"]}]}},"/api/v1/transactions":{"put":{"tags":["Transaction","ENTERPRISE"],"summary":"Update a list of transactions","description":"Updates mutable properties of a list of transactions. The following properties are possible to update:amount, categoryId, date, description.","operationId":"updateTransactions","consumes":["application/json"],"parameters":[{"in":"body","name":"body","description":"The transactions to be updated","required":true,"schema":{"type":"array","items":{"$ref":"#/definitions/Transaction"}}}],"responses":{"default":{"description":"successful operation"}},"security":[{"OAuth2":["transactions:write"]}]}},"/api/v1/transactions/categorize-multiple":{"put":{"tags":["Transaction","ENTERPRISE"],"summary":"Change category of transactions","description":"Changes category of the supplied list of transactions to the supplied category","operationId":"categorize","consumes":["application/json"],"parameters":[{"in":"body","name":"body","description":"Object holding a list of new categories and the transactions to be categorized","required":true,"schema":{"$ref":"#/definitions/CategorizeTransactionsListRequest"}}],"responses":{"204":{"description":"Successful operation."},"400":{"description":"The payload does not pass validation."}},"security":[{"OAuth2":["transactions:categorize"]}]}},"/api/v1/transactions/suggest":{"get":{"tags":["Transaction","ENTERPRISE"],"summary":"Get categorization clusters","description":"Returns an object holding clusters of transactions to be categorized and possible categorization level improvement","operationId":"suggest","produces":["application/json"],"parameters":[{"name":"numberOfClusters","in":"query","description":"Max number of clusters returned","required":false,"type":"integer","format":"int32","x-example":7},{"name":"evaluateEverything","in":"query","required":false,"type":"boolean"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/SuggestTransactionsResponse"}}},"security":[{"OAuth2":["transactions:read"]}]}},"/api/v1/transactions/{id}":{"get":{"tags":["Transaction"],"summary":"Get one transaction","description":"Returns a transaction matching the requested id","operationId":"getTransaction","produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The ID of the transaction","required":true,"type":"string","x-example":"8937fa00166946cbbcbbec569c9d6e90"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Transaction"}},"404":{"description":"Transaction not found."}},"security":[{"OAuth2":["transactions:read"]}]},"put":{"tags":["Transaction","ENTERPRISE"],"summary":"Update a transaction","description":"Updates mutable properties of a list of transactions. The following properties are possible to update:amount, categoryId, date, description.","operationId":"updateTransaction","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"name":"id","in":"path","description":"The ID of the transaction","required":true,"type":"string","x-example":"8937fa00166946cbbcbbec569c9d6e90"},{"in":"body","name":"body","description":"The transaction to be updated","required":true,"schema":{"$ref":"#/definitions/Transaction"}}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"The payload does not pass validation."},"404":{"description":"Transaction not found."}},"security":[{"OAuth2":["transactions:write"]}]}},"/api/v1/transactions/{id}/link/suggest":{"get":{"tags":["Transaction","BETA","ENTERPRISE"],"summary":"Get counterpart suggestions","description":"Returns suggestions for potential counterpart expenses for a reimbursement.","operationId":"linkSuggest","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"name":"id","in":"path","description":"The ID of the transaction to get suggestions for","required":true,"type":"string","x-example":"8937fa00166946cbbcbbec569c9d6e90"},{"name":"limit","in":"query","description":"Max number of suggestions returned.","required":false,"type":"integer","default":5,"format":"int32","x-example":5}],"responses":{"200":{"description":"The suggestions were successfully returned.","schema":{"$ref":"#/definitions/TransactionLinkSuggestionResponse"}},"400":{"description":"The transaction id or suggest limit was invalid."},"404":{"description":"The transaction was not found."}}}},"/api/v1/transactions/{id}/link/{counterpartTransactionId}":{"post":{"tags":["Transaction","BETA","ENTERPRISE"],"summary":"Link transactions","description":"Link two transactions, creating a transaction part for each transaction and netting out the amounts. The transactions are required to have different signs (i.e. one income and one expense). If one transaction is -300 and the other is +100, the common disposable amount is 100.","operationId":"link","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"name":"id","in":"path","description":"The ID of the first transaction to link.","required":true,"type":"string","x-example":"8937fa00166946cbbcbbec569c9d6e90"},{"name":"counterpartTransactionId","in":"path","description":"The ID of the other transaction (the counterpart) to link.","required":true,"type":"string","x-example":"a41ad81ca470cb0bb02d6e8d854a9"},{"in":"body","name":"body","description":"Object holding the required amount for transaction linking","required":true,"schema":{"$ref":"#/definitions/LinkTransactionsRequest"}}],"responses":{"200":{"description":"The transactions were successfully linked and returned.","schema":{"$ref":"#/definitions/LinkTransactionsResponse"}},"400":{"description":"The transaction ids were invalid."},"404":{"description":"The transaction or the counterpart transaction was not found."},"409":{"description":"The transactions were already linked."},"412":{"description":"The transactions had the same signum, the part amount had a signum different from the transaction or the part amount is bigger than the dispensable amount."}}}},"/api/v1/transactions/{id}/part/{partId}":{"put":{"tags":["Transaction","BETA","ENTERPRISE"],"summary":"Update transaction Link","description":"Updates an transaction part amount and it's counterpart amount.","operationId":"updateLink","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"name":"id","in":"path","description":"The ID of the transaction to which the part belongs to.","required":true,"type":"string","x-example":"8937fa00166946cbbcbbec569c9d6e90"},{"name":"partId","in":"path","description":"The part ID to update.","required":true,"type":"string","x-example":"c3b543d4817c4c08a96da789282f0501"},{"in":"body","name":"body","description":"Object holding the required amount for transaction linking","required":true,"schema":{"$ref":"#/definitions/UpdateTransactionLinkRequest"}}],"responses":{"200":{"description":"The transaction part and counter part were successfully updated and returned.","schema":{"$ref":"#/definitions/LinkTransactionsResponse"}},"400":{"description":"The transaction or part id were invalid."},"404":{"description":"The transaction or the transaction part was not found."},"412":{"description":"The transactions had the same signum, the part amount had a signum different from the transaction or the part amount is bigger than the dispensable amount."},"500":{"description":"The transaction part failed to update."}}},"delete":{"tags":["Transaction","BETA","ENTERPRISE"],"summary":"Delete transaction part","description":"If the part is linked to another transaction, the bilateral link is removed as well (i.e. the counterpart will be removed too, if found).","operationId":"deletePart","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"name":"id","in":"path","description":"The ID of the transaction to which the part belongs to.","required":true,"type":"string","x-example":"8937fa00166946cbbcbbec569c9d6e90"},{"name":"partId","in":"path","description":"The part ID to delete.","required":true,"type":"string","x-example":"c3b543d4817c4c08a96da789282f0501"}],"responses":{"200":{"description":"The transaction part was successfully deleted and returned.","schema":{"$ref":"#/definitions/DeleteTransactionPartResponse"}},"400":{"description":"The transaction id was invalid."},"404":{"description":"The transaction or the transaction part was not found."}}}},"/api/v1/transactions/{id}/similar":{"get":{"tags":["Transaction"],"summary":"Get similar transactions","description":"Returns an object holding a list of transactions similar to the supplied transaction based on description and a list of statistics summarizing these transactions","operationId":"similar","produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"The ID of the transaction","required":true,"type":"string","x-example":"8937fa00166946cbbcbbec569c9d6e90"},{"name":"categoryId","in":"query","description":"Return similar of this category","required":false,"type":"string","x-example":"c3b543d4817c4c08a96da789282f0501"},{"name":"includeSelf","in":"query","description":"Include the supplied transaction in response","required":false,"type":"boolean","x-example":"false"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/SimilarTransactionsResponse"}},"404":{"description":"Transaction not found."}},"security":[{"OAuth2":["transactions:read"]}]}},"/api/v1/transfer":{"post":{"tags":["Transfer","ENTERPRISE"],"summary":"Create a new transfer","description":"Creates a new transfer, returning a `SignableOperation` object.","operationId":"createTransfer","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"in":"body","name":"transfer","description":"The transfer object to create.","required":false,"schema":{"$ref":"#/definitions/Transfer"}}],"responses":{"200":{"description":"The transfer was successfully created. Note that it doesn't mean the transfer is successfully initialized. Check the status field of the response.","schema":{"$ref":"#/definitions/SignableOperation"}},"400":{"description":"The provided payload is empty."},"404":{"description":"The credentials bound to the user is not connected to any Provider."},"451":{"description":"The request cannot be fulfilled because of legal/contractual reasons."}},"security":[{"OAuth2":["transfer:execute"]}]}},"/api/v1/transfer/accounts":{"get":{"tags":["Transfer","ENTERPRISE"],"summary":"Get bank accounts","description":"List bank accounts that can make payments. Note that if you are using a new account that has no saved recipients, it won't be shown. You need to add a recipient via your internet bank first.","operationId":"getSourceAccounts","produces":["application/json","application/x-protobuf"],"parameters":[{"name":"destination","in":"query","description":"Destinations to whom the accounts should be able to initiate transfers. Example: `/api/v1/transfer/accounts?destination[]=se-bg://9008004&destination[]=se-bg://8007003`.","required":false,"type":"array","items":{"type":"string","format":"uri"},"collectionFormat":"multi"}],"responses":{"200":{"description":"The bank accounts were successfully returned.","schema":{"$ref":"#/definitions/AccountListResponse"}},"403":{"description":"Not allowed to get transfer accounts."}},"security":[{"OAuth2":["transfer:read"]}]}},"/api/v1/transfer/source-destination-validation":{"get":{"tags":["Transfer","ENTERPRISE"],"summary":"Validates source account against destination patterns","description":"This endpoint returns \"canTransfer\" : true if a user can transfer money from the given source account to the given destination account. It will return \"canTransfer\" : false otherwise. Request example : `/api/v1/transfer/source-destination-validation?source=se://83279234947790&destination=se://33001984`.","operationId":"isSourceDestinationValid","produces":["application/json","application/x-protobuf"],"parameters":[{"name":"source","in":"query","description":"The transfer's source account.","required":true,"type":"string"},{"name":"destination","in":"query","description":"The transfer's destination account","required":true,"type":"string"}],"responses":{"200":{"description":"The source and destination accounts were successfully verified.","schema":{"$ref":"#/definitions/SourceDestinationValidation"}},"400":{"description":"The provided payload is empty."},"403":{"description":"Not allowed to call this endpoint."},"404":{"description":"The given source account does not belong to the user"}},"security":[{"OAuth2":["transfer:read"]}]}},"/api/v1/transfer/{id}/data":{"get":{"tags":["Transfer","ENTERPRISE"],"summary":"Fetch data about a transfer","description":"Fetches data about the current status of a given transfer.","operationId":"getTransferData","produces":["application/json","application/x-protobuf"],"parameters":[{"name":"id","in":"path","description":"The transfer's id.","required":true,"type":"string"}],"responses":{"200":{"description":"The transfer data was successfully returned.","schema":{"$ref":"#/definitions/TransferResponse"}},"400":{"description":"The input id is not a valid identifier."},"404":{"description":"A transfer with given id does not exist."}},"security":[{"OAuth2":["transfer:read"]}]}},"/api/v1/transfer/{id}/status":{"get":{"tags":["Transfer","ENTERPRISE"],"summary":"Signing status of Transfer","description":"Get the SignableOperation object of the transfer.","operationId":"getSignableOperation","produces":["application/json","application/x-protobuf"],"parameters":[{"name":"id","in":"path","description":"The ID of the Transfer","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/SignableOperation"}}},"security":[{"OAuth2":["transfer:read"]}]}},"/api/v1/user":{"get":{"tags":["User"],"summary":"Get user","description":"Returns the authenticated user.","operationId":"getUser","produces":["application/json","application/x-protobuf"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/User"}}},"security":[{"OAuth2":["user:read"]}]},"put":{"tags":["User","ENTERPRISE"],"summary":"Update the user","description":"Updates certain user modifiable properties of a user. Please refer to the body schema to see which properties are modifiable by the user.","operationId":"updateUser","produces":["application/json","application/x-protobuf"],"parameters":[{"in":"body","name":"body","description":"The updated user object","required":true,"schema":{"$ref":"#/definitions/User"}}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/User"}}},"security":[{"OAuth2":["user:write"]}]}},"/api/v1/user-data-control/data-exports":{"get":{"tags":["User Data Control","ENTERPRISE"],"summary":"List data export requests","description":"Returns a list with all data export requests for a given user.","operationId":"listExports","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/DataExportRequestListResponse"}}},"security":[{"OAuth2":["data-exports:read"]}]},"post":{"tags":["User Data Control","ENTERPRISE"],"summary":"Create data export request","description":"Creates a data export request for a given user.","operationId":"createExport","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/DataExportRequest"}}},"security":[{"OAuth2":["data-exports:write"]}]}},"/api/v1/user-data-control/data-exports/{id}":{"get":{"tags":["User Data Control","ENTERPRISE"],"summary":"Get data export request","description":"Returns a data export request for a given user and request id.","operationId":"getDataExportRequest","produces":["application/json"],"parameters":[{"name":"id","in":"path","description":"Data export request ID","required":true,"type":"string"}],"responses":{"default":{"description":"successful operation"}},"security":[{"OAuth2":["data-exports:read"]}]}},"/api/v1/user-data-control/data-exports/{id}/download":{"get":{"tags":["User Data Control","ENTERPRISE"],"summary":"Download data export","description":"Returns a file to download for a user. Provide a data export request id in the path, and specify the accept type to `Accept: text/plain` in the header.","operationId":"download","produces":["text/plain"],"parameters":[{"name":"id","in":"path","description":"Corresponding data export request ID","required":true,"type":"string"}],"responses":{"default":{"description":"successful operation"}},"security":[{"OAuth2":["data-exports:read"]}]}},"/api/v1/user-data-control/login-methods":{"get":{"tags":["User Data Control","ENTERPRISE"],"summary":"List market login methods","description":"Returns a list of markets along with their authentication methods.","operationId":"listLoginMethods","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/GdprLoginMethodListResponse"}}}}},"/api/v1/user/create":{"post":{"tags":["User","ENTERPRISE"],"summary":"Create a new user","description":"Returns the ID of the created user.","operationId":"createUser","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"in":"body","name":"body","description":"Configuration for new user.","required":false,"schema":{"$ref":"#/definitions/CreateUserRequest"}}],"responses":{"200":{"description":"The user was successfully created and returned.","schema":{"$ref":"#/definitions/CreateUserResponse"}},"400":{"description":"The input market and/or locale was invalid."},"409":{"description":"User with the same external id already exists."}},"security":[{"OAuth2":["user:create"]}]}},"/api/v1/user/delete":{"post":{"tags":["User","ENTERPRISE"],"summary":"Delete user","description":"Completely deletes the currently authenticated user and its data.","operationId":"delete","consumes":["application/json","application/x-protobuf"],"parameters":[],"responses":{"default":{"description":"successful operation"}},"security":[{"OAuth2":["user:delete"]}]}},"/api/v1/user/logout":{"post":{"tags":["User","ENTERPRISE"],"summary":"Logout a user","description":"","operationId":"logout","consumes":["application/json","application/x-protobuf"],"parameters":[{"name":"autologout","in":"query","description":"boolean","required":false,"type":"boolean","x-example":"false"}],"responses":{"default":{"description":"successful operation"}}}},"/api/v1/user/markets/list":{"get":{"tags":["User","ENTERPRISE"],"summary":"List markets","description":"Returns an object with a list of all available markets in which a user could register with.","operationId":"getMarketList","produces":["application/json","application/x-protobuf"],"parameters":[{"name":"desired","in":"query","description":"The ISO 3166-1 alpha-2 country code of the desired market","required":false,"type":"string","x-example":"FI"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/MarketListResponse"}}}}},"/api/v1/user/profile":{"get":{"tags":["User"],"summary":"Get user profile","description":"Returns the authenticated user's profile.","operationId":"getProfile","produces":["application/json","application/x-protobuf"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/UserProfile"}}},"security":[{"OAuth2":["user:read"]}]},"put":{"tags":["User","ENTERPRISE"],"summary":"Update the user profile","description":"Updates certain user modifiable properties of a user's profile. Please refer to the body schema to see which properties are modifiable by the user.","operationId":"updateProfile","consumes":["application/json","application/x-protobuf"],"produces":["application/json","application/x-protobuf"],"parameters":[{"in":"body","name":"body","description":"The updated user profile object","required":true,"schema":{"$ref":"#/definitions/UserProfile"}}],"responses":{"200":{"description":"The user profile was successfully updated and returned.","schema":{"$ref":"#/definitions/UserProfile"}},"400":{"description":"The provided user profile contains invalid data. Make sure the data formats are valid."}},"security":[{"OAuth2":["user:write"]}]}},"/api/v1/user/psd2flag":{"put":{"tags":["User","ENTERPRISE"],"summary":"Flag user for test PSD2-migration","description":"Flag the currently authenticated user as ready for test PSD2-migration","operationId":"flagUserReadyForTestPSD2MigrationFlow","produces":["application/json"],"parameters":[],"responses":{"204":{"description":"The user was successfully flagged as ready for test PSD2-migration."}}}},"/api/v1/version":{"get":{"tags":["Version"],"summary":"Get the version","description":"Gets the current version (build) of the application","operationId":"getVersion","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Version"}}}}}},"definitions":{"AccountListResponse":{"type":"object","properties":{"accounts":{"type":"array","description":"A list of accounts","items":{"$ref":"#/definitions/Account"}}}},"Account":{"type":"object","required":["accountExclusion","accountNumber","balance","credentialsId","excluded","favored","id","name","ownership","type"],"properties":{"accountNumber":{"type":"string","example":"1234-123456789","description":"The account number of the account. The format of the account numbers may differ between account types and banks. This property can be updated in a update account request."},"balance":{"type":"number","format":"double","example":34567.5,"description":"The current balance of the account. The definition of the balance property differs between account types. `SAVINGS`: the balance represent the actual amount of cash in the account, `INVESTMENT`: the balance represents the value of the investments connected to this accounts including any available cash, `MORTGAGE`: the balance represents the loan debt outstanding from this account, `CREDIT_CARD: the balance represent the outstanding balance on the account, it does not include any available credit or purchasing power the user has with the credit provider."},"credentialsId":{"type":"string","example":"6e68cc6287704273984567b3300c5822","description":"The internal identifier of the credentials that the account belongs to."},"excluded":{"type":"boolean","example":false,"description":"Indicates if the user has excluded the account. Categorization and PFM Features are excluded, and transactions belonging to this account are not searchable. This property can be updated in a update account request.","default":false},"favored":{"type":"boolean","example":false,"description":"Indicates if the user has favored the account. This property can be updated in a update account request.","default":false},"id":{"type":"string","example":"a6bb87e57a8c4dd4874b241471a2b9e8","description":"The internal identifier of account."},"name":{"type":"string","example":"My account","description":"The display name of the account. This property can be updated in a update account request."},"ownership":{"type":"number","format":"double","example":0.5,"description":"The ownership ratio indicating how much of the account is owned by the user. The ownership determine the percentage of the amounts on transactions belonging to this account, that should be attributed to the user when statistics are calculated. This property has a default value, and it can only be updated by you in a update account request."},"type":{"type":"string","description":"The type of the account. This property can be updated in a update account request.","enum":["CHECKING","SAVINGS","INVESTMENT","MORTGAGE","CREDIT_CARD","LOAN","PENSION","OTHER","EXTERNAL"]},"identifiers":{"type":"string","example":"[\"se://9999111111111111\"]","description":"All possible ways to uniquely identify this `Account`. An se-identifier is built up like: `se://{clearingnumber}{accountnumber}`."},"transferDestinations":{"type":"array","description":"The destinations this Account can transfer money to, be that payment or bank transfer recipients. This field is only populated if account data is requested via GET /transfer/accounts.","items":{"$ref":"#/definitions/TransferDestination"}},"details":{"description":"Details contains information only applicable for accounts of the types loans and mortgages. All banks do not offer detail information about their loan and mortgages therefore will details not be present on all accounts of the types loan and mortgages.","$ref":"#/definitions/AccountDetails"},"holderName":{"type":"string","example":"Thomas Alan Waits","description":"The name of the account holder"},"closed":{"type":"boolean","description":"A closed account indicates that it was no longer available from the connected financial institution, most likely due to it having been closed by the user.","default":false},"flags":{"type":"string","example":"[\"MANDATE\"]","description":"A list of flags specifying attributes on an account.","enum":["BUSINESS","MANDATE"]},"accountExclusion":{"type":"string","description":"Indicates features this account should be excluded from. Possible values are: `NONE`: No features are excluded from this account, `PFM_DATA`: Personal Finance Management Features, like statistics and activities are excluded, `PFM_AND_SEARCH`: Personal Finance Management Features are excluded, and transactions belonging to this account are not searchable. This is the equivalent of the, now deprecated, boolean flag 'excluded', `AGGREGATION`: No data will be aggregated for this account and, all data associated with the account is removed (except account name and account number). This property can be updated in a update account request.","enum":["AGGREGATION","PFM_AND_SEARCH","PFM_DATA","NONE"]},"currencyDenominatedBalance":{"description":"The current balance of the account. The definition of the balance property differ between account types. `SAVINGS`: the balance represent the actual amount of cash in the account, `INVESTMENT`: the balance represents the value of the investments connected to this accounts including any available cash, `MORTGAGE`: the balance represents the loan debt outstanding from this account, `CREDIT_CARD`: the balance represent the outstanding balance on the account, it does not include any available credit or purchasing power the user has with the credit provider. The balance is represented as a scale and unscaled value together with the ISO 4217 currency code of the amount.","$ref":"#/definitions/CurrencyDenominatedAmount"},"refreshed":{"type":"string","format":"date-time","example":"1455740874875","description":"Timestamp of when the account was last refreshed."},"financialInstitutionId":{"type":"string","example":"6e68cc6287704273984567b3300c5822","description":"A unique identifier to group accounts belonging the same financial institution. Available for aggregated accounts only."}},"description":"An account could either be a debit account, a credit card, a loan or mortgage."},"CategorizeTransactionsListRequest":{"type":"object","required":["categorizationList"],"properties":{"categorizationList":{"type":"array","description":"A list of new categories and the transactions' IDs","items":{"$ref":"#/definitions/CategorizeTransactionsRequest"}}}},"UpdateTransactionLinkRequest":{"type":"object","properties":{"amount":{"type":"number","format":"double","example":-90.0,"description":"The amount of the transaction part. Must be same sign as the transaction. If not specified the common disposable amount will be used."}}},"DeviceListResponse":{"type":"object","required":["devices"],"properties":{"devices":{"type":"array","description":"The list of devices","items":{"$ref":"#/definitions/Device"}}}},"TransactionPart":{"type":"object","required":["amount","categoryId","counterpartDescription","counterpartId","counterpartTransactionAmount","counterpartTransactionId","date","id","lastModified"],"properties":{"date":{"type":"string","format":"date-time","example":"1455740874875","description":"The date the transaction part was created."},"id":{"type":"string","example":"7303ff128531463bbed358bbf9e23f31","description":"The ID of the transaction part."},"lastModified":{"type":"string","format":"date-time","example":"1455740874875","description":"The date the transaction part was last modified."},"categoryId":{"type":"string","example":"0e1bade6a7e3459eb794f27b7ba4cea0","description":"The category of the transaction part."},"counterpartId":{"type":"string","example":"79c6c9c27d6e42489e888e08d27205a1","description":"The id of the counterpart. The counterpart is a transaction part in another transaction"},"counterpartTransactionId":{"type":"string","example":"d030a7b0840547428aa2fd07026e9a77","description":"The ID of the transaction containing the counterpart."},"counterpartDescription":{"type":"string","example":"Stadium Sergelg Stockholm","description":"The description of the transaction containing the counterpart."},"amount":{"type":"number","format":"double","example":34.5,"description":"The amount of the transaction part."},"counterpartTransactionAmount":{"type":"number","format":"double","example":10.0,"description":"The amount of the transaction containing the counterpart."}}},"LoanEventsResponse":{"type":"object","properties":{"loanEvents":{"type":"array","items":{"$ref":"#/definitions/LoanEvent"}}}},"ClientMessage":{"type":"object","properties":{"locale":{"type":"string"},"message":{"type":"string"}}},"PaymentDestinationRequest":{"type":"object","required":["accountNumber","type"],"properties":{"accountNumber":{"type":"string","example":"4578-3748","description":"The payee's account number."},"type":{"type":"string","example":"se-pg","description":"The payee's account type","enum":["se","se-bg","se-pg","iban","sort-code"]},"reference":{"type":"string","example":"3245928392092","description":"The message displayed on the payee's transaction. Certain destination account types require it. Maximum character count of 30 (Note that some banks might have a more strict limit)."}}},"FollowItemListResponse":{"type":"object","properties":{"followItems":{"type":"array","description":"A list of follow items.","items":{"$ref":"#/definitions/Follow Item"}}}},"Beneficiary":{"type":"object","required":["accountNumber","accountNumberType","name","ownerAccountId"],"properties":{"ownerAccountId":{"type":"string","example":"bb1ca3b3080e45da97847c493914ad82","description":"The internal identifier of the account that this beneficiary belongs to."},"name":{"type":"string","example":"Example Inc.","description":"The name chosen by the user for this beneficiary."},"accountNumberType":{"type":"string","example":"iban","description":"The type of the `accountNumber` that this beneficiary has.","enum":["se","se-bg","se-pg","iban","sort-code"]},"accountNumber":{"type":"string","example":"FR7630006000011234567890189","description":"The account number for the beneficiary. The structure of this field depends on the `accountNumberType`."}},"description":"A beneficiary is a payment or transfer destination account which has been authorized by the bank. Each beneficiary belongs to an account, which means that the given account can send money to that beneficiary. However, different banks treat beneficiaries in different ways. Some treat them as fully trusted, meaning no signing at all is required when transferring money to the beneficiary. Other banks treat them more as address books of registered recipients."},"RecurringPeriodicity":{"type":"object","required":["periodUnit"],"properties":{"periodUnit":{"type":"string","example":"WEEK","description":"Recurring periodicity unit.","enum":["WEEK","MONTH","YEAR"]}}},"ListCategoriesResponse":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"string"}}}},"PaymentRequestFilterOptions":{"type":"object","required":["date"],"properties":{"date":{"type":"string","example":"2019-10-25","description":"A ISO 8601 formatted date (yyyy-MM-dd) for which you want to fetch transfers from."}}},"Statistics":{"type":"object","required":["description","period","resolution","type","userId","value"],"properties":{"description":{"type":"string","example":"fe9e199c2ca94c12baf1f3eb4a4122de","description":"Identifier of the data the statistic represents."},"payload":{"type":"string","example":"690667930d7e4f2ba0d9aa5f7d2a1941","description":"Secondary identifier of the data the statistic represent."},"period":{"type":"string","example":"2014-12-15","description":"The statistic's period, depends on its resolution. One of: year, month, week or day. Format: `2014`, `2014-02`, `2014:45` or `2014-02-12`."},"resolution":{"type":"string","example":"DAILY","description":"Resolution for the statistics.","enum":["DAILY","MONTHLY","MONTHLY_ADJUSTED","YEARLY","ALL","WEEKLY"]},"type":{"type":"string","example":"expenses-by-category","description":"The statistic's type."},"userId":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The internal identifier of the user that the statistics belongs to."},"value":{"type":"number","format":"double","example":1298.5,"description":"The value of the statistics for this type, period, and description."}},"description":"Statistics contain derived data from different types of information which is available for a user. This calculated data is stored for a certain period of time with a certain time resolution, and could be based on information such as expenses, incomes or balances. As an example, statistics could be a time series of travel expenses calculated monthly for the last six months."},"BudgetTransactionsResponse":{"type":"object","properties":{"transactions":{"type":"array","description":"List of transactions for a budget.","items":{"$ref":"#/definitions/BudgetTransaction"}}}},"Currency":{"type":"object","required":["code","factor","prefixed","symbol"],"properties":{"code":{"type":"string","example":"SEK","description":"The ISO 4217 code of the currency."},"factor":{"type":"number","format":"double","example":10.0,"description":"An approximate currency conversion factor to inversely scale triggers to the EUR currency."},"prefixed":{"type":"boolean","description":"Indicates that the currency symbol should prefix the amount.","default":false},"symbol":{"type":"string","example":"kr","description":"The symbol of the currency."}}},"PaymentRequestReconciliationData":{"type":"object","required":["amount","currency","id","transferEvents"],"properties":{"id":{"type":"string","format":"uuid","example":"1e09bab571d84b1cbe8d49c0be9c030f","description":"The payment request unique identifier."},"amount":{"type":"number","example":20.0,"description":"actual amount for the payment request."},"currency":{"type":"string","example":"GBP","description":"The currency code used in the payment request."},"transferEvents":{"type":"array","description":"The list of transfer events.","items":{"$ref":"#/definitions/TransferResponse"}}}},"CreateUserResponse":{"type":"object","required":["user_id"],"properties":{"user_id":{"type":"string","example":"6e68cc6287704273984567b3300c5823","description":"The user ID of the created user."}}},"CreateOneOffBudgetRequest":{"type":"object","required":["amount","filter","name","oneOffPeriodicity"],"properties":{"name":{"type":"string","example":"Coffee budget","description":"The name of the Budget."},"amount":{"description":"The target amount for the budget. The currency must match the user profile currency setting.","$ref":"#/definitions/CurrencyDenominatedAmount"},"filter":{"description":"The filter defining the budget and which transactions that is included in it. The configured fields of the filter are applied as logical and operator (intersection).","$ref":"#/definitions/Filter"},"oneOffPeriodicity":{"description":"Periodicity configuration for the one off budget.","$ref":"#/definitions/OneOffPeriodicity"}}},"BudgetFilterTag":{"type":"object","properties":{"key":{"type":"string","example":"coffee","description":"The tag key."}}},"IdentityListResponse":{"type":"object","properties":{"availableIdentityData":{"type":"array","description":"A list of all available identity data for the user","items":{"$ref":"#/definitions/Identity"}}}},"PaymentRequestResponse":{"type":"object","required":["amount","currency","destinations","id","market","recipientName"],"properties":{"id":{"type":"string","example":"18408f41163f4748b87da9b9a68b6df8","description":"The unique identifier for the payment request."},"amount":{"type":"number","example":10.0,"description":"The payment amount."},"currency":{"type":"string","example":"SEK","description":"The currency of the payment amount."},"market":{"type":"string","example":"SE","description":"The primary market of the payee. The market is usually the country code (in ISO 3166-1 alpha-2 format)."},"sourceMessage":{"type":"string","example":"Payment for Gym Equipment","description":"The transaction description on the payers account for the payment."},"recipientName":{"type":"string","example":"Test AB","description":"The recipient name shown to the payer on signing payments. Maximum character count of 30."},"executionDate":{"type":"string","example":"2019-11-20","description":"The date defining when the payment will be executed by the bank. If no execution date is given, it will be executed as soon as possible. The date follows the ISO 8601 with format yyyy-MM-dd. Note: This feature is currently only available on the Swedish market."},"destinations":{"type":"array","example":"{\"accountNumber\": \"33008808080808\", \"type\": \"se\", \"destinationMessage\": \"3245928392092\"}","description":"The destinations object.","items":{"$ref":"#/definitions/PaymentDestinationRequest"}}}},"Device":{"type":"object","required":["appId","deviceName","deviceToken","notificationToken","type","userAgent"],"properties":{"created":{"type":"string","format":"date-time","example":"1455740874875","description":"Date when the device was first created"},"notificationToken":{"type":"string","example":"LRJ2bFzHA1jUIkwayDqxteNsWY3udejkEe9UwRMt12E_R5i...","description":"The APN or GCM token"},"type":{"type":"string","example":"android","description":"The operating system of the device"},"updated":{"type":"string","format":"date-time","example":"1455740874875","description":"Date when the device was last updated"},"publicKey":{"type":"string","example":"MIIC7DCCAdQCAQEwDQYJKoZIhvcNAQELBQAwPDE6MDgGA1UEAwwxTXlTUUxfU2Vy...","description":"Public key for sending encrypted push notifications to the device"},"appId":{"type":"string","example":"se.tink.android","description":"The app ID of the app that registers the device"},"deviceToken":{"type":"string","example":"51ed6c20-dad6-4270-a4f2-56648f442047","description":"A device token, should be unique per device and app"},"userAgent":{"type":"string","example":"Tink Mobile/1.7.8 (Android; 4.4.2, LGE Nexus 4)","description":"The User-Agent of the device"},"deviceName":{"type":"string","example":"Fredrik's iPhone","description":"The device name"}},"description":"A device represents some kind of device which belongs to a user. It could for example be an iPhone."},"NotificationSettings":{"type":"object","required":["balance","budget","doubleCharge","einvoices","fraud","income","largeExpense","leftToSpend","loanUpdate","summaryMonthly","summaryWeekly","transaction","unusualAccount","unusualCategory"],"properties":{"balance":{"type":"boolean","description":"Indicates if the user wants to receive notifications with low or high balances alerts.","default":false},"budget":{"type":"boolean","description":"Indicates if the user wants to receive notifications regarding her budgets.","default":false},"doubleCharge":{"type":"boolean","description":"Indicates if the user wants to receive notifications with double-charge alerts.","default":false},"income":{"type":"boolean","description":"Indicates if the user wants to receive notifications when an income is received.","default":false},"largeExpense":{"type":"boolean","description":"Indicates if the user wants to receive notifications when a large expense is detected.","default":false},"summaryMonthly":{"type":"boolean","description":"Indicates if the user wants to receive notifications with monthly summaries.","default":false},"summaryWeekly":{"type":"boolean","description":"Indicates if the user wants to receive notifications with weekly summaries.","default":false},"transaction":{"type":"boolean","description":"Indicates if the user wants to receive notifications for every transaction.","default":false},"unusualAccount":{"type":"boolean","description":"Indicates if the user wants to receive notifications when there is unusual activity on any of her accounts.","default":false},"unusualCategory":{"type":"boolean","description":"Indicates if the user wants to receive notifications when she has spent more than usual on something.","default":false},"einvoices":{"type":"boolean","description":"Indicates if the user wants to receive notifications for e-invoices.","default":false},"fraud":{"type":"boolean","description":"Indicates if the user wants to receive notifications for ID Control warnings.","default":false},"leftToSpend":{"type":"boolean","description":"Indicates if the user wants to receive left to spend notifications.","default":false},"loanUpdate":{"type":"boolean","description":"Indicates if the user wants to receive notifications for loan updates.","default":false}}},"ListAllocationsResponse":{"type":"object","properties":{"allocations":{"type":"array","items":{"$ref":"#/definitions/Allocation"}},"nextPageToken":{"type":"string","description":"Next page token to be used for pagination, use it with the next request parameter page_token
to request the next page of the list."}}},"BudgetDetailsResponse":{"type":"object","properties":{"budgetSpecification":{"description":"The budget.","$ref":"#/definitions/Budget"},"budgetPeriods":{"type":"array","description":"List of budget periods.","items":{"$ref":"#/definitions/BudgetPeriod"}},"start":{"type":"string","format":"date-time","example":"1549976786000","description":"First period start expressed as UTC epoch timestamp in milliseconds."},"end":{"type":"string","format":"date-time","example":"1552395986000","description":"Last period end expressed as UTC epoch timestamp in milliseconds."},"totalSpentAmount":{"description":"Total amount spent within the listed periods.","$ref":"#/definitions/CurrencyDenominatedAmount"},"averageSpentAmount":{"description":"Average period spending for the listed periods.","$ref":"#/definitions/CurrencyDenominatedAmount"}}},"Savings Goals":{"type":"object","required":["account","name","targetAmount","targetDate"],"properties":{"id":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The ID of the Savings Goal.","readOnly":true},"account":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The ID of the Account connected to the Savings Goal."},"name":{"type":"string","example":"Wedding","description":"The name of the Savings Goal."},"description":{"type":"string","example":"The savings goal for our big wedding. Including wedding-singers.","description":"A longer description of the Savings Goal."},"savedAmount":{"description":"The current saved amount of this goal.","readOnly":true,"$ref":"#/definitions/CurrencyDenominatedAmount"},"targetAmount":{"description":"The target amount to save for this Savings Goal.","$ref":"#/definitions/CurrencyDenominatedAmount"},"targetDate":{"type":"string","example":"2022-10-25","description":"The target date for the Savings Goal, ISO 8601 formatted date (yyyy-MM-dd)."},"status":{"type":"string","description":"The current status of the Savings Goal.
- CREATED: Savings goal is created, nothing have been allocated to it yet.
- IN_PROGRESS: Savings goal is in progress, at least one allocation have been done.
- COMPLETED: Manual action, completed/inactive savings goal, funds are still allocated but no more allocations is possible.
- ARCHIVED: Archived savings-goal (when setting archived all funds will be unallocated).","readOnly":true,"enum":["CREATED","IN_PROGRESS","COMPLETED","ARCHIVED"]},"createTime":{"type":"string","example":"2020-05-14T13:30:45Z","description":"Date and time in UTC in which the Savings Goal was created.","readOnly":true},"categories":{"type":"array","example":"[\"wedding\", \"trip\"]","description":"A set of predefined categories that applies to the Savings Goal.","items":{"type":"string"}},"tags":{"type":"array","example":"[\"icon:blue\", \"priority:10\"]","description":"Custom user-tags for this Savings Goal.","items":{"type":"string"}}},"description":"A Savings Goal represents a financial savings target for a user.
The Savings Goal itself is defined by either a target date or a target amount, or both.
The Savings Goal is directly bound to one
Account, which can have multiple Savings Goals connected to it. Then user can allocate to her goals by keeping track of how much funds left on the account."},"NotificationQuery":{"type":"object","properties":{"offset":{"type":"integer","format":"int32","example":0,"description":"The number of notifications to skip (when paging)."},"limit":{"type":"integer","format":"int32","example":10,"description":"The maximum number of notifications to return (when paging, 0 indicates no limit)."},"statuses":{"type":"array","example":"[\"READ\", \"SENT\"]","description":"The set of notification statuses to be used as a query filter","uniqueItems":true,"items":{"type":"string","enum":["CREATED","SENT","SENT_ENCRYPTED","RECEIVED","READ"]}}}},"Category":{"type":"object","required":["code","defaultChild","id","sortOrder","type","typeName"],"properties":{"code":{"type":"string","example":"expenses:food.restaurants","description":"Machine readable category code."},"defaultChild":{"type":"boolean","example":false,"description":"Indicates if this is the default child to be used when categorizing to a primary level category.","default":false},"id":{"type":"string","example":"7e88d58188ee49749adca59e152324b6","description":"The internal identifier of the category, referenced by e.g. a transaction."},"parent":{"type":"string","example":"067fa4c769774ae980435c76be328c0b","description":"The parent internal identifier of this category, or null."},"primaryName":{"type":"string","example":"Food & Drinks","description":"The primary name of this category."},"searchTerms":{"type":"string","example":"food,lunch,snacks","description":"Used by the search engine to find transactions with this category."},"secondaryName":{"type":"string","example":"Restaurants","description":"The secondary name of this category."},"sortOrder":{"type":"integer","format":"int32","example":45,"description":"Sort order for nicer display for the user."},"type":{"type":"string","example":"EXPENSES","description":"Type of the category.","enum":["INCOME","EXPENSES","TRANSFERS"]},"typeName":{"type":"string","example":"Expenses","description":"Type name of the category."}},"description":"Categories are used for categorization of transactions. They are structured as a category tree, and are available as a flat list of categories with parent/child relationships using their id and parent fields. Category information is used for pre-computed statistics, making aggregated spending and income data available for all the different nodes in the category tree. However, a transaction itself, can only be assigned to a leaf category. Both the `INCOME` and `EXPENSES` categories represent users' regular income and spending, while the `TRANSFER` categories are special in the sense that they represent transfers between accounts (potentially across banks), such as regular bank transfers, credit-card payments, mortgage amortizations and other transactions that should not add to the users' actual spending."},"PaymentRequestTransfersResponse":{"type":"object","required":["paymentRequestCreatedTransfers"],"properties":{"paymentRequestCreatedTransfers":{"type":"array","description":"List of transfers for a given payment request ID","items":{"$ref":"#/definitions/PaymentRequestCreatedTransfer"}}}},"NotificationQueryResponse":{"type":"object","required":["count","notifications"],"properties":{"notifications":{"type":"array","description":"The filtered list of notifications","items":{"$ref":"#/definitions/Notification"}},"count":{"type":"integer","format":"int32","example":45,"description":"The total number of notifications"}}},"RefreshCredentialsRequest":{"type":"object","properties":{"callbackUri":{"type":"string","example":"http://my-customer-app.com/callback","description":"This URI will be used by the ASPSP to pass the authorization code. It corresponds to the redirect/callback URI in OAuth2/OpenId. This parameter is only applicable if you are a TPP."},"appUri":{"type":"string","example":"http://my-customer-app.com/authentication","description":"The end user will be redirected to this URI after the authorization code has been delivered."}}},"TransactionCluster":{"type":"object","properties":{"categorizationImprovement":{"type":"number","format":"double","example":0.003,"description":"The categorization improvement achived if cluster is categorized."},"description":{"type":"string","example":"McDonalds Stock","description":"A description of the cluster to categorized."},"transactions":{"type":"array","description":"List of transactions belonging to this cluster.","items":{"$ref":"#/definitions/Transaction"}}}},"CreateBudgetResponse":{"type":"object","properties":{"budgetSpecification":{"description":"The created budget.","$ref":"#/definitions/Budget"}}},"InsightData":{"type":"object","properties":{"type":{"type":"string","example":"ACCOUNT_BALANCE_LOW","description":"The insight type","enum":["ACCOUNT_BALANCE_LOW","BUDGET_OVERSPENT","BUDGET_CLOSE_NEGATIVE","BUDGET_CLOSE_POSITIVE","BUDGET_SUCCESS","BUDGET_SUMMARY_ACHIEVED","BUDGET_SUMMARY_OVERSPENT","WEEKLY_UNCATEGORIZED_TRANSACTIONS","WEEKLY_SUMMARY_EXPENSES_BY_CATEGORY"]}}},"SourceDestinationValidation":{"type":"object","required":["canTransfer"],"properties":{"canTransfer":{"type":"boolean","example":true,"description":"Whether or not the source account can transfer money towards the destination account.","default":false}}},"DeviceConfigurationDto":{"type":"object","properties":{"flags":{"type":"array","example":"[\"FLAG_1\", \"FLAG_2\"]","description":"Device specific feature flags.","items":{"type":"string"}},"markets":{"type":"array","description":"Available markets.","items":{"$ref":"#/definitions/Market"}}}},"User":{"type":"object","required":["created","id","profile"],"properties":{"created":{"type":"string","format":"date-time","description":"The date when the user was created."},"flags":{"type":"array","example":"[\"TRANSFERS\", \"TEST_PINK_ONBOARDING\"]","description":"The user-specific feature flags assigned to the user.","items":{"type":"string"}},"id":{"type":"string","example":"6e68cc6287704273984567b3300c5822","description":"The internal identifier of the user."},"profile":{"description":"The configurable profile of the user.","$ref":"#/definitions/UserProfile"},"username":{"type":"string","example":"[email protected]","description":"The username of the user. Today only used by selected customers."},"nationalId":{"type":"string","example":"198410045701","description":"Detected national identification number of the end-user."}},"description":"The user model represents a unique Tink end-user and includes properties that defines the user, user profile information and user-modifiable settings. The user information can primarily be used whenever a Tink user signs up for a 3rd party service using her Tink account, or when user-modifiable settings, such as locale or currency, are needed in order to display or calculate the correct data in the 3rd party service."},"UpdateCredentialsRequest":{"type":"object","properties":{"providerName":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}},"callbackUri":{"type":"string","example":"http://my-customer-app.com/callback","description":"This URI will be used by the ASPSP to pass the authorization code. It corresponds to the redirect/callback URI in OAuth2/OpenId. This parameter is only applicable if you are a TPP."},"appUri":{"type":"string","example":"http://my-customer-app.com/authentication","description":"The end user will be redirected to this URI after the authorization code has been delivered."}}},"Loan":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","example":"a7b67265-8030-4d65-aa42-a8f4bd287a72","description":"The internal identifier of the account which has the portfolio."},"id":{"type":"string","format":"uuid","example":"65bc7a41-a66e-4ad1-aad1-99bbfb3c5098","description":"The internal identifier of the loan."},"userId":{"type":"string","format":"uuid","example":"53559ef7-4508-4048-b322-2b175cdaab23","description":"The internal identifier of the user which owns the portfolio."},"initialBalance":{"type":"number","format":"double","example":-10000.0,"description":"The initial loan account balance."},"initialDate":{"type":"string","format":"date-time","example":"1455740874875","description":"Loan issue date."},"numMonthsBound":{"type":"integer","format":"int32","example":36,"description":"Length of the interest rate fixation period expressed in number of months."},"name":{"type":"string","example":"Car Loan","description":"Descriptive label for the loan."},"interest":{"type":"number","format":"double","example":0.025,"description":"Interest rate."},"balance":{"type":"number","format":"double","example":-9000.0,"description":"The current loan account balance."},"amortized":{"type":"number","format":"double","example":1000.0,"description":"Amount amortized to date."},"nextDayOfTermsChange":{"type":"string","format":"date-time","example":"1455740874875","description":"Reset date for the interest rate fixation period."},"updated":{"type":"string","format":"date-time","example":"1553169600000","description":"Loan details last updated timestamp."},"providerName":{"type":"string","example":"handelsbanken-bankid","description":"Identifier for the loan provider."},"type":{"type":"string","example":"MORTGAGE","description":"The type of loan.","enum":["MORTGAGE","BLANCO","MEMBERSHIP","VEHICLE","LAND","STUDENT","CREDIT","OTHER"]},"loanNumber":{"type":"string","example":"01-123456-234567","description":"The provider's internal identifier for the loan."},"monthlyAmortization":{"type":"number","format":"double","example":100.0,"description":"Fixed monthly amortization amount."},"loanDetails":{"$ref":"#/definitions/LoanDetails"},"userModifiedType":{"type":"boolean","default":false}},"description":"Loans represent a user's loan towards a financial institution, such as a mortgage or a student loan. Technically, they can be seen as accounts, but also contain additional details such as interest rate, amortization, loan securities and applicants."},"OAuth2ClientRequest":{"type":"object","properties":{"linkClient":{"$ref":"#/definitions/Client"},"getoAuth2Client":{"$ref":"#/definitions/OAuth2Client"}}},"Activity":{"type":"object","required":["content","date","importance","key","message","title","type"],"properties":{"content":{"type":"object","example":"{\"categoryId\": \"18bb1f4636894f3bba8ddcd567d22fbd\", \"period\": \"2016-05\", \"data\": [\"2015-01\"...","description":"Serialized type dependent object.","properties":{}},"date":{"type":"string","format":"date-time","example":"1455740874875","description":"Date of the activity."},"importance":{"type":"number","format":"double","example":62.5,"description":"Importance compared to other activities 1-100 where 100 is of most importance."},"key":{"type":"string","example":"unusual-category-high.2016-05.18bb1f4636894f3bba8ddcd567d22fbd","description":"Persistent key per type and content."},"message":{"type":"string","example":"You have spent more than usual on restaurants this month.","description":"The activity message. Used as basis for the corresponding notification."},"title":{"type":"string","example":"More than usual","description":"The activity title. Used as basis for the corresponding notification."},"type":{"type":"string","example":"unusual-category-high","description":"The activity type. Used as basis for the corresponding notification."}},"description":"An activity represents some kind of event or insight derived from the information that's stored on a user. It could for example be that a user has spent an unusual amount on restaurants this month. Activities are generated after statistics have been generated. The activities reside in a sorted list, and sort order is based on relevance."},"LoanTimeline":{"type":"object","properties":{"accountId":{"type":"string"},"interestRateTimeline":{"type":"array","items":{"$ref":"#/definitions/TemporalValueDouble"}},"balanceTimeline":{"type":"array","items":{"$ref":"#/definitions/TemporalValueDouble"}}}},"OAuth2Client":{"type":"object","properties":{"name":{"type":"string"},"id":{"type":"string"},"redirectUris":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"scope":{"type":"string"},"secret":{"type":"string"},"url":{"type":"string"},"iconUrl":{"type":"string"},"verified":{"type":"boolean","default":false},"hasConfiguredProviders":{"type":"boolean","default":false}}},"BudgetFilterAccount":{"type":"object","properties":{"id":{"type":"string","example":"325ee4ccf579450ca59d89ee54fa7e40","description":"The account ID."}}},"Notification":{"type":"object","required":["date","generated","groupable","key","message","sensitiveMessage","sensitiveTitle","status","title","type","url"],"properties":{"date":{"type":"string","format":"date-time","example":"1455740874875","description":"The date for which the notification was generated"},"generated":{"type":"string","format":"date-time","example":"1455740874875","description":"The date when the notification was generated"},"groupable":{"type":"boolean","example":true,"description":"Flag indicating whether or not the notification is groupable.","default":false},"key":{"type":"string","example":"unusual-category-high.2016-05.18bb1f4636894f3bba8ddcd567d22fbd","description":"The identifying key."},"message":{"type":"string","example":"You have spent more than usual on restaurants this month.","description":"The notification message."},"status":{"type":"string","example":"READ","description":"The notification status.","enum":["CREATED","SENT","SENT_ENCRYPTED","RECEIVED","READ"]},"title":{"type":"string","example":"More than usual","description":"The notification title. Used on Android as title and concatenated with the message on iOS."},"type":{"type":"string","example":"unusual-category-high","description":"The notification type"},"url":{"type":"string","example":"tink://transactions/953c4eda24554a61a9653a479e70fc96","description":"The deep-link URL"},"sensitiveTitle":{"type":"string","example":"Expense","description":"The notification title if the notification is delivered encrypted. Used on Android as title and concatenated with the message on iOS."},"sensitiveMessage":{"type":"string","example":"You had an expense charged by H&M.","description":"The notification message if the notification is delivered encrypted."}},"description":"A notification represents some type of information which a user can be notified about. It could for example be to notify the user of the fact that they have spent more than usual on restaurants this month."},"KVPairStringDouble":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"number","format":"double"}}},"TransactionResponse":{"type":"object","required":["accountId","amount","categoryId","categoryType","date","description","id","lastModified","notes","originalAmount","originalDate","originalDescription","pending","timestamp","type","userId"],"properties":{"accountId":{"type":"string","example":"3fe2d96efacd4dc5994404a950f238a9","description":"The internal identifier of the account that the transaction belongs to."},"amount":{"type":"number","format":"double","example":34.5,"description":"The amount of the transaction. This can be modified by the user."},"categoryId":{"type":"string","example":"0e1bade6a7e3459eb794f27b7ba4cea0","description":"The category of the transaction. This can be modified by the user."},"categoryType":{"type":"string","example":"EXPENSES","description":"The category type of the transaction.","enum":["INCOME","EXPENSES","TRANSFERS"]},"date":{"type":"string","format":"date-time","example":"1455740874875","description":"The date the transaction was executed. This can be modified by the user."},"description":{"type":"string","example":"Stadium Sergelg Stockholm","description":"The description of the transaction. This can be modified by the user."},"id":{"type":"string","example":"79c6c9c27d6e42489e888e08d27205a1","description":"The internal identifier of the transaction."},"lastModified":{"type":"string","format":"date-time","example":"1455740874875","description":"The date the transaction was last modified by the user."},"notes":{"type":"string","example":"Delicious #cake #wedding","description":"A free-text field modifiable by the user. Any 'word' (whitespace separated), prefixed with a #, is considered a tag. These tags become searchable."},"originalAmount":{"type":"number","format":"double","example":34.5,"description":"The original amount that was received from the provider, before the user changed it."},"originalDate":{"type":"string","format":"date-time","example":"1455740874875","description":"The original date that was received from the provider, before the user changed it."},"originalDescription":{"type":"string","example":"Stadium Sergelg Stockholm","description":"The original description that was received from the provider, before the user changed it."},"payload":{"type":"object","example":"{}","description":"Meta data about the transaction, in key value format with Strings.","additionalProperties":{"type":"string"}},"pending":{"type":"boolean","description":"Indicates if this transaction has been settled or is still pending.","default":false},"timestamp":{"type":"integer","format":"int64","example":1464543093494,"description":"The timestamp of when the transaction was first saved to database."},"type":{"type":"string","example":"CREDIT_CARD","description":"The type of the transaction.","enum":["DEFAULT","CREDIT_CARD","TRANSFER","PAYMENT","WITHDRAWAL"]},"userId":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The internal identifier of the user that the transaction belongs to."},"upcoming":{"type":"boolean","description":"Indicates if this is an upcoming transaction not booked yet.","default":false},"currencyDenominatedAmount":{"description":"The amount of the transaction represented as a scale and unscaled value together with the ISO 4217 currency code of the amount. The amount can be modified by the user but not the currency code.","$ref":"#/definitions/CurrencyDenominatedAmount"},"currencyDenominatedOriginalAmount":{"description":"The original amount that was received from the provider, before the user changed it. The amount is represented as a scale and unscaled value together with the ISO 4217 currency code of the amount.","$ref":"#/definitions/CurrencyDenominatedAmount"},"parts":{"type":"array","description":"TransactionResponse parts (Beta). Available if the transaction is divided into more than one part.","items":{"$ref":"#/definitions/TransactionPart"}},"partnerPayload":{"type":"object","example":"{}","description":"The payload that was previously ingested on the Connector API.","additionalProperties":{"type":"object","properties":{}}},"dispensableAmount":{"type":"number","description":"The dispensable amount of the transaction."},"userModified":{"type":"boolean","default":false}}},"SignableOperation":{"type":"object","properties":{"created":{"type":"string","format":"date-time","example":"1471349422000","description":"The timestamp of the creation of the operation."},"id":{"type":"string","format":"uuid","example":"a4516bda6ff545e0aa24e54b859579e0","description":"The ID of this operation."},"status":{"type":"string","example":"EXECUTED","description":"The status of the operation. CANCELLED, FAILED and EXECUTED are all endstates.","enum":["CREATED","EXECUTING","AWAITING_CREDENTIALS","CANCELLED","FAILED","EXECUTED","AWAITING_THIRD_PARTY_APP_AUTHENTICATION"]},"statusMessage":{"type":"string","example":"The transfer has been sent to your bank.","description":"The status message of the operation"},"type":{"type":"string","example":"TRANSFER","description":"The type of operation.","enum":["TRANSFER"]},"underlyingId":{"type":"string","format":"uuid","example":"1e09bab571d84b1cbe8d49c0be9c030f","description":"The ID of the actual transfer."},"updated":{"type":"string","format":"date-time","example":"1471349422000","description":"The timestamp of the last update of the operation."},"userId":{"type":"string","format":"uuid","example":"2f37e3ff1e5342b39c41bee3ee73cf8e","description":"The ID of the user making the operation."},"credentialsId":{"type":"string","format":"uuid","example":"342220f1e0484c0481b2b468d7fbcfc4","description":"The ID of the Credentials used to make the operation."}}},"LinkTransactionsRequest":{"type":"object","properties":{"amount":{"type":"number","format":"double","example":-90.0,"description":"The amount of the transaction part. Must be same sign as the transaction. If not specified the common disposable amount will be used."}}},"Budget":{"type":"object","properties":{"id":{"type":"string","example":"e2b746ed27c542ce846a8d693474df21","description":"The ID of the Budget."},"name":{"type":"string","example":"Coffee budget","description":"The name of the budget."},"amount":{"description":"The target amount for the budget.","$ref":"#/definitions/CurrencyDenominatedAmount"},"periodicityType":{"type":"string","example":"ONE_OFF","description":"Tells whether the budget is recurring or one off type. Using this field it's possible to see which of the field `recurringPeriodicity` or `oneOffPeriodicity` is set.","enum":["ONE_OFF","RECURRING"]},"recurringPeriodicity":{"description":"Periodicity configuration for a `RECURRING` budget.","$ref":"#/definitions/RecurringPeriodicity"},"oneOffPeriodicity":{"description":"Periodicity configuration for a `ONE_OFF` budget.","$ref":"#/definitions/OneOffPeriodicity"},"archived":{"type":"boolean","example":false,"description":"Indicates if the budget has state archived or not.","default":false},"filter":{"description":"The filter defining the budget and which transactions that is included in it. The configured fields of the filter are applied as logical and operator (intersection).","$ref":"#/definitions/Filter"}},"description":"A budget represents a financial target for a defined period. The budget itself is identified by certain filter/criteria (such as accounts, categories, tags or free-text) to target expenses. Defining multiple filter properties will yield an AND
operation, and specifying multiple values of a filter property will yield an OR
operation.Depending on the use case a budget can either be recurring (WEEK
, MONTH
or YEAR
) or be seen as a one-off budget (fixed start
and end
time period). The amount of the budget will relate to the recurring period defined by the periodicity unit for recurring budgets, or the fixed time window for a one-off budget. A budget could for example be the goal to spend at maximum 10 euros weekly on coffee."},"Version":{"type":"object","required":["commit","date","version"],"properties":{"version":{"type":"string","example":"4513","description":"The version of the build"},"commit":{"type":"string","example":"e764d0eed748d6c137c30fc94c7e17544d101ff3","description":"The last commit of the build"},"date":{"type":"string","format":"date-time","example":"1455740874875","description":"The date of the build"}},"description":"The version represents the latest build version of the Tink application that has been released and is currently running."},"StatisticQuery":{"type":"object","properties":{"description":{"type":"string","example":"fe9e199c2ca94c12baf1f3eb4a4122de","description":"Identifier of the data the statistic represents. This could for example be a category ID."},"periods":{"type":"array","example":"[\"2014-02-11\",\"2014-02-12\"]","description":"Time periods for the statistics: year, month, week or day. Format: `2014`, `2014-02`, `2014:45` or `2014-02-12`.","items":{"type":"string"}},"resolution":{"type":"string","example":"DAILY","description":"Resolution for the statistics. Note that monthly statistics will be calculated only with the resolution that the user has in the user settings (MONTHLY, MONTHLY_ADJUSTED), and not for both.","enum":["DAILY","MONTHLY","MONTHLY_ADJUSTED","YEARLY","ALL","WEEKLY"]},"types":{"type":"array","example":"[\"expenses-by-category\"]","description":"A list of types of statistics. Default: `expenses-by-category`, `income-by-category`, `left-to-spend`, `left-to-spend-average`. Read more about statistics for type information.","items":{"type":"string"}},"padResultUntilToday":{"type":"boolean","example":true,"description":"Indicates if the result should be flat filled until the period of today.","default":false}}},"SearchQuery":{"type":"object","properties":{"accounts":{"type":"array","example":"[\"87fa44ec11c4426e889a963add92b69e\"]","description":"A list of account IDs to filter by.","items":{"type":"string"}},"categories":{"type":"array","example":"[\"953c4eda24554a61a9653a479e70fc96\"]","description":"A list of category IDs to filter by. Could either be leaf node categories, such as the category ID corresponding to `expenses:food.restaurants`, or groups of categories, such as the category ID corresponding to `expenses:food`.","items":{"type":"string"}},"externalIds":{"type":"array","example":"[\"953c4eda24554a61a9653a479e70fc96\"]","description":"A list of external IDs to filter by.","items":{"type":"string"}},"endDate":{"type":"string","format":"date-time","example":"1455740874875","description":"The end date of the result."},"limit":{"type":"integer","format":"int32","example":20,"description":"The limit for the result, used for paging. Defaults to 50 if not set or set to 0."},"offset":{"type":"integer","format":"int32","example":20,"description":"The offset for the result, used for paging."},"order":{"type":"string","example":"ASC","description":"The order of the result.","enum":["ASC","DESC"]},"queryString":{"type":"string","example":"Food this week","description":"The string query."},"sort":{"type":"string","example":"DATE","description":"The sort order of the result.","enum":["SCORE","DATE","ACCOUNT","DESCRIPTION","AMOUNT","CATEGORY"]},"startDate":{"type":"string","format":"date-time","example":"1455740874875","description":"The start date of the result."},"includeUpcoming":{"type":"boolean","description":"Indicates if result should include upcoming transactions.","default":false}}},"ProviderMarketListResponse":{"type":"object","properties":{"markets":{"type":"array","items":{"type":"string"}}}},"Webhook":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"string"},"secret":{"type":"string"},"url":{"type":"string"},"clientId":{"type":"string"},"global":{"type":"boolean","default":false},"events":{"type":"array","uniqueItems":true,"items":{"type":"string"}}},"description":"A webhook can be set up to listen to certain events. The webhook itself consists of the desired events to listen to and a desired URL where the information should be received. Every time an event occurs of the desired type(s), a POST request will be sent to the URL. You can read more about webhooks and the available events in our [guide](https://docs.tink.com/resources/getting-started/webhooks)."},"SimilarTransactionsResponse":{"type":"object","required":["statistics","transactions"],"properties":{"statistics":{"type":"array","description":"Statistics of type 'income-and-expenses-and-transfers' for the similar transactions.","items":{"$ref":"#/definitions/Statistics"}},"transactions":{"type":"array","description":"List of similar transactions.","items":{"$ref":"#/definitions/Transaction"}}}},"ArchiveBudgetResponse":{"type":"object","properties":{"budgetSpecification":{"description":"The archived budget.","$ref":"#/definitions/Budget"}}},"Portfolio":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","example":"a52e9890520d4ec38cc0d4526a4cdcbe","description":"The internal identifier of the user which owns the portfolio."},"accountId":{"type":"string","format":"uuid","example":"1d764c9f9141434aa23485c03561428d","description":"The internal identifier of the account which has the portfolio."},"id":{"type":"string","format":"uuid","example":"4c72494cc67f472f9f0ec2072600fe93","description":"The internal identifier of the portfolio."},"totalValue":{"type":"number","format":"double","example":231924.16,"description":"The total current value of the entire portfolio and all its underlying instruments."},"totalProfit":{"type":"number","format":"double","example":48673.11,"description":"The total profit of the entire portfolio. This includes both historical (real) profit, and current (potential) profit."},"cashValue":{"type":"number","format":"double","example":123.5,"description":"The funds, on this portfolio, available for purchasing instruments, or to be transferred away."},"type":{"type":"string","example":"DEPOT","description":"The type of the portfolio.","enum":["ISK","KF","DEPOT","PENSION","OTHER"]},"instruments":{"type":"array","description":"The instruments which this portfolio holds.","items":{"$ref":"#/definitions/Instrument"}}}},"SearchResult":{"type":"object","required":["type"],"properties":{"transaction":{"description":"The transactions resulting from the query.","$ref":"#/definitions/TransactionResponse"},"type":{"type":"string","example":"TRANSACTION","description":"(DEPRECATED) The search type. Will always be set to TRANSACTION.","enum":["TRANSACTION"]}}},"AmountRequest":{"type":"object","required":["currencyCode","scale","unscaledValue"],"properties":{"unscaledValue":{"type":"integer","format":"int64","example":1050,"description":"The unscaled value of the amount"},"scale":{"type":"integer","format":"int32","example":2,"description":"The scale of the amount."},"currencyCode":{"type":"string","example":"EUR","description":"The ISO 4217 currency code of the amount"}}},"LoanDetails":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid"},"coApplicant":{"type":"boolean","default":false},"applicants":{"type":"array","items":{"type":"string"}},"loanSecurity":{"type":"string"}}},"ActivityQueryResponse":{"type":"object","required":["activities","count"],"properties":{"activities":{"type":"array","description":"The filtered list of activities matching the query","items":{"$ref":"#/definitions/Activity"}},"count":{"type":"integer","format":"int32","example":134,"description":"The total number of activities matching the query"}}},"Payment Request":{"type":"object","required":["amount","currency","destinations","market","recipientName"],"properties":{"market":{"type":"string","example":"SE","description":"The country code (in ISO 3166-1 alpha-2 format) of the primary market of the payee."},"sourceMessage":{"type":"string","example":"Gym Equipment","description":"The message displayed on the payer's transaction. Maximum character count of 50 (Note that some banks might have a more strict limit)."},"messageType":{"type":"string","example":"STRUCTURED","description":"The message type of the payment. Only required in Belgium.","enum":["STRUCTURED","FREE_TEXT"]},"recipientName":{"type":"string","example":"Test AB","description":"The recipient name shown to the payer on signing payments. Maximum character count of 30."},"executionDate":{"type":"string","example":"2019-11-20","description":"The date defining when the payment will be executed by the bank. If no execution date is given, it will be executed as soon as possible. The date follows the ISO 8601 with format yyyy-MM-dd. For more information, see the article Execute payment now or in the future. Note: This feature is currently only available on the Swedish market."},"destinations":{"type":"array","example":"[{\"accountNumber\": \"800-8000\", \"type\": \"se-bg\", \"destinationMessage\":\"3245928392092\"}]","description":"A list of account numbers that can receive the payment. If one of the accounts belong to the same bank as the source account, it will be selected. Otherwise the first one from the list will be selected.","items":{"$ref":"#/definitions/PaymentDestinationRequest"}},"amount":{"type":"number","example":10.0,"description":"The payment amount. Decimal digits supported as per IS0 4217."},"currency":{"type":"string","example":"SEK","description":"The currency code of the payment amount (in ISO 4217 format)."}},"description":"The payment request model represents a request for receiving payments with the recipient's payment information. Please note that it can not be used to make payments."},"BudgetFilterCategory":{"type":"object","properties":{"code":{"type":"string","example":"expenses:food.coffee","description":"The category code."}}},"CallbackRelayedResponse":{"type":"object","properties":{"appUri":{"type":"string","description":"Registered app redirect uri"}}},"CreateCredentialsRequest":{"type":"object","required":["fields","providerName"],"properties":{"providerName":{"type":"string","example":"handelsbanken-bankid","description":"The provider (financial institution) that the credentials is connected to."},"fields":{"type":"object","example":"{\"username\":\"198410045701\"}","description":"This is a key-value map of `Field` name and value found on the `Provider` to which the credentials belongs to. This parameter is required when creating credentials.","additionalProperties":{"type":"string"}},"callbackUri":{"type":"string","example":"http://my-customer-app.com/callback","description":"This URI will be used by the ASPSP to pass the authorization code. It corresponds to the redirect/callback URI in OAuth2/OpenId. This parameter is only applicable if you are a TPP."},"appUri":{"type":"string","example":"http://my-customer-app.com/authentication","description":"The end user will be redirected to this URI after the authorization code has been delivered."},"triggerRefresh":{"type":"boolean","example":false,"description":"Defines if the Credentials creation should cause a refresh on aggregated data. Defaults to `true`","default":false}}},"BudgetPeriod":{"type":"object","properties":{"start":{"type":"string","format":"date-time","example":"1549976786000","description":"Period start expressed as UTC epoch timestamp in milliseconds."},"end":{"type":"string","format":"date-time","example":"1552395986000","description":"Period end expressed as UTC epoch timestamp in milliseconds."},"spentAmount":{"description":"Period spent amount.","$ref":"#/definitions/CurrencyDenominatedAmount"}}},"UpdateBudgetRequest":{"type":"object","required":["amount","filter","name"],"properties":{"name":{"type":"string","example":"Coffee budget","description":"The name of the Budget."},"amount":{"description":"The target amount for the budget.","$ref":"#/definitions/CurrencyDenominatedAmount"},"filter":{"description":"The filter defining the budget and which transactions that is included in it. The configured fields of the filter are applied as logical and operator (intersection).","$ref":"#/definitions/Filter"},"recurringPeriodicity":{"description":"Periodicity configuration for a RECURRING budget. Required if periodicityType is set to RECURRING.","$ref":"#/definitions/RecurringPeriodicity"},"oneOffPeriodicity":{"description":"Periodicity configuration for a ONE_OFF budget. Required if periodicityType is set to ONE_OFF.","$ref":"#/definitions/OneOffPeriodicity"}}},"LoanEvent":{"type":"object","properties":{"accountId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"type":{"type":"string","enum":["INFO","EMPTY","INTEREST_RATE_DECREASE","INTEREST_RATE_INCREASE"]},"loanType":{"type":"string","enum":["MORTGAGE","BLANCO","MEMBERSHIP","VEHICLE","LAND","STUDENT","CREDIT","OTHER"]},"title":{"type":"string"},"interest":{"type":"number","format":"double"},"balance":{"type":"number","format":"double"},"interestRateChange":{"type":"number","format":"double"},"provider":{"type":"string"},"credentials":{"type":"string"},"nextDayOfTermsChange":{"type":"string","format":"date-time"},"properties":{"type":"object","additionalProperties":{"type":"object","properties":{}}}}},"PeriodProgress":{"type":"object","properties":{"periodStartDate":{"type":"string","example":"2020-01-25","description":"The start date of the period, ISO 8601 formatted date (yyyy-MM-dd)."},"periodEndDate":{"type":"string","example":"2020-02-25","description":"The end date of the period, ISO 8601 formatted date (yyyy-MM-dd)."},"amountSavedThisPeriod":{"description":"The amount saved for the Savings Goal in this period.","$ref":"#/definitions/CurrencyDenominatedAmount"},"reachedAmountForSavingsGoalThisPeriod":{"description":"Amount saved from the Savings Goal createTime
to the end of this period.","$ref":"#/definitions/CurrencyDenominatedAmount"}}},"CredentialsListResponse":{"type":"object","properties":{"credentials":{"type":"array","description":"A list of credentials","items":{"$ref":"#/definitions/Credentials"}}}},"Identity":{"type":"object","properties":{"name":{"type":"string","example":"Jane Doe","description":"Full name of the user"},"ssn":{"type":"string","example":"19700101-1234","description":"Social security number of the user."},"dateOfBirth":{"type":"string","example":"1970-01-01","description":"Date of birth of the user. The date will follow ISO 8601 with format yyyy-MM-dd."},"providerName":{"type":"string","example":"se-bankname-bankid","description":"The provider from where the data was collected."}},"description":"The identity model represents personal information of a user which can be used to identify the person. To get as much identity data as possible the information is collected per provider."},"UpdateLoanRequest":{"type":"object","properties":{"accountId":{"type":"string"},"loanType":{"type":"string","enum":["MORTGAGE","BLANCO","MEMBERSHIP","VEHICLE","LAND","STUDENT","CREDIT","OTHER"]},"interest":{"type":"number","format":"double"},"balance":{"type":"number","format":"double"}}},"PaymentRequestCreatedTransfer":{"type":"object","required":["amount","currency","destination","market","providerName","recipientName","status","statusMessage"],"properties":{"amount":{"type":"number","example":10.0,"description":"The payment amount."},"currency":{"type":"string","example":"SEK","description":"The currency of the payment amount."},"market":{"type":"string","example":"SE","description":"The primary market of the payee. The market is usually the country code (in ISO 3166-1 alpha-2 format)."},"recipientName":{"type":"string","example":"Test AB","description":"The recipient name shown to the payer on signing payments."},"sourceMessage":{"type":"string","example":"Payment for Gym Equipment","description":"The transaction description on the payers account for the payment."},"providerName":{"type":"string","example":"handelsbanken-bankid","description":"The provider (financial institution) that the payee's account belongs to."},"created":{"type":"string","format":"date-time","example":"1553095951000","description":"The timestamp of creation of a bank transfer for the payment request."},"updated":{"type":"string","format":"date-time","example":"1553169600000","description":"The timestamp of update of a bank transfer for the payment request."},"destination":{"description":"The destinations object.","$ref":"#/definitions/PaymentDestinationRequest"},"status":{"type":"string","example":"SENT","description":"Current status of the payment. The value of this field changes during payment initiation according to payment status transitions.","enum":["AWAITING_CREDENTIALS","CREATED","SENT","FAILED","CANCELLED","UNKNOWN"]},"statusMessage":{"type":"string","example":"The payment has been sent to your bank","description":"A message explaining the current status of the payment."}}},"StringDoublePair":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"number","format":"double"}}},"ReAllocateRequest":{"type":"object","properties":{"sourceSavingsGoalId":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The source Savings Goal ID to allocate money from."},"destinationSavingsGoalId":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The destination Savings Goal ID to allocate money to."},"amount":{"description":"Amount to reallocate.","$ref":"#/definitions/CurrencyDenominatedAmount"}}},"SupplementalInformation":{"type":"object","properties":{"information":{"type":"object","example":"{\"code\":\"123456\", \"name2\":\"value2\"}","description":"A key-value structure, use `\"name\":\"value\"` from the fields found in `supplementalInformation` on the `Credentials` when status is `AWAITING_SUPPLEMENTAL_INFORMATION`.","additionalProperties":{"type":"string"}}}},"Provider":{"type":"object","required":["accessType","capabilities","credentialsType","currency","displayName","fields","financialInstitutionId","financialInstitutionName","market","multiFactor","name","popular","status","transactional","type"],"properties":{"accessType":{"type":"string","example":"OPEN_BANKING","description":"What Tink uses to access the data.","readOnly":true,"enum":["OPEN_BANKING","OTHER"]},"authenticationFlow":{"type":"string","example":"REDIRECT","description":"For providers with access type `OPEN_BANKING`, indicates what type of authentication flow is used to access the data.","readOnly":true,"enum":["EMBEDDED","REDIRECT","DECOUPLED"]},"capabilities":{"type":"array","example":"CHECKING_ACCOUNTS","description":"Indicates what this provider is capable of, in terms of financial data it can aggregate and if it can execute payments.","readOnly":true,"uniqueItems":true,"items":{"type":"string","enum":["UNKNOWN","TRANSFERS","EINVOICES","MORTGAGE_AGGREGATION","CHECKING_ACCOUNTS","SAVINGS_ACCOUNTS","CREDIT_CARDS","LOANS","INVESTMENTS","PAYMENTS","IDENTITY_DATA"]}},"credentialsType":{"type":"string","example":"THIRD_PARTY_APP","description":"When creating a new credential connected to the provider this will be the credentials type.","readOnly":true,"enum":["PASSWORD","MOBILE_BANKID","KEYFOB","THIRD_PARTY_APP"]},"currency":{"type":"string","example":"SEK","description":"The default currency of the provider.","readOnly":true},"displayName":{"type":"string","example":"Bink","description":"The name displayed in the app and what implementors will most likely use to display the provider.","readOnly":true},"displayDescription":{"type":"string","example":"Bink authentication app","description":"Short displayable description of the authentication type used.","readOnly":true},"fields":{"type":"array","example":"{\n \"name\": \"password\",\n \"description\": \"PIN\",\n \"sensitive\": true,\n \"masked\": true\n}","description":"List of fields which need to be provided when creating a credential connected to the provider.","readOnly":true,"items":{"$ref":"#/definitions/Field"}},"financialInstitutionId":{"type":"string","example":"01234567-1234-1234-1234-123456789123","description":"A unique identifier to group providers belonging the same financial institution.","readOnly":true},"financialInstitutionName":{"type":"string","example":"Bink","description":"A name to group providers belonging the same financial institution.","readOnly":true},"groupDisplayName":{"type":"string","example":"Bink Corp.","description":"The name of the group that several providers of the same bank can be placed in. Usually when a bank has branches and subsidiaries they are grouped under a single name.","readOnly":true},"images":{"description":"Image urls for the provider.","readOnly":true,"$ref":"#/definitions/ImageUrls"},"market":{"type":"string","example":"SE","description":"The market of the provider. Each provider is unique per market.","readOnly":true},"multiFactor":{"type":"boolean","example":true,"description":"Indicates if the provider requires multi-factor authentication.","readOnly":true,"default":false},"name":{"type":"string","example":"se-bink-thirdpartyapp","description":"The unique identifier of the provider. This is used when creating new credentials.","readOnly":true},"passwordHelpText":{"type":"string","example":"Use the same password as you would in your bank's mobile app.","description":"Short description of how to authenticate when creating a new credential for connected to the provider.","readOnly":true},"popular":{"type":"boolean","example":false,"description":"Indicates if the provider is popular. This is normally set to true for the biggest financial institutions on a market.","readOnly":true,"default":false},"status":{"type":"string","example":"ENABLED","description":"Indicates the current status of the provider. It is only possible to perform credentials create or refresh actions on providers which are enabled.","readOnly":true,"enum":["ENABLED","TEMPORARY_DISABLED","DISABLED"]},"transactional":{"type":"boolean","example":false,"description":"Indicates if Tink can aggregate transactions for this provider.","readOnly":true,"default":false},"type":{"type":"string","example":"BANK","description":"Indicates what type of financial institution the provider represents.","readOnly":true,"enum":["BANK","CREDIT_CARD","BROKER","TEST","OTHER"]}},"description":"The provider model represents financial institutions to where Tink can connect. It specifies how Tink accesses the financial institution, metadata about the financialinstitution, and what financial information that can be accessed."},"CurrencyDenominatedAmount":{"type":"object","required":["currencyCode","scale","unscaledValue"],"properties":{"unscaledValue":{"type":"integer","format":"int64","example":1050,"description":"The unscaled value of the amount"},"scale":{"type":"integer","format":"int32","example":2,"description":"The scale of the amount."},"currencyCode":{"type":"string","example":"EUR","description":"The ISO 4217 currency code of the amount"}}},"Transaction":{"type":"object","required":["accountId","amount","categoryId","categoryType","credentialsId","date","description","id","lastModified","notes","originalAmount","originalDate","originalDescription","pending","timestamp","type","userId"],"properties":{"accountId":{"type":"string","example":"3fe2d96efacd4dc5994404a950f238a9","description":"The internal identifier of the account that the transaction belongs to."},"amount":{"type":"number","format":"double","example":34.5,"description":"The amount of the transaction. This can be modified by the user."},"categoryId":{"type":"string","example":"0e1bade6a7e3459eb794f27b7ba4cea0","description":"The category of the transaction. This can be modified by the user."},"categoryType":{"type":"string","example":"EXPENSES","description":"The category type of the transaction.","enum":["INCOME","EXPENSES","TRANSFERS"]},"credentialsId":{"type":"string","example":"65bc7a41a66e4ad1aad199bbfb3c5098","description":"(DEPRECATED) The internal identifier of the credentials that the transaction belongs to. This is deprecated and will soon be removed. This information can instead be accessed through the account. Account can be located with the transactions accountId. "},"date":{"type":"string","format":"date-time","example":"1455740874875","description":"The date the transaction was executed. This can be modified by the user."},"description":{"type":"string","example":"Stadium Sergelg Stockholm","description":"The description of the transaction. This can be modified by the user."},"id":{"type":"string","example":"79c6c9c27d6e42489e888e08d27205a1","description":"The internal identifier of the transaction."},"lastModified":{"type":"string","format":"date-time","example":"1455740874875","description":"The date the transaction was last modified by the user."},"notes":{"type":"string","example":"Delicious #cake #wedding","description":"A free-text field modifiable by the user. Any 'word' (whitespace separated), prefixed with a #, is considered a tag. These tags become searchable."},"originalAmount":{"type":"number","format":"double","example":34.5,"description":"The original amount that was received from the provider, before the user changed it."},"originalDate":{"type":"string","format":"date-time","example":"1455740874875","description":"The original date that was received from the provider, before the user changed it. The date cannot be older than 10 years."},"originalDescription":{"type":"string","example":"Stadium Sergelg Stockholm","description":"The original description that was received from the provider, before the user changed it."},"payload":{"type":"object","example":"{}","description":"Arbitrary metadata in key value format with strings, provided by the financial institution in question. It can be used either for deep-linking back to the financial institution's app, for displaying additional information about the transaction, or for backend purposes such as automatic categorization improvement. It can also include metadata generated by Tink, for example transfer transactions that are automatically flagged as transfers based on the identification of the corresponding transaction on the other account and which includes the primary identifier of the peer transaction for easy access. Max total size of payload data is 10M chars.","additionalProperties":{"type":"string"}},"pending":{"type":"boolean","description":"Indicates if this transaction has been settled or is still pending.","default":false},"timestamp":{"type":"integer","format":"int64","example":1464543093494,"description":"The timestamp of when the transaction was first saved to database."},"type":{"type":"string","example":"CREDIT_CARD","description":"The type of the transaction.","enum":["DEFAULT","CREDIT_CARD","TRANSFER","PAYMENT","WITHDRAWAL"]},"userId":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The internal identifier of the user that the transaction belongs to."},"upcoming":{"type":"boolean","description":"Indicates if this is an upcoming transaction not booked yet.","default":false},"currencyDenominatedAmount":{"description":"The amount of the transaction represented as a scale and unscaled value together with the ISO 4217 currency code of the amount. The amount can be modified by the user but not the currency code.","$ref":"#/definitions/CurrencyDenominatedAmount"},"currencyDenominatedOriginalAmount":{"description":"The original amount that was received from the provider, before the user changed it. The amount is represented as a scale and unscaled value together with the ISO 4217 currency code of the amount.","$ref":"#/definitions/CurrencyDenominatedAmount"},"parts":{"type":"array","description":"Transaction parts (Beta). Available if the transaction is divided into more than one part.","items":{"$ref":"#/definitions/TransactionPart"}},"dispensableAmount":{"type":"number","description":"The dispensable amount of the transaction."},"userModified":{"type":"boolean","default":false},"partnerPayload":{"type":"object","example":"{}","description":"The payload that was previously ingested on the Connector API.","additionalProperties":{"type":"object","properties":{}}}},"description":"An account usually contains multiple transactions (except for certain types of accounts where Tink can't access the underlying transactions, for example, certain `INVESTMENT` accounts). The transaction model represents any operation on an account, and could represent both the actual credit-card purchase on a `CREDIT_CARD` account, but also represent the transaction when you paid your credit-card bill. Most commonly, the transactions in an account should represent what the end-user typically regards as a transaction with its amount, description and date, etc."},"ListBeneficiariesResponse":{"type":"object","properties":{"beneficiaries":{"type":"array","description":"A list of all beneficiaries for all the accounts belonging to the authenticated user.","items":{"$ref":"#/definitions/Beneficiary"}}}},"ListPeriodProgressesResponse":{"type":"object","properties":{"periodProgresses":{"type":"array","items":{"$ref":"#/definitions/PeriodProgress"}},"nextPageToken":{"type":"string","description":"Next page token to be used for pagination, use it with the next request parameter page_token
to request the next page of the list."}}},"MarketListResponse":{"type":"object","properties":{"markets":{"type":"array","description":"List of markets.","items":{"$ref":"#/definitions/Market"}}}},"BudgetTransaction":{"type":"object","properties":{"id":{"type":"string","example":"e2b746ed27c542ce846a8d693474df21","description":"The ID of the transaction."},"amount":{"description":"The transaction amount.","$ref":"#/definitions/CurrencyDenominatedAmount"},"dispensableAmount":{"description":"The dispensable amount. This amount will e.g. be reduced if the account it belongs to has ownership set to 50%.","$ref":"#/definitions/CurrencyDenominatedAmount"},"date":{"type":"string","format":"date-time","example":"1549976786000","description":"Date of the transaction expressed as UTC epoch timestamp in milliseconds."},"description":{"type":"string","example":"Monmouth Coffee Company","description":"Description of the transaction."},"categoryCode":{"type":"string","example":"expenses:food.coffee","description":"Category code."},"accountId":{"type":"string","example":"325ee4ccf579450ca59d89ee54fa7e40","description":"The ID of the account this transaction belongs to."}}},"Client":{"type":"object","properties":{"allowed":{"type":"boolean","default":false},"description":{"type":"string"},"id":{"type":"string"},"messages":{"type":"array","items":{"$ref":"#/definitions/ClientMessage"}},"sessionType":{"type":"string","enum":["MOBILE","WEB","LINK","OAUTH"]}}},"SearchResponseMetrics":{"type":"object","required":["AVG","CATEGORIES","COUNT","NET","SUM"],"properties":{"COUNT":{"type":"integer","format":"int32","example":110,"description":"A number representing the total number of transaction hits."},"NET":{"type":"number","format":"double","example":1288.45,"description":"A number with the net amount of all transaction hits (income and expense). Example: A transaction with amount -42 and another with amount 9 will produce a net of -33."},"SUM":{"type":"number","format":"double","example":1650.0,"description":"A number with the sum of all transaction hits (income and expense). Example: A transaction with amount -42 and another with amount 9 will produce a sum of 51."},"AVG":{"type":"number","format":"double","example":15.0,"description":"A number with the arithmetic mean amount of all transaction hits (income and expense). Example: A sum of 51 from 2 transaction hits will produce an average of 25.5."},"CATEGORIES":{"type":"object","example":"{\"0e1bade6a7e3459eb794f27b7ba4cea0\": 1.0}","description":"Key-value pairs of category id's and the proportion of the sum of all transaction hits they represent (income and expense). Example: Given a transaction with category \"A\" and amount -42 and a transaction with category \"B\" and amount 9 the result is {\"A\": 0.8235, \"B\": 0.1765}.","additionalProperties":{"type":"number","format":"double"}}}},"AccountDetails":{"type":"object","properties":{"interest":{"type":"number","format":"double","description":"Interest of the account. Applicable for loans and savings accounts."},"numMonthsBound":{"type":"integer","format":"int32","description":"Populated if available. Describes how many months the interest rate is bound."},"type":{"type":"string","description":"Account subtype.","enum":["MORTGAGE","BLANCO","MEMBERSHIP","VEHICLE","LAND","STUDENT","CREDIT","OTHER"]},"nextDayOfTermsChange":{"type":"string","format":"date-time","description":"A timestamp of the next day of terms change of the account. Applicable for loans."}}},"UpdateBudgetResponse":{"type":"object","properties":{"budgetSpecification":{"description":"The updated budget.","$ref":"#/definitions/Budget"}}},"OAuth2WebHook":{"type":"object","required":["events","secret","url"],"properties":{"secret":{"type":"string","example":"67abc1e08fb64c92b450a13e0876330b","description":"A secret chosen by the consumer. This secret can be used when getting the actual web hook executed back to verify it is a valid one."},"url":{"type":"string","example":"https://www.clienturl.com/webhook/{userid}","description":"The URL that will receive the web hook. Need to be over HTTPS, and Tink needs to have the domain registered in the database."},"events":{"type":"array","example":"[\"signable-operation:update\"]","description":"A list of events to register web hooks for. Read more about available events [here](https://docs.tink.com/resources/getting-started/webhooks).","uniqueItems":true,"items":{"type":"string"}}}},"CreateBeneficiaryRequest":{"type":"object","required":["accountNumber","accountNumberType","credentialsId","name","ownerAccountId"],"properties":{"ownerAccountId":{"type":"string","example":"bb1ca3b3080e45da97847c493914ad82","description":"The identifier of the source account that this beneficiary should be added to."},"credentialsId":{"type":"string","example":"5c7e37de06cf42a2a0767c56b0012d48","description":"The ID of the `Credentials` used to add the beneficiary. Note that you can send in a different ID here than the credentials ID to which the account belongs. This functionality exists to support the case where you may have double credentials for one financial institution, due to PSD2 regulations."},"name":{"type":"string","example":"Example Inc.","description":"The name chosen by the user for this beneficiary."},"accountNumberType":{"type":"string","example":"iban","description":"The type of the `accountNumber` that this beneficiary has.","enum":["se","se-bg","se-pg","iban","sort-code"]},"accountNumber":{"type":"string","example":"FR7630006000011234567890189","description":"The account number for the beneficiary. The structure of this field depends on the `accountNumberType`."}}},"ImageUrls":{"type":"object","properties":{"icon":{"type":"string","example":"https://cdn.tink.se/provider-images/tink.png","description":"A image url for the icon."},"banner":{"type":"string","example":"https://cdn.tink.se/provider-images/banners/tink.png","description":"A image url for the banner."}}},"Transfer":{"type":"object","required":["amount","currency","destinationMessage","destinationUri","sourceUri"],"properties":{"amount":{"type":"number","example":10.0,"description":"The amount that will be transferred. Should be positive."},"credentialsId":{"type":"string","format":"uuid","example":"342220f1e0484c0481b2b468d7fbcfc4","description":"The id of the Credentials used to make the transfer. For PIS with AIS will be the credentials of which the source account belongs to. For PIS without AIS it is not linked to source account "},"currency":{"type":"string","example":"SEK","description":"The currency of the amount to be transferred. Should match the SourceUri's currency."},"destinationMessage":{"type":"string","example":"1234567890","description":"The message to the recipient. Optional for bank transfers but required for payments. If the payment recipient requires a structured (specially formatted) message, it should be set in this field."},"id":{"type":"string","format":"uuid"},"sourceMessage":{"type":"string","example":"Payment for Gym Equipment","description":"The transaction description on the source account for the transfer."},"dueDate":{"type":"string","format":"date-time","example":"1471349422000","description":"The date when the payment or bank transfer should be executed. If no dueDate is given, it will be executed immediately."},"messageType":{"type":"string","example":"STRUCTURED","description":"Transfer's message type, only required for BE and SEPA-EUR schemes. STRUCTURED is for PAYMENT type transfers and FREE_TEXT is for BANK_TRANSFER type transfers.","enum":["STRUCTURED","FREE_TEXT"]},"destinationUri":{"type":"string","example":"sepa-eur://SE4550000000058398257466","description":"The destination account or recipient of the transfer, in the form of a uri.","enum":["sepa-eur","se-bg","se-pg"]},"sourceUri":{"type":"string","example":"sepa-eur://SE4550000000058398258754","description":"The source account of the transfer, in the form of a uri."}},"description":"A Transfer on Tink represents the tentative action of requesting a payment initiation. By consequence, its success does not represent that money has been successfully transferred from one account to another because the payment initiation relays the responsibility of properly executing the monetary reallocation to the financial institution.\r\nThe source account must belong to the authenticated user. Source and destination accounts are sent in a special URI format. See below examples."},"SelectInsightActionRequest":{"type":"object","required":["insightAction","insightId"],"properties":{"insightId":{"type":"string","example":"e2b746ed27c542ce846a8d693474df21","description":"The unique identifier of an existing insight."},"insightAction":{"type":"string","example":"CREATE_TRANSFER","description":"The insight action that the user invoked for the insight."}}},"TransactionLinkSuggestionResponse":{"type":"object","properties":{"transactionId":{"type":"string","description":"The ID of the transaction to find suggestions for."},"limit":{"type":"integer","format":"int32","description":"The maximum amount of suggestions requested to be returned."},"suggestedCounterpartTransactions":{"type":"array","description":"Suggested counterpart transactions.","items":{"$ref":"#/definitions/Transaction"}}}},"Period":{"type":"object","properties":{"endDate":{"type":"string","format":"date-time","example":"1464739199000","description":"Timestamp at the end of the period"},"name":{"type":"string","example":"2016-05"},"resolution":{"type":"string","example":"MONTHLY","description":"Resolution for the statistics. ","enum":["MONTHLY","MONTHLY_ADJUSTED"]},"startDate":{"type":"string","format":"date-time","example":"1462060800000","description":"Timestamp at the start of the period"}}},"GdprLoginMethodListResponse":{"type":"object","properties":{"gdprLoginMethods":{"type":"array","description":"Supported authentication methods.","items":{"$ref":"#/definitions/GdprLoginMethod"}}}},"Market":{"type":"object","required":["code","currencies","defaultCurrency","defaultLocale","defaultTimeZone","description","suggested"],"properties":{"code":{"type":"string","example":"SE","description":"The ISO 3166-1 alpha-2 country code of the market.","enum":["AT","AU","BE","BG","BR","CA","CY","CZ","DE","DK","EE","ES","FI","FO","FR","GB","GR","HR","HU","IE","IN","IT","LU","LV","MT","MX","NL","NO","NZ","PL","PT","RO","SE","SG","SI","SK","UK","US"]},"currencies":{"type":"array","description":"The applicable currencies available in the market.","items":{"$ref":"#/definitions/Currency"}},"defaultCurrency":{"type":"string","example":"SEK","description":"The ISO 4217 code of the default currency."},"defaultLocale":{"type":"string","example":"sv_SE","description":"The default locale in the market."},"defaultTimeZone":{"type":"string","example":"Europe/Stockholm","description":"The default time zone in the market."},"description":{"type":"string","example":"Sweden","description":"The display name of the market"},"suggested":{"type":"boolean","description":"Flag to indicate if this is the suggested market for the user.","default":false},"registerMethods":{"type":"array","example":"[\"BANKID\", \"EMAIL_AND_PASSWORD\"]","description":"Supported registration authentication methods.","items":{"type":"string","enum":["BANKID","EMAIL_AND_PASSWORD","SMS_OTP_AND_PIN6","PHONE_NUMBER_AND_PIN6","ABN_AMRO_PIN5","CHALLENGE_RESPONSE","NON_VALID"]}},"loginMethods":{"type":"array","example":"[\"BANKID\", \"EMAIL_AND_PASSWORD\"]","description":"Supported login authentication methods.","items":{"type":"string","enum":["BANKID","EMAIL_AND_PASSWORD","SMS_OTP_AND_PIN6","PHONE_NUMBER_AND_PIN6","ABN_AMRO_PIN5","CHALLENGE_RESPONSE","NON_VALID"]}},"gdprLoginMethods":{"type":"array","example":"[\"BANKID\", \"EMAIL_AND_PASSWORD\"]","description":"Supported user data control authentication methods.","items":{"type":"string","enum":["BANKID","EMAIL_AND_PASSWORD","SMS_OTP_AND_PIN6","PHONE_NUMBER_AND_PIN6","ABN_AMRO_PIN5","CHALLENGE_RESPONSE","NON_VALID"]}}}},"SearchResponse":{"type":"object","required":["count","metrics","net","periodAmounts","query","results"],"properties":{"count":{"type":"integer","format":"int32","example":110,"description":"The total number of transactions hits."},"metrics":{"description":"The metric object contains fields representing different metrics.","$ref":"#/definitions/SearchResponseMetrics"},"periodAmounts":{"type":"array","description":"Key-value object where the key is a period (`YYYY-MM`) and the value is the net amount of the transactions found within the specified date range (if any) of the search query.","items":{"$ref":"#/definitions/StringDoublePair"}},"query":{"description":"The query executed.","$ref":"#/definitions/SearchQuery"},"results":{"type":"array","description":"The search result.","items":{"$ref":"#/definitions/SearchResult"}},"net":{"type":"number","format":"double","example":1288.45,"description":"The net amount of all transaction hits. Will only include the amounts from transactions which has the same currency as the user to who they belong."}}},"SuggestTransactionsResponse":{"type":"object","required":["categorizationImprovement","categorizationLevel","clusters"],"properties":{"categorizationImprovement":{"type":"number","format":"double","example":0.01,"description":"The categorization improvement achieve if all clusters are categorized."},"categorizationLevel":{"type":"number","format":"double","example":0.93,"description":"The current categorization level before categorization."},"clusters":{"type":"array","description":"Clusters to categorize.","items":{"$ref":"#/definitions/TransactionCluster"}}}},"TransferResponse":{"type":"object","required":["destinationUri","id","sourceUri","status"],"properties":{"status":{"type":"string","example":"SENT","description":"The transfer status. The value of this field changes during payment initiation according to payment status transitions.","enum":["AWAITING_CREDENTIALS","CREATED","SENT","FAILED","CANCELLED","UNKNOWN"]},"statusMessage":{"type":"string","example":"The transfer has been sent to your bank.","description":"A message with additional information regarding the current status of the transfer."},"id":{"type":"string","format":"uuid","example":"1e09bab571d84b1cbe8d49c0be9c030f","description":"The transfer unique identifier."},"destinationUri":{"type":"string","example":"sort-code://33001111111111?name=Recipient","description":"The destination account or recipient of the transfer, in the form of a uri."},"sourceUri":{"type":"string","example":"sort-code://33001111112222","description":"The source account of the transfer, in the form of a uri. Only returned if available from the bank response."}}},"TemporalValueDouble":{"type":"object","properties":{"date":{"type":"string","format":"date-time"},"value":{"type":"number","format":"double"}}},"CreateUserRequest":{"type":"object","required":["market"],"properties":{"market":{"type":"string","example":"SE","description":"Market specific code for the user as a ISO 3166-1 country code."},"locale":{"type":"string","example":"en_US","description":"Locale for the user. Defaults to default locale for the user's market."},"external_user_id":{"type":"string","example":"user_123_abc","description":"Optional external user ID for the created user."}}},"CallbackRelayedRequest":{"type":"object","required":["parameters","state"],"properties":{"state":{"type":"string","example":"anVzdCBzb21lIHJhbmRvbSBzdGF0ZQo=","description":"The state from the received callback from the ASPSP. Used by Tink to connect the incoming callback to the correct session."},"parameters":{"type":"object","example":"{\"parameter1\": \"value1\", \"parameter2\": \"value2\", \"parameterN\": \"valueN\"}","description":"The post parameters from the received callback from the ASPSP. Contains the parameters necessary for the integration to continue the communication with the ASPSP.","additionalProperties":{"type":"string"}}}},"Actionable Insight":{"type":"object","required":["userId"],"properties":{"id":{"type":"string","example":"e2b746ed27c542ce846a8d693474df21","description":"The unique identifier of the insight."},"userId":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The unique identifier of the user that the insight belongs to."},"type":{"type":"string","example":"ACCOUNT_BALANCE_LOW","description":"Conveys the meaning of the Insight. The type will also indicate the structure of the data field"},"title":{"type":"string","example":"Your balance on bank account x is low","description":"The title of the insight which can be shown to the user."},"description":{"type":"string","example":"The balance on your bank account x is low. \nDo you want to transfer money to this account?","description":"The description of the insight which can be shown to the user."},"data":{"description":"The data that describes the basis for why this Insight was created. The content is determined by the Type. Read more about it [here](https://docs.tink.com/resources/pfm/actionable-insights).","$ref":"#/definitions/InsightData"},"createdTime":{"type":"integer","format":"int64","example":1549976786000,"description":"The epoch timestamp in milliseconds in UTC when the insight was created."},"insightActions":{"type":"array","description":"A list of proposed actions that the user can take in response to the insight.","items":{"$ref":"#/definitions/InsightProposedAction"}}},"description":"An actionable insight represent some kind of actionable event or insight derived from user data. It could for instance be that a user has low balance on one of their bank accounts where the action could be to transfer money to that account. Another example could be to encourage a user to save more money by creating a budget for a specific category. Read more about it [here](https://docs.tink.com/resources/pfm/actionable-insights)."},"LoanResponse":{"type":"object","properties":{"loans":{"type":"array","items":{"$ref":"#/definitions/Loan"}},"totalLoanAmount":{"type":"number","format":"double"},"weightedAverageInterestRate":{"type":"number","format":"double"}}},"ManualAuthenticationRequest":{"type":"object","properties":{"callbackUri":{"type":"string","example":"http://my-customer-app.com/callback","description":"This URI will be used by the ASPSP to pass the authorization code. It corresponds to the redirect/callback URI in OAuth2/OpenId. This parameter is only applicable if you are a TPP."},"appUri":{"type":"string","example":"http://my-customer-app.com/authentication","description":"The end user will be redirected to this URI after the authorization code has been delivered."}}},"UserProfile":{"type":"object","required":["currency","locale","market","notificationSettings","periodAdjustedDay","periodMode","timeZone"],"properties":{"currency":{"type":"string","example":"SEK","description":"The configured ISO 4217 currency code of the user. This can be modified by the user."},"locale":{"type":"string","example":"sv_SE","description":"The configured locale of the user. This can be modified by the user."},"market":{"type":"string","example":"SE","description":"The primary market/country of the user."},"periodAdjustedDay":{"type":"integer","format":"int32","example":25,"description":"The configured day of the month to break the adjusted period on. This can be modified by the user. A valid value should be in the range between 1 and 31. If the adjusted day is after the last day of a given month, then it is treated as the last day of the month."},"periodMode":{"type":"string","example":"MONTHLY_ADJUSTED","description":"The configured monthly period mode of the user. This can be modified by the user.","enum":["MONTHLY","MONTHLY_ADJUSTED"]},"timeZone":{"type":"string","example":"Europe/Stockholm","description":"The configured time zone of the user. This can be modified by the user."},"cashbackEnabled":{"type":"boolean","description":"(DEPRECATED) Removed feature.","default":false},"notificationSettings":{"description":"The configured notification settings of the user. This can be modified by the user.","$ref":"#/definitions/NotificationSettings"}}},"CategorizeTransactionsRequest":{"type":"object","required":["categoryId","transactionIds"],"properties":{"categoryId":{"type":"string","example":"2d3bd65493b549e1927d97a2d0683ab9","description":"The internal identifier of the category that the list of transactions is categorized to."},"transactionIds":{"type":"array","example":"[\"92e9e178cc22437281084c572ada8d7d\",\"a40db0b79bf94d2a9340cbc35d8b8020\"]","description":"A list of internal identifiers of the transactions categorized.","items":{"type":"string"}}}},"CreateRecurringBudgetRequest":{"type":"object","required":["amount","filter","name","recurringPeriodicity"],"properties":{"name":{"type":"string","example":"Coffee budget","description":"The name of the Budget."},"amount":{"description":"The target amount for the budget. The currency must match the user profile currency setting.","$ref":"#/definitions/CurrencyDenominatedAmount"},"filter":{"description":"The filter defining the budget and which transactions that is included in it. The configured fields of the filter are applied as logical and operator (intersection).","$ref":"#/definitions/Filter"},"recurringPeriodicity":{"description":"Periodicity configuration for the recurring budget.","$ref":"#/definitions/RecurringPeriodicity"}}},"InsightActionData":{"type":"object","properties":{"type":{"type":"string","example":"CREATE_TRANSFER","description":"The action type","enum":["ACKNOWLEDGE","DISMISS","VIEW_BUDGET","CREATE_TRANSFER","CATEGORIZE_TRANSACTIONS","VIEW_TRANSACTIONS_BY_CATEGORY"]}}},"Credentials":{"type":"object","required":["fields","providerName"],"properties":{"id":{"type":"string","example":"6e68cc6287704273984567b3300c5822","description":"The unique identifier of the credentials."},"providerName":{"type":"string","example":"handelsbanken-bankid","description":"The provider (financial institution) that the credentials is connected to."},"type":{"type":"string","example":"MOBILE_BANKID","description":"Indicates how Tink authenticates the user to the financial institution.","enum":["PASSWORD","MOBILE_BANKID","KEYFOB","THIRD_PARTY_APP"]},"status":{"type":"string","example":"UPDATED","description":"The status indicates the state of the credentials. For some states there are actions which need to be performed on the credentials.","enum":["CREATED","AUTHENTICATING","AWAITING_MOBILE_BANKID_AUTHENTICATION","AWAITING_SUPPLEMENTAL_INFORMATION","UPDATING","UPDATED","AUTHENTICATION_ERROR","TEMPORARY_ERROR","PERMANENT_ERROR","AWAITING_THIRD_PARTY_APP_AUTHENTICATION","DELETED","SESSION_EXPIRED"]},"statusUpdated":{"type":"string","format":"date-time","example":"1493379467000","description":"A timestamp of when the credentials' status was last modified."},"statusPayload":{"type":"string","example":"Analyzed 1,200 out of 1,200 transactions.","description":"A user-friendly message connected to the status. Could be an error message or text describing what is currently going on in the refresh process."},"updated":{"type":"string","format":"date-time","example":"1493379467000","description":"A timestamp of when the credentials was the last time in status `UPDATED`."},"fields":{"type":"object","example":"{\"username\":\"198410045701\"}","description":"This is a key-value map of `Field` name and value found on the `Provider` to which the credentials belongs to. This parameter is required when creating credentials.","additionalProperties":{"type":"string"}},"supplementalInformation":{"type":"string","example":"null","description":"A key-value structure to handle if status of credentials are `AWAITING_SUPPLEMENTAL_INFORMATION` or `AWAITING_THIRD_PARTY_APP_AUTHENTICATION`."},"sessionExpiryDate":{"type":"string","format":"date-time","example":"1493379467000","description":"For credentials with access type of `OPEN_BANKING`, indicates when the session for the currently stored credentials will expire. The session can be renewed before or after this date by triggering manual authentication of credentials. After this date automatic refreshes will not be possible without new authentication from the user."},"userId":{"type":"string","example":"c4ae034f96c740da91ae00022ddcac4d","description":"The ID of the user that the credentials belongs to."}},"description":"The credentials model represents a user's connected providers from where financial data is accessed."},"ActivityQuery":{"type":"object","properties":{"offset":{"type":"integer","format":"int32","example":0,"description":"The number of activities to skip (when paging)."},"limit":{"type":"integer","format":"int32","example":10,"description":"The maximum number of activities to return (when paging, 0 indicates no limit)."},"types":{"type":"array","example":"[\"unusual-category-high\", \"unusual-category-low\"]","description":"The set of activity types to be used as a query filter","uniqueItems":true,"items":{"type":"string"}},"startDate":{"type":"string","format":"date-time","example":"1455740874875","description":"The start date to be used as a query filter"},"endDate":{"type":"string","format":"date-time","example":"1455740874875","description":"The end date to be used as a query filter"}}},"DataExportRequest":{"type":"object","properties":{"id":{"type":"string","example":"051837be5fa3410ea676affcc0a35a09","description":"The ID of the data export request."},"created":{"type":"string","format":"date-time","example":"1527163200","description":"Data export request creation date."},"status":{"type":"string","example":"COMPLETED","description":"The status of the data export request.","enum":["CREATED","IN_PROGRESS","FAILED","COMPLETED"]}}},"GdprLoginMethod":{"type":"object","properties":{"code":{"type":"string","example":"SE","description":"The ISO 3166-1 alpha-2 country code of the market.","enum":["AT","AU","BE","BG","BR","CA","CY","CZ","DE","DK","EE","ES","FI","FO","FR","GB","GR","HR","HU","IE","IN","IT","LU","LV","MT","MX","NL","NO","NZ","PL","PT","RO","SE","SG","SI","SK","UK","US"]},"description":{"type":"string","example":"Sweden","description":"The display name of the market."},"auhtenticationMethod":{"type":"array","example":"[\"BANKID\", \"EMAIL_AND_PASSWORD\"]","description":"The authentication methods valid for a specific market.","items":{"type":"string","enum":["BANKID","EMAIL_AND_PASSWORD","SMS_OTP_AND_PIN6","PHONE_NUMBER_AND_PIN6","ABN_AMRO_PIN5","CHALLENGE_RESPONSE","NON_VALID"]}}}},"ListSavingsGoalsResponse":{"type":"object","properties":{"savingsGoals":{"type":"array","items":{"$ref":"#/definitions/Savings Goals"}},"nextPageToken":{"type":"string","description":"Next page token to be used for pagination, use it with the next request parameter page_token
to request the next page of the list."}}},"Field":{"type":"object","properties":{"defaultValue":{"type":"string","description":"A default value of the input field."},"description":{"type":"string","example":"Social security number","description":"A short description of what the field is used for."},"helpText":{"type":"string","example":"Enter your username","description":"Text displayed next to the input field."},"hint":{"type":"string","example":"YYYYMMDD-NNNN","description":"Gray text in the input view (Similar to a placeholder)."},"immutable":{"type":"boolean","description":"Controls whether or not the field values entered are immutable.","default":false},"masked":{"type":"boolean","description":"Controls whether or not the field should be shown masked, like a password field.","default":false},"maxLength":{"type":"integer","format":"int32","example":12,"description":"Integer value of the maximum accepted characters of input."},"minLength":{"type":"integer","format":"int32","example":12,"description":"Integer value of the minimum accepted characters of input."},"name":{"type":"string","example":"username","description":"The name of the input field."},"numeric":{"type":"boolean","description":"Controls whether or not the field should only accept numeric values.","default":false},"optional":{"type":"boolean","description":"Controls whether or not the field should be optional.","default":false},"options":{"type":"array","description":"A list of options where the user should select one.","items":{"type":"string"}},"pattern":{"type":"string","example":"(19|20)[0-9]{10}","description":"A regex pattern that can be evaluated on the input."},"patternError":{"type":"string","example":"Please enter a valid social security number.","description":"An error message that can be displayed if the provided pattern does not validate."},"value":{"type":"string","description":"Input value for the field."},"sensitive":{"type":"boolean","description":"Controls whether or not the field should be sensitive.","default":false},"checkbox":{"type":"boolean","description":"Display boolean value as checkbox","default":false},"additionalInfo":{"type":"string","description":"A serialized JSON containing additional information that could be useful"}}},"LinkTransactionsResponse":{"type":"object","required":["counterpartTransaction","transaction"],"properties":{"transaction":{"description":"The primary transaction.","$ref":"#/definitions/Transaction"},"counterpartTransaction":{"description":"The counterpart transaction.","$ref":"#/definitions/Transaction"}}},"Allocation":{"type":"object","properties":{"id":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The ID of the new allocation.","readOnly":true},"sourceId":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The ID of the Source."},"sourceType":{"type":"string","description":"The type of the source.
- ACCOUNT: Source of type Account.
- SAVINGS_GOAL: Source of type Savings Goal.","enum":["ACCOUNT","SAVINGS_GOAL"]},"destinationId":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The ID of the Destination."},"destinationType":{"type":"string","description":"The type of the destination.
- ACCOUNT: Destination of type Account.
- SAVINGS_GOAL: Destination of type Savings Goal.","enum":["SAVINGS_GOAL","ACCOUNT"]},"amount":{"description":"Amount moved with the allocation.","$ref":"#/definitions/CurrencyDenominatedAmount"},"createTime":{"type":"string","example":"2020-05-14T13:30:45Z","description":"Date and time in UTC in which the Allocation was made.","readOnly":true}},"description":"An allocation is a virtual transaction withdraw from or deposit to a Savings Goal."},"TransferDestination":{"type":"object","properties":{"balance":{"type":"number","format":"double","description":"The balance of the account. Will only be populated for accounts that is owned by the user."},"displayBankName":{"type":"string","example":"null","description":"The name of the bank where this destination resides. Will not be populated for payment destinations."},"displayAccountNumber":{"type":"string","example":"902090-0","description":"A display formatted alpha-numeric string of the destination account/payment recipient number."},"uri":{"type":"string","format":"uri","example":"se-pg://9020900","description":"The uri used to describe this destination."},"name":{"type":"string","example":"Barncancerfonden","description":"The name of the destination if one exists."},"type":{"type":"string","example":"EXTERNAL","description":"The account type of the destination. Will be `EXTERNAL` for all destinations not owned by the user.","enum":["CHECKING","SAVINGS","INVESTMENT","CREDIT_CARD","LOAN","EXTERNAL"]},"matchesMultiple":{"type":"boolean","example":false,"description":"Indicates whether this `TransferDestination` matches multiple destinations. If true, the uri will be a regular expression, for instance `\"se-pg://.+\"` meaning that the source account can make PG payments.","default":false}}},"LoanTimelineResponse":{"type":"object","properties":{"weightedAverageTimeline":{"type":"array","items":{"$ref":"#/definitions/KVPairStringDouble"}},"loanTimelines":{"type":"array","items":{"$ref":"#/definitions/LoanTimeline"}}}},"ListBudgetSpecificationsResponse":{"type":"object","properties":{"budgetSpecifications":{"type":"array","description":"List of budgets.","items":{"$ref":"#/definitions/Budget"}}}},"OAuth2WebHookResponse":{"type":"object","properties":{"webHooks":{"type":"array","items":{"$ref":"#/definitions/Webhook"}}}},"ProviderListResponse":{"type":"object","required":["providers"],"properties":{"providers":{"type":"array","description":"List of providers that match the query","items":{"$ref":"#/definitions/Provider"}}},"description":"The provider list response object."},"BusinessDaysResponse":{"type":"object","required":["businessDays"],"properties":{"businessDays":{"type":"object","example":"{\"businessDays\":{\"2018\":{\"11\":[1,2,5,6,7,8,9,12,13,14,15,16,19,20,21,22,23,26,27,28,29,30]}}}","description":"Business days by year and month","additionalProperties":{"type":"object","additionalProperties":{"type":"array","items":{"type":"integer","format":"int32"}}}}}},"BudgetSummary":{"type":"object","properties":{"budgetSpecification":{"description":"The budget.","$ref":"#/definitions/Budget"},"budgetPeriods":{"description":"The current running period.","$ref":"#/definitions/BudgetPeriod"}}},"ListBudgetSummariesResponse":{"type":"object","properties":{"budgetSummaries":{"type":"array","description":"List of budget summaries.","items":{"$ref":"#/definitions/BudgetSummary"}}}},"FollowData":{"type":"object","properties":{"historicalAmounts":{"type":"array","description":"A list of string-double pairs. Has one value for the sum of expenses (ie. `EXPENSES` or `SEARCH` type) or account balance (ie. `SAVINGS` type) for each previous month period (`MONTHLY` or `MONTHLY_ADJUSTED`).","items":{"$ref":"#/definitions/StringDoublePair"}},"period":{"type":"string","example":"2017-05","description":"The period (yyyy-mm) for which this data belongs to. Period is always `MONTHLY` or `MONTHLY_ADJUSTED`."},"periodAmounts":{"type":"array","description":"A list of string-double pairs. Has one value for the cumulative sum of expenses (ie. `EXPENSES` or `SEARCH` type) or account balance (ie. `SAVINGS` type) for each day in period.","items":{"$ref":"#/definitions/StringDoublePair"}},"periodProgress":{"type":"number","format":"double","example":0.25,"description":"A progress indicator between 0 and 1 of the current period. First day of period is 0 and last day of period is 1."},"periodTransactions":{"type":"array","description":"A list of transactions that this follow item and period consists of.","items":{"$ref":"#/definitions/Transaction"}}}},"Follow Item":{"type":"object","required":["criteria","name","type"],"properties":{"criteria":{"type":"string","example":"{\"targetAmount\":500,\"categoryIds\":[\"c0d99a4058854b8681154ab91c3c5830\"]}","description":"A serialized json string with the criteria for the follow item. For all types of follow items, there is the parameter `targetAmount` that sets the goal of budget/goal. For `EXPENSES` there is also `categoryIds` which is an array of category id strings. For `SEARCH` there is `queryString`, that is the search query that would be followed. Finally, for `SAVINGS` there is the string `targetPeriod` (yyyy-mm) which sets the goal month, and the array of strings `accountIds`."},"data":{"description":"Returned when getting one follow item. Contains statistics for the queried period.","$ref":"#/definitions/FollowData"},"id":{"type":"string","example":"e2b746ed27c542ce846a8d693474df21","description":"The ID of the follow item."},"name":{"type":"string","example":"Coffee budget","description":"The name of the follow item."},"type":{"type":"string","example":"EXPENSES","description":"The type of the follow item.","enum":["EXPENSES","SEARCH","SAVINGS"]}},"description":"A follow item represents a budget for expense categories, search strings and savings goals. The idea behind the \"follow\" concept is that the end-user is following a category, a search string or, in the savings goal case, an account."},"DataExportRequestListResponse":{"type":"object","properties":{"dataExportRequests":{"type":"array","description":"A list of data export requests","items":{"$ref":"#/definitions/DataExportRequest"}}}},"OneOffPeriodicity":{"type":"object","required":["end","start"],"properties":{"start":{"type":"string","format":"date-time","example":"1549976786000","description":"Budget start expressed as UTC epoch timestamp in milliseconds."},"end":{"type":"string","format":"date-time","example":"1552395986000","description":"Budget end expressed as UTC epoch timestamp in milliseconds."}}},"InsightProposedAction":{"type":"object","properties":{"label":{"type":"string","example":"Make transfer","description":"The action label"},"data":{"description":"The data that describes the action.The content is determined by the Type. Read more about it [here](https://docs.tink.com/resources/pfm/actionable-insights).","$ref":"#/definitions/InsightActionData"}}},"DeleteTransactionPartResponse":{"type":"object","required":["transaction"],"properties":{"transaction":{"description":"The transaction to which the part belonged.","$ref":"#/definitions/Transaction"},"counterpartTransaction":{"description":"Counterpart transaction affected due to bilateral link being removed.","$ref":"#/definitions/Transaction"}}},"Filter":{"type":"object","properties":{"accounts":{"type":"array","description":"List of included accounts. Applied as logical or (union).","items":{"$ref":"#/definitions/BudgetFilterAccount"}},"categories":{"type":"array","description":"List of included categories. Applied as logical or (union).","items":{"$ref":"#/definitions/BudgetFilterCategory"}},"tags":{"type":"array","description":"List of included tags. Applied as logical or (union).","items":{"$ref":"#/definitions/BudgetFilterTag"}},"freeTextQuery":{"type":"string","example":"Monmouth Coffee","description":"Query for a partial transaction description match."}}},"Investment":{"type":"object","properties":{"portfolios":{"type":"array","description":"A list of the user's portfolios.","items":{"$ref":"#/definitions/Portfolio"}}},"description":"Investments represent a user's financial engagement with products such as stocks or funds. They are structured as investment portfolios containing financial instruments, where a user can have multiple different types of portfolios with multiple different types of instruments."},"Instrument":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","example":"a52e9890520d4ec38cc0d4526a4cdcbe","description":"The internal identifier of the user which owns the instrument."},"portfolioId":{"type":"string","format":"uuid","example":"01f21bc10f2b46abb9b25fccd3dc64eb","description":"The internal identifier of the portfolio which the instrument belongs to."},"isin":{"type":"string","example":"US0378331005","description":"An International Securities Identification Number (ISIN) uniquely identifies a security."},"marketPlace":{"type":"string","example":"NASDAQ","description":"The market where the instrument is traded."},"id":{"type":"string","format":"uuid","example":"50c3e10233ed4048bd48f3a55b5d062a","description":"The internal identifier of the instrument."},"averageAcquisitionPrice":{"type":"number","format":"double","example":53.41,"description":"An instrument can be traded multiple times and this is the average acquisition price calculated over all trades."},"currency":{"type":"string","example":"SEK","description":"The currency that the instrument is traded in."},"marketValue":{"type":"number","format":"double","example":22917.0,"description":"The current market value of the whole instrument. That is, not for a single share but for the entire instrument."},"name":{"type":"string","example":"Apple Inc.","description":"The name of the instrument, which can be different on different markets."},"price":{"type":"number","format":"double","example":76.39,"description":"The current market price for one share of the instrument."},"quantity":{"type":"number","format":"double","example":300.0,"description":"The number of underlying shares that the user owns of this instrument."},"profit":{"type":"number","format":"double","example":6894.0,"description":"The total profit for this instrument over all trades."},"ticker":{"type":"string","example":"AAPL","description":"A ticker symbol is an abbreviation used to uniquely identify a stock on a particular stock market."},"type":{"type":"string","example":"STOCK","description":"The instrument type.","enum":["FUND","STOCK","OTHER"]}}},"ArchivedInsight":{"type":"object","required":["userId"],"properties":{"id":{"type":"string","example":"e2b746ed27c542ce846a8d693474df21","description":"The ID of the archived insight. This is the same ID as for the corresponding insight, before it has been archived."},"userId":{"type":"string","example":"d9f134ee2eb44846a4e02990ecc8d32e","description":"The ID of the user that the archived insight belongs to."},"type":{"type":"string","example":"ACCOUNT_BALANCE_LOW","description":"The type of the archived insight."},"title":{"type":"string","example":"Your balance on bank account x is low","description":"The title of the archived insight."},"description":{"type":"string","example":"The balance on your bank account x is low. \nDo you want to transfer money to this account?","description":"The description of the archived insight."},"data":{"description":"The data that describes the archived insight.","$ref":"#/definitions/InsightData"},"dateInsightCreated":{"type":"integer","format":"int64","example":1549976786000,"description":"The epoch timestamp in milliseconds in UTC when the insight was created."},"dateArchived":{"type":"integer","format":"int64","example":1550237520000,"description":"The epoch timestamp in milliseconds in UTC when the insight was archived."}}},"PaymentRequestReconciliationResponse":{"type":"object","required":["paymentRequestReconciliationData","totalTransferCount"],"properties":{"totalTransferCount":{"type":"integer","format":"int32","example":24,"description":"The total count of transfers returned for the given filtering options."},"paymentRequestReconciliationData":{"type":"array","description":"The list of payment requests with their respective transfers.","items":{"$ref":"#/definitions/PaymentRequestReconciliationData"}}}}}}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy