# Welcome to the OBP roadmap!

This document contains

* Upcoming developments
* Completed developments (most recent first)
* Future  

Our roadmap is agile and likely to be modified / re-prioritised based on demand from banks and developers. It should be seen as an indication of direction rather than something set in stone. 

This document mainly concerns OBP API but may reference other OBP projects.

If you have a particular requirement or would like to comment or help us specify, please [get in touch](http://www.openbankproject.com/contact) or make a pull request to this document.



## Upcoming developments

*   Extend Swagger support (add expected responses starting with the PSD2 set of endpoints)
*   Monitor / improve performance
*   Web Hooks (on balance change etc.)

## Completed developments (most recent first)


### Kafka versioning
The built in kafka connectors now provide message versioning 

### Akka Remote data (Three tier architechture)
Most OBP data access now happens over Akka. This allows the API layer to be physically separated from the storage layer with the API layer only able to call a specified set of data access functions with only the storage layer having JDBC / SQL access.    

### Security improvements

Including

* User lockout
* Consumer redirect lockdown

### User model refactoring
The two user models are now called AuthUser and ResourceUser


### Version 2.2.0

*   Create View for Account (with can_add_counterparty permission)
*   Update View for Account (with can_add_counterparty permission)
*   Get current FX Rate
*   Get Counterparties
*   Get Metrics


### Version 2.1.0

*   Sandbox Import. This is now a documented call.
*   Get Transaction Request Types Supported By Bank
*   Create Transaction Request (updated)
*   Answer Transaction Request Challenge (updated)
*   Get Transaction Requests (updated)
*   Get Roles (new)
*   Get Entitlements By Bank And User (new)
*   Get Consumer (App) (new)
*   Get Consumers (App) (new)
*   Enable Disable Consumers (Apps) (new)
*   Update Consumer Redirect Url
*   Create Cards For Bank (new)
*   Get Users (new)
*   Create Transaction Type (new)
*   Create Counterparty / Beneficiary (new)
*   Get Atm (new) (Previously we just had the plural)
*   Get Branch (new) (Previously we just had the plural)
*   Get Product (new) (Previously we just had the plural)
*   Get Customer (updated with customer rating and credit limit)

### API Manager 
has been added to manage consumers, users, roles etc.. See [API Manager](https://github.com/OpenBankProject/API-Manager)

### OBP JVM 
has been added as an alternative to the Scala Kafka connector. It handles OBP message queue interaction. See [OBP JVM](https://github.com/OpenBankProject/OBP-JVM)



### Version 2.0.0

*   Move View Permission fields into separate resource so account resource is less cluttered.
*   Rename other_count to counterparty in new API references
*   Customer acquisition and on boarding (user registration, customer, KYC documents, KYC media, status)
*   Get All Accounts At All Banks
*   Get Account By Id (updated)
*   Create Entitlement
*   Create KYC Check
*   Create KYC Document
*   Create KycMedia
*   Create KycStatus
*   Create Social Media Handle
*   Get All Accounts At One Bank
*   Create Account
*   Create Customer
*   Create Meeting
*   Create User
*   Create User Customer Links
*   Delete Entitlement
*   Elastic Search Metrics
*   Elastic Search Warehouse
*   Get All Entitlements
*   Get Core Account By Id
*   Get Core Transactions For Bank Account
*   Get CurrentUser
*   Get Customers
*   Get Entitlements
*   Get Kyc Checks
*   Get Kyc Documents
*   Get Kyc Media
*   Get Kyc Statuses
*   Get Meeting
*   Get Meetings
*   Get Permission For User For Bank Account
*   Get Permissions For Bank Account
*   Get Social Media Handles
*   Get Transaction Types
*   Get User
*   Get Private Accounts At All Banks
*   Get Private Accounts At One Bank
*   Get Public Accounts At All Banks
*   Get Public Accounts At One Bank


### Docker containers

*   Run OBP, API Explorer and Social Finance (a reference App) in Docker.

See [Docker obp-full](https://hub.docker.com/r/openbankproject/obp-full/)


### OBP API Explorer 
is used to explore and interact with the OBP API. See [API Explorer on Sandbox](https://apiexplorersandbox.openbankproject.com/)

### Endpoints for API documentation 
See [Resource Docs endpoint](https://api.openbankproject.com/obp/v1.4.0/resource-docs/obp)


### Kafka connector

*   Get transactions via Kafka bus and language neutral connector on the south side of the MQ

See [Docker obp-full-kafka](https://hub.docker.com/r/openbankproject/obp-full-kafka/)


### Version 1.4.0

This version is stable. For the spec see [here](https://github.com/OpenBankProject/OBP-API/wiki/REST-API-V1.4.0) or [here](https://apiexplorersandbox.openbankproject.com/?version=1.4.0&list-all-banks=false&core=&psd2=&obwg=&ignoredefcat=true)

New features included:

*   Branch Locations
*   Customer messages
*   ATM Locations
*   Customer information
*   Financial products offered by the bank (account types, category, family, link to more info)
*   [Payment Orders with Security Challenges](https://github.com/OpenBankProject/OBP-API/wiki/REST-API-V1.4.0#transactionRequests)

### Version 1.3.0

This version is stable. For the specification see [here](https://github.com/OpenBankProject/OBP-API/wiki/REST-API-V1.3.0) or [here](https://apiexplorersandbox.openbankproject.com/?version=1.3.0&list-all-banks=false&core=&psd2=&obwg=&ignoredefcat=true)

New features included:

*   [Transfers / Payments](https://github.com/OpenBankProject/OBP-API/wiki/REST-API-V1.3.0#transfers)
*   [Cards](https://github.com/OpenBankProject/OBP-API/wiki/REST-API-V1.3.0#all-physical-cards)




### Version 1.2.1

This version is stable. For the specification see [here](https://github.com/OpenBankProject/OBP-API/wiki/REST-API-V1.2.1) or [here](https://apiexplorersandbox.openbankproject.com/?version=1.2.1&list-all-banks=false&core=&psd2=&obwg=&ignoredefcat=true)




## Future

### OAuth Documentation Upgrade

*   Update OAuth docs so API root links are clearly place holders
*   Update SDK docs so API root links are clearly place holders

### Version X

*   Firehose / Elastic Search access to Accounts / Transactions


### Version Y

Intended features:

*   Account type becomes a Type instead of String
*   Add product_code to Account which links to Financial Product

### Version Z

Intended features:

*   Offers

### Version A

Intended features:

*   Extended Customer information (contact info, social info, summary of portfolio across the bank)

### Version B

Intended features:

*   Overdrafts (limit, interest rate, approval date, utilization)
*   Loans (size, reason, interest rate, approval date, utilization)
*   Mortgages (size, reason, property, details)
*   Applications and status of the above

### Version C

Intended features:

*   Fixed term deposits (size, term, interest rate, constraints)
*   Savings accounts (interest rate, constraints)
