With PSD2 (Directive (EU) 2015/2366 of the European Parliament and of the Council on Payment Services in the Internal Market, published 25 November 2016) the European Union has published a new directive on payment services in the internal market. Among others PSD2 contains regulations on new services to be operated by so called Third Party Payment Service Providers (TPP) on behalf of a Payment Service User (PSU).
These new services are:
- Payment Initiation Service (PIS) to be operated by a Payment Initiation Service Provider (PISP) TPP as defined by article 66 of [PSD2],
- Account Information Service (AIS) to be operated by an Account Information Service Provider (AISP) TPP as defined by article 67 of [PSD2], and
- Confirmation on the Availability of Funds Service (FCS) to be used by a Payment Instrument Issuing Service Provider (PIISP) TPP as defined by article 65 of [PSD2].
To implement these new services (subject to PSU consent) a TPP needs to access the account of the PSU. The account is usually managed by another PSP called the Account Servicing Payment Service Provider (ASPSP). To support the TPP in accessing the accounts managed by an ASPSP, each ASPSP has to provide an "access to account interface" (XS2A interface). Responsibilities and rights of TPP and ASPSP concerning the interaction at the XS2A interface are defined and regulated by PSD2.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
- Java JDK version 1.8.x, Maven 3.x
- IDP-Server (we recommend Keycloak)
- Docker (Optional)
- MongoDB for persistent mocks (Optional)
Available in the documentation
Clone git repository and build a project:
$ git clone https://github.com/adorsys/xs2a.git
$ cd xs2a
$ mvn clean install
Run an ASPSP-Mock-Server:
$ cd aspsp-mock-server
$ mvn spring-boot:run -Drun.profiles=fongo
Open a browser on page http://localhost:28080/swagger-ui.html
Run a XS2A-Server:
$ cd xs2a-impl
$ mvn spring-boot:run
Open a browser on page http://localhost:8080/swagger-ui.html
Now you may try to put some data using the mock-server and to access it using the xs2a-interface. See detailed documentation for a requests specification. If you are not using a real MongoDB server on port localhost:27017, the InMemory database will be used instead. this means that all mock data will be lost upon restart.
Dockerfiles provided in the project allow to put the build artifacts into a docker images. Those images are to be configured through your environment (documentation follows) to interact properly.
More details see in instruction
- Java, version 1.8 - The main language of implementation
- Maven, version 3.0 - Dependency Management
- Spring Boot - Spring boot as core Java framework
Please read CONTRIBUTING for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
Release is being done using the release scripts ( (C) by Boris Skert ) located under scripts/release-scripts. For detailed info see README for release-scripts.
Release is made from local copy! Ensure that you have enough rights to push to master and develop branches
$ git submodule update
$ scripts/release-scripts/release.sh <release-version> <next-develop-version>
Example
$ scripts/release-scripts/release.sh 1.0 1.1
- Francis Pouchata - Initial work - adorsys
See also the list of contributors who participated in this project.
This project is licensed under the Apache License version 2.0 - see the LICENSE.md file for details