/** * Delete a transaction * Delete a single transaction of the user that is authorized by the access_token.<br/><br/> A transaction can only get deleted if at least one of the following holds true:<br/> &bull; The transaction belongs to a 'demo connection'<br/> &bull; The transaction's 'potentialDuplicate' flag is set to TRUE<br/> &bull; The transaction is an adjusting entry ('Zwischensaldo' transaction) that was added by finAPI<br/><br/>Note that the 'Delete all transactions' service has additional functionality and allows you to delete transactions that you cannot delete with this service. * @param id Identifier of transaction (required) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<Void> deleteTransactionWithHttpInfo(Long id) throws ApiException { com.squareup.okhttp.Call call = deleteTransactionValidateBeforeCall(id, null, null); return apiClient.execute(call); }
/** * Revoke a token * An additional endpoint for the OAuth 2.0 Standard, which allows clients to notify finAPI that a previously obtained refresh_token or access_token is no longer required. A successful request will invalidate the given token. The revocation of a particular token may also cause the revocation of related tokens and the underlying authorization grant. For token_type_hint=access_token finAPI will invalidate only the given access_token. For token_type_hint=refresh_token, finAPI will invalidate the refresh token and all access tokens based on the same authorization grant. If the token_type_hint is not defined, finAPI will revoke all access and refresh tokens (if applicable) that are based on the same authorization grant.<br/><br/>Note that the service responds with HTTP status code 200 both if the token has been revoked successfully, and if the client submitted an invalid token.<br/><br/>Note also that the client's access_token is required to authenticate the revocation.<br/><br/>Here is an example of how to revoke a user's refresh_token (and therefore also his access tokens):<pre>Authorization: Bearer {client_access_token} POST /oauth/revoke?token={refresh_token}&token_type_hint=refresh_token</pre> * @param token The token that the client wants to get revoked (required) * @param tokenTypeHint A hint about the type of the token submitted for revocation (optional) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<Void> revokeTokenWithHttpInfo(String token, String tokenTypeHint) throws ApiException { com.squareup.okhttp.Call call = revokeTokenValidateBeforeCall(token, tokenTypeHint, null, null); return apiClient.execute(call); }
/** * Trigger categorization * Triggers finAPI's background categorization process for all uncategorized transactions of the given bank connection(s) (or of all of the user's bank connections, if no bank connection identifiers are passed). The service returns as soon as the categorizations are scheduled. At this point, the bank connections will have their 'categorizationStatus' set to 'PENDING'. Use the service \"Get a bank connection\" or \"Get all bank connections\" to check when the categorization has finished (this is the case when the categorizationStatus has switched to 'READY').<br/><br/>Note that if at least one of the target bank connections is currently locked at the time when you call this service (i.e. the bank connection is currently being updated, or another categorization is already scheduled for it), then no categorization will be triggered at all and the service will respond with HTTP code 422.<br/><br/>Please also note:<br/>&bull; finAPI's background categorization process is executed automatically whenever you import or update a bank connection (though in case of update, it will categorize only the new transactions, and not re-run categorization for previously imported transactions). This means that in general you do not have to call this service after an import or update. Use this service only when you wish to re-run the categorization of all existing uncategorized transactions.<br/>&bull; if you wish to just manually assign categories to transactions, please use the service \"Edit a transaction\" or \"Edit multiple transactions\" instead. * @param body Trigger categorization parameters (required) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<Void> triggerCategorizationWithHttpInfo(TriggerCategorizationParams body) throws ApiException { com.squareup.okhttp.Call call = triggerCategorizationValidateBeforeCall(body, null, null); return apiClient.execute(call); }
/** * Delete an unverified user * Delete an unverified user. Must pass your global (i.e. client) access_token.<br/><br/>Notes:<br/>&bull; Unverified users can only exist if the field 'isUserAutoVerificationEnabled' (see Client Configuration Resource) is set to 'false' (or had been false at some point in the past).<br/>&bull; finAPI will send a notification about the deletion of the user to each of your clients that has a user synchronization callback URL set in its configuration. This also includes the client that is performing this request.<br/>&bull; finAPI regards user identifiers case-insensitive. * @param userId (required) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<Void> deleteUnverifiedUserWithHttpInfo(String userId) throws ApiException { com.squareup.okhttp.Call call = deleteUnverifiedUserValidateBeforeCall(userId, null, null); return apiClient.execute(call); }
/** * Change client credentials * Change the client_secret for any of your clients, including the mandator admin client. Must pass the <a href='https://finapi.zendesk.com/hc/en-us/articles/115003661827-Difference-between-app-clients-and-mandator-admin-client'>mandator admin client</a>'s access_token. <br/><br/>NOTES:<br/>&bull; When you change a client's secret, then all of its existing access tokens will be revoked. User access tokens are not affected.<br/>&bull; finAPI is storing client secrets with a one-way encryption. A lost client secret can NOT be recovered. * @param body Parameters for changing client credentials (required) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<Void> changeClientCredentialsWithHttpInfo(ChangeClientCredentialsParams body) throws ApiException { com.squareup.okhttp.Call call = changeClientCredentialsValidateBeforeCall(body, null, null); return apiClient.execute(call); }
/** * Mock batch update * This service can be used to mock an update of one or several bank connections by letting you simulate finAPI's communication with a bank server. More specifically, you can provide custom balances and transactions for existing accounts and finAPI will import that data into the accounts as if the data had been delivered by a real bank server during a real update. The idea of this service is to allow you to create accounts with specific data in them so that you can test your application in different scenarios.<br/><br/>You can also test your application's reception and processing of push notifications with this service, by enabling the 'triggerNotifications' flag in your request. When this flag is enabled, finAPI will send notifications to your application based on the notification rules that are set up for the user and on the data you provided in the request, the same way as it works with finAPI's real automatic batch update process.<br/><br/>Note that this service behaves mostly like calling the bank connection update service, meaning that it returns immediately after having asynchronously started the update process, and also meaning that you have to check the status of the updated bank connections and accounts to find out when the update has finished and what the result is. As you can update several bank connections at once, this service is closer to how finAPI's automatic batch updates work as it is to the manual update service though. Because of this, the result of the mocked bank connection updates will be stored in the 'lastAutoUpdate' field of the bank connections and not in the 'lastManualUpdate' field. Also, just like with the real batch update, any bank connection that you use with this service must have a PIN stored (even though it is not actually forwarded to any bank server).<br/><br/>Also note that this service may be called only when the user's automatic bank connection updates are disabled, to make sure that the mock updates cannot intervene with a real update (please see the User field 'isAutoUpdateEnabled'). Also, it is currently not possible to mock data for security accounts with this service, as you can only pass transactions, but not security positions.<br/><br/>Please be aware that you will 'mess up' the accounts when using this service, meaning that when you perform a real update of accounts that you have previously updated with this service, finAPI might detect inconsistencies in the data that exists in its database and the data that is reported by the bank server, and try to fix this with the insertion of an adjusting entry ('Zwischensaldo' transaction). Also, new real transactions might not get imported as finAPI could match them to mocked transactions. <b>THIS SERVICE IS MEANT FOR TESTING PURPOSES DURING DEVELOPMENT OF YOUR APPLICATION ONLY!</b> This is why it will work only on the sandbox or alpha environments. Calling it on the live environment will result in <b>403 Forbidden</b>. * @param body Data for mock bank connection updates (required) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<Void> mockBatchUpdateWithHttpInfo(MockBatchUpdateParams body) throws ApiException { com.squareup.okhttp.Call call = mockBatchUpdateValidateBeforeCall(body, null, null); return apiClient.execute(call); }
/** * Delete a bank connection * Delete a single bank connection of the user that is authorized by the access_token, including all of its accounts and their transactions and balance data. Must pass the connection's identifier and the user's access_token.<br/><br/>Notes: <br/>- All notification rules that are connected to the bank connection will get adjusted so that they no longer have this connection listed. Notification rules that are connected to just this bank connection (and no other connection) will get deleted altogether. <br/>- A bank connection cannot get deleted while it is in the process of import, update, or transactions categorization. * @param id Identifier of the bank connection to delete (required) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<Void> deleteBankConnectionWithHttpInfo(Long id) throws ApiException { com.squareup.okhttp.Call call = deleteBankConnectionValidateBeforeCall(id, null, null); return apiClient.execute(call); }
/** * Create IBAN rules * This service can be used to define IBAN rules for finAPI's transaction categorization system. The transaction categorization is run automatically whenever new transactions are imported, as well as when you call the services 'Check categorization' or 'Trigger categorization'. <br/><br/>An IBAN rule maps an IBAN to a certain category. finAPI's categorization system will pick the category as a candidate for any transaction whose counterpart's account matches the IBAN. It is not guaranteed though that this candidate will actually be applied, as there could be other categorization rules that have higher priority or that are an even better match for the transaction.<br/><br/>Note that the rules that you define here will be applied to all of your users. They have higher priority than finAPI's default categorization rules, but lower priority than user-specific rules (User-specific rules are created implicitly whenever a category is manually assigned to a transaction via the PATCH /transactions services). IBAN rules have a higher priority than keyword rules (see the 'Create keyword rules' service). * @param body IBAN rule definitions (required) * @return ApiResponse<IbanRuleList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<IbanRuleList> createIbanRulesWithHttpInfo(IbanRulesParams body) throws ApiException { com.squareup.okhttp.Call call = createIbanRulesValidateBeforeCall(body, null, null); Type localVarReturnType = new TypeToken<IbanRuleList>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Request SEPA Money Transfer * Submit a SEPA money transfer order for either a single or a collective money transfer. Returns an instruction from the bank server that can be displayed to the user (e.g. \"Enter TAN\"), typically in the language of the bank's country. The order remains valid for execution for only a couple of minutes (the exact validity period depends on the bank). For executing the order, use the /executeSepaMoneyTransfer service after calling this service. Note that when the order is not executed within the validity period, the bank might take note of that and - if happening too often - ultimately lock the user's online banking access. If there already exists a previously submitted but not yet executed SEPA order for this account (either another money transfer order, or a direct debit order), then that order will be discarded and replaced with the new order that is being created with this service call.<br/><br/>Notes:<br/>&bull; Some banks may require a multi-step authentication, in which case the service will respond with HTTP code 510 and an error message containing a challenge for the user from the bank. You must display the challenge message to the user, and then retry the service call, passing the user's answer to the bank's challenge in the 'challengeResponse' field.<br/>&bull; When using a two-step-procedure with flag 'implicitExecute' = true, then this service will immediately execute the money transfer. The response will not contain any challenge message and you won't be required to make a subsequent call to /executeSepaMoneyTransfer.<br/><br/>NOTE: Depending on your license, this service may respond with HTTP code 451, containing an error message with a identifier of web form in it. In addition to that the response will also have included a 'Location' header, which contains the URL to the web form. In this case, you must forward your user to finAPI's web form. For a detailed explanation of the Web Form Flow, please refer to this article: <a href='https://finapi.zendesk.com/hc/en-us/articles/360002596391' target='_blank'>finAPI's Web Form Flow</a> * @param body Parameters for a SEPA money transfer request (required) * @return ApiResponse<MoneyTransferOrderingResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<MoneyTransferOrderingResponse> requestSepaMoneyTransferWithHttpInfo(RequestSepaMoneyTransferParams body) throws ApiException { com.squareup.okhttp.Call call = requestSepaMoneyTransferValidateBeforeCall(body, null, null); Type localVarReturnType = new TypeToken<MoneyTransferOrderingResponse>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Edit client configuration * Edit your client's configuration. Must pass your global (i.e. client) access_token.<br/><br/> <b>NOTE</b>: When token validity periods are changed, this only applies to newly requested tokens, and does not change the expiration time of already existing tokens. * @param body Client configuration parameters (optional) * @return ApiResponse<ClientConfiguration> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<ClientConfiguration> editClientConfigurationWithHttpInfo(ClientConfigurationParams body) throws ApiException { com.squareup.okhttp.Call call = editClientConfigurationValidateBeforeCall(body, null, null); Type localVarReturnType = new TypeToken<ClientConfiguration>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Create a new category * Create a new custom transaction category for the authorized user, that can then be assigned to transactions via PATCH /transactions, and that will also be regarded in finAPI's automatic transactions categorization process. Must pass the user's access_token. * @param body Parameters of the new category (optional) * @return ApiResponse<Category> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<Category> createCategoryWithHttpInfo(CategoryParams body) throws ApiException { com.squareup.okhttp.Call call = createCategoryValidateBeforeCall(body, null, null); Type localVarReturnType = new TypeToken<Category>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Request password change * Request password change for a user. Must pass your global (i.e. client) access_token. Note that finAPI regards user identifiers case-insensitive. * @param body (optional) * @return ApiResponse<PasswordChangingResource> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<PasswordChangingResource> requestPasswordChangeWithHttpInfo(RequestPasswordChangeParams body) throws ApiException { com.squareup.okhttp.Call call = requestPasswordChangeValidateBeforeCall(body, null, null); Type localVarReturnType = new TypeToken<PasswordChangingResource>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Create keyword rules * This service can be used to define keyword rules for finAPI's transaction categorization system. The transaction categorization is run automatically whenever new transactions are imported, as well as when you call the services 'Check categorization' or 'Trigger categorization'. <br/><br/>A keyword rule maps a set of keywords to a certain category. finAPI's categorization system will pick the category as a candidate for any transaction that contains at least one of the defined keywords in its purpose or counterpart information. It is not guaranteed though that this candidate will actually be applied, as there could be other categorization rules that have higher priority or that are an even better match for the transaction. If there are multiple keyword rules that match a transaction, finAPI will pick the one with the highest count of matched keywords.<br/><br/>Note that the rules that you define here will be applied to all of your users. They have higher priority than finAPI's default categorization rules, but lower priority than user-specific rules (User-specific rules are created implicitly whenever a category is manually assigned to a transaction via the PATCH /transactions services). Keyword rules have a lower priority than IBAN rules (see the 'Create IBAN rules' service). * @param body Keyword rule definitions (required) * @return ApiResponse<KeywordRuleList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<KeywordRuleList> createKeywordRulesWithHttpInfo(KeywordRulesParams body) throws ApiException { com.squareup.okhttp.Call call = createKeywordRulesValidateBeforeCall(body, null, null); Type localVarReturnType = new TypeToken<KeywordRuleList>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Delete keyword rules * Delete one or multiple keyword rules that you have previously created via the 'Create keyword rules' service. * @param body List of keyword rule identifiers.The maximum number of identifiers is 100. (required) * @return ApiResponse<IdentifierList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<IdentifierList> deleteKeywordRulesWithHttpInfo(IdentifiersParams body) throws ApiException { com.squareup.okhttp.Call call = deleteKeywordRulesValidateBeforeCall(body, null, null); Type localVarReturnType = new TypeToken<IdentifierList>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Execute SEPA Direct Debit * Execute a SEPA direct debit order that has been previously submitted by the use of the /requestSepaDirectDebit service.<br/><br/>Note: in case of using finAPI's web form flow, the web form is dealing with triggering this service itself. * @param body Parameters for the execution of a SEPA direct debit order (required) * @return ApiResponse<PaymentExecutionResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<PaymentExecutionResponse> executeSepaDirectDebitWithHttpInfo(ExecuteSepaDirectDebitParams body) throws ApiException { com.squareup.okhttp.Call call = executeSepaDirectDebitValidateBeforeCall(body, null, null); Type localVarReturnType = new TypeToken<PaymentExecutionResponse>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Edit multiple transactions * Edit one or multiple transactions. You can edit the following fields: 'isNew=true|false' and/or 'isPotentialDuplicate=false' and/or 'categoryId=<id>' and/or 'labelIds=[<ids>]'. To clear the category of the given transactions (so that they are no longer categorized), pass the value '0' as the categoryId. To clear the labels of the given transactions, pass an empty array of label identifiers: '[]'. The parameters 'categoryId' and 'labelIds' are forbidden if 'ids' is NOT set (i.e. you cannot update the category or labels for ALL transactions). The result is a list of identifiers of only those transactions that have changed as a result of this service call. * @param body Update transactions parameters (required) * @return ApiResponse<IdentifierList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<IdentifierList> editMultipleTransactionsWithHttpInfo(UpdateMultipleTransactionsParams body) throws ApiException { com.squareup.okhttp.Call call = editMultipleTransactionsValidateBeforeCall(body, null, null); Type localVarReturnType = new TypeToken<IdentifierList>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Update a bank connection * Update an existing bank connection of the user that is authorized by the access_token. Downloads and imports the current account balances and new transactions. Must pass the connection's identifier and the user's access_token. For more information about the processes of authentication, data download and transactions categorization, see POST /bankConnections/import. Note that supported two-step-procedures are updated as well. It may unset the current default two-step-procedure of the given bank connection (but only if this procedure is not supported anymore by the bank). You can also update the \"demo connection\" (in this case, the fields 'bankingPin', 'importNewAccounts', and 'skipPositionsDownload' will be ignored).<br/><br/>Note that you cannot trigger an update of a bank connection as long as there is still a previously triggered update running.<br/><br/><b>For a more in-depth understanding of the update process, please also read this article on our Dev Portal: <a href='https://finapi.zendesk.com/hc/en-us/articles/115000296607-Import-Update-of-Bank-Connections-Accounts' target='_blank'>Import & Update of Bank Connections / Accounts</a></b><br/><br/>NOTE: Depending on your license, this service may respond with HTTP code 451, containing an error message with a identifier of web form in it. In addition to that the response will also have included a 'Location' header, which contains the URL to the web form. In this case, you must forward your user to finAPI's web form. For a detailed explanation of the Web Form Flow, please refer to this article: <a href='https://finapi.zendesk.com/hc/en-us/articles/360002596391' target='_blank'>finAPI's Web Form Flow</a> * @param body Update bank connection parameters (required) * @return ApiResponse<BankConnection> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<BankConnection> updateBankConnectionWithHttpInfo(UpdateBankConnectionParams body) throws ApiException { com.squareup.okhttp.Call call = updateBankConnectionValidateBeforeCall(body, null, null); Type localVarReturnType = new TypeToken<BankConnection>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Delete all notification rules * Delete all notification rules of the user that is authorized by the access_token. Must pass the user's access_token. * @return ApiResponse<IdentifierList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<IdentifierList> deleteAllNotificationRulesWithHttpInfo() throws ApiException { com.squareup.okhttp.Call call = deleteAllNotificationRulesValidateBeforeCall(null, null); Type localVarReturnType = new TypeToken<IdentifierList>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Get a notification rule * Get a single notification rule of the user that is authorized by the access_token. Must pass the notification rule's identifier and the user's access_token. * @param id Identifier of requested notification rule (required) * @return ApiResponse<NotificationRule> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<NotificationRule> getNotificationRuleWithHttpInfo(Long id) throws ApiException { com.squareup.okhttp.Call call = getNotificationRuleValidateBeforeCall(id, null, null); Type localVarReturnType = new TypeToken<NotificationRule>(){}.getType(); return apiClient.execute(call, localVarReturnType); }
/** * Import a new bank connection * Imports a new bank connection for a specific user. Must pass the connection credentials and the user's access_token. All bank accounts will be downloaded and imported with their current balances, transactions and supported two-step-procedures (note that the amount of available transactions may vary between banks, e.g. some banks deliver all transactions from the past year, others only deliver the transactions from the past three months). The balance and transactions download process runs asynchronously, so this service may return before all balances and transactions have been imported. Also, all downloaded transactions will be categorized by a separate background process that runs asynchronously too. To check the status of the balance and transactions download process as well as the background categorization process, see the status flags that are returned by the GET /bankConnections/<id> service.<br/><br/>Note that some banks may require a multi-step authentication, in which case the service will respond with HTTP code 510 and an error message containing a challenge for the user from the bank. You must display the challenge message to the user, and then retry the service call, passing the user's answer to the bank's challenge in the 'challengeResponse' field.<br/><br/>You can also import a \"demo connection\" which contains a single bank account with some pre-defined transactions. To import the demo connection, you need to pass the identifier of the \"finAPI Test Bank\". In case of demo connection import, any other fields besides the bank identifier can remain unset. The bankingUserId, bankingCustomerId, bankingPin, and storePin fields will be stored if you pass them, however they will not be regarded when updating the demo connection (in other words: It doesn't matter what credentials you choose for the demo connection). Note however that if you want to import the demo connection multiple times for the same user, you must use a different bankingUserId and/or bankingCustomerId for each of the imports. Also note that the skipPositionsDownload flag is ignored for the demo bank connection, i.e. when importing the demo bank connection, you will always get the transactions for its account. You can enable multi-step authentication for the demo bank connection by setting the bank connection name to \"MSA\".<br/><br/><b>For a more in-depth understanding of the import process, please also read this article on our Dev Portal: <a href='https://finapi.zendesk.com/hc/en-us/articles/115000296607-Import-Update-of-Bank-Connections-Accounts' target='_blank'>Import & Update of Bank Connections / Accounts</a></b><br/><br/>NOTE: Depending on your license, this service may respond with HTTP code 451, containing an error message with a identifier of web form in it. In addition to that the response will also have included a 'Location' header, which contains the URL to the web form. In this case, you must forward your user to finAPI's web form. For a detailed explanation of the Web Form Flow, please refer to this article: <a href='https://finapi.zendesk.com/hc/en-us/articles/360002596391' target='_blank'>finAPI's Web Form Flow</a> * @param body Import bank connection parameters (required) * @return ApiResponse<BankConnection> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ public ApiResponse<BankConnection> importBankConnectionWithHttpInfo(ImportBankConnectionParams body) throws ApiException { com.squareup.okhttp.Call call = importBankConnectionValidateBeforeCall(body, null, null); Type localVarReturnType = new TypeToken<BankConnection>(){}.getType(); return apiClient.execute(call, localVarReturnType); }