Skip to content

asamek/finapi-java-client

 
 

Repository files navigation

EO principles respected here We recommend IntelliJ IDEA

License

Releases

Maven Central

Builds

Build Status Build status

Code quality

codecov codebeat badge SonarCloud Report

Puzzle Driven Development

PDD status

Community

Join the chat at https://gitter.im/finapi-java-client/Lobby

finapi-java-client is a true-OOP Java client for API provided by finAPI.

Principles

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

How to use

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.

Implementation status

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

What about logging?

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

How to contribute

Just fork the repo and send a pull request.

Make sure your branch builds without any warnings/issues:

mvn clean install

License

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.

About

True-OOP Java client for API provided by https://finapi.io

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.9%
  • Shell 0.1%