The reference implementation for designing the international payments experience with the TransferWise API.
This implementation is based on the following documents:
Have a look at Bank Integrations Reference Implementation (Android) for a reference Android App implementation.
The reference backend consists of:
- Main Java Spring Boot application.
- Database that represents the internal database of the Bank.
- A set of unit and integration tests covering a variety of use cases.
This repository contains a representation of a Bank's integration with TransferWise's API but this is NOT production-ready code.
The Spring Boot application will provide of a set of endpoints to be consumed by the Bank's Apps. You will find more information about this endpoints once you run the application and checkout the endpoint documentation powered by Swagger that you can find in http://localhost:8080/swagger-ui.html
Before running the server, you'll need to set the following values located in application.properties
twbank.clientId
-> unique Id identifying your product (Please contactbanks@transferwise.com
to get started.)twbank.secret
-> secret linked to the previous client id.
This example database represents the internal database of the Bank and contains the following:
- Bank's customer information
- Supported currencies
- Transfer history
- A correlation between TransferWise and Banks customer IDs
- Token management
In order to run this server, you must have the following dependencies installed in your machine
- Java 11+
- Postgres DB
** We provide a docker compose file that starts up all necessary dependencies with the command
docker-compose -d up
Once dependencies are running, to startup the Spring Boot application please run:
./gradlew bootRun
To run the tests please run:
./gradlew test
Copyright 2019,2020 TransferWise Ltd.
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.