finapi-java-client is a true-OOP Java client for API provided by finAPI.
The project is following the next principles (it is a subset of those ones):
- No null
- No getters and setters
- No mutable objects
- No static methods, not even private ones
- No instanceof, type casting or reflection
- No implementation inheritance
Just add the following lines into your pom.xml
<dependency>
<groupId>org.proshin</groupId>
<artifactId>finapi-java-client</artifactId>
<version>${version}</version>
</dependency>
You can find the latest version
on Releases
page.
This library is in early alpha version and not all API methods are implemented yet. This is a status of implementation:
- Authorization
- Get client's token
- Get user's token using credentials
- Get user's token using refresh token
- Revoke a token
- Mandator administration
- Get user list
- Delete users
- Change client credentials
- Get keyword rules
- Create keyword rules
- Delete keyword rules
- Get IBAN rules
- Create IBAN rules
- Delete IBAN rules
- Client configuration
- Get client configuration
- Edit client configuration
- Users
- Get the authorized user
- Get a user's verification status
- Create a new user
- Request password change
- Execute password change
- Verify a user
- Edit the authorized user
- Delete the authorized user
- Delete an unverified user
- Banks
- Get a bank
-
Get a multiple banks(won't be implemented as deprecated) - Get and search all banks
- Bank connections
- Get a bank connection
-
Get multiple bank connections(won't be implemented as deprecated) - Get all bank connections
- Import a new bank connection
- Update a bank connection
- Edit a bank connection
- Delete a bank connection
- Delete all bank connections
- Accounts
- Get an account
-
Get multiple accounts(won't be implemented as deprecated) - Get and search all accounts
- Get daily balances
- Edit an account
- Request SEPA Money Transfer
- Execute SEPA Money Transfer
- Request SEPA Direct Debit
- Execute SEPA Direct Debit
- Delete an account
- Delete all accounts
- Transactions
- Get a transaction
-
Get multiple transactions(won't be implemented as deprecated) - Get and search all transactions
- Split a transaction
- Restore a transaction
- Edit a transaction
-
Edit multiple transactions (DEPRECATED)(won't be implemented as deprecated) - Edit multiple transactions
- Trigger categorization
- Delete a transaction
- Delete all transactions
- Securities
- Get a security
-
Get multiple securities(won't be implemented as deprecated) - Get and search all securities
- Payments
- Get payments
- Categories
- Get a category
-
Get multiple categories(won't be implemented as deprecated) - Get and search all categories
- Get cash flows
- Create a new category
- Train categorization
- Edit a category
- Delete a category
- Delete all categories
- Labels
- Get a label
-
Get multiple labels(won't be implemented as deprecated) - Get and search all labels
- Create a new label
- Edit a label
- Delete a label
- Delete all labels
- Notification rules
- Get a notification rule
- Get and search all notification rules
- Create a new notification rule
- Delete a notification rule
- Delete all notification rules
- Web forms
- Get a web form
- Mocks and tests
- Mock batch update
- Check categorization
The library uses Logback for logging. As well you can enable logging of the Apache HTTP client library by specifying command line parameters (read this for more details):
-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
-Dorg.apache.commons.logging.simplelog.showdatetime=true
-Dorg.apache.commons.logging.simplelog.log.org.apache.http=DEBUG
-Dorg.apache.commons.logging.simplelog.log.org.apache.http.wire=ERROR
Just fork the repo and send a pull request.
Make sure your branch builds without any warnings/issues:
mvn clean install
Copyright 2018-2019 Roman Proshin
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.