Framework for API Implementation
In my last blog we looked into the enterprise perspective for exposing API which included exposing of API for internal channel, Partner channel and lastly for product and service innovation. In this blog I have attempted to provide a framework for API implementation. However before I can introduce the framework it is important to set the context of digital and role of API. Today it is needless to say digital is in the forefront of banks' transformation strategy to stay relevant, as there are multiple forces that are working against banks which includes
- Customer demand for more and more personalized and value added services
- Customer demand for services on his / her choice of devices and proliferation of devices surely causing a big disruption for banks
- Next generation Fintech companies coming between customer and banks
- Regulatory needs
- And increasing competition impacting profitability
Hence it is increasingly becoming important for banks to re-invent itself to focus on acquisition, retention and increasing its wallet share. In simple term, digital priorities for any bank is translating into
- Great customer experience (know me, anticipate my needs, fulfill my immediate need and reward my loyalty)
- Quick product and service innovation addressing market need
- Increase banks reach for acquisition and servicing
To design an API implementation framework we can simply extend the above digital priorities and derive the key design consideration for APIs, which can be summarized as
- API should enable decoupling of customer interaction / journey from product & service journeys
- Customer journey facing API should focus on customer need keeping banks proposition intact
- API should enable contextual connectivity to customer on its preferred mode / medium / location
- API should consider exposing Product & Service capabilities ensuring encapsulation of banks internal processes
- API should enable quick contextualizing of product and services for specific market and customer segments by supplementing with partner services & product
- API should simplify exposing its product and services to partner, client and supplier ecosystem ensuring that APIs are focused on achieving certain end customer goal
- Access to banks products & service resources should be provided in the context of a customer journey
The picture below provides a simplified view of the framework
The key layers of the framework are
- Journey API - Contextualize business interaction in a form of resources and actions to achieve a certain business goal considering "Customer Context", "Customer Interaction Goal" and "Interaction Mode". The key aspects of these APIs are
- Abstract layer that provides channel (web, mobile, B2B, ATM etc.) specific access to relevant resources
- Multi Resource Model
- Handles Journey specific requirements of security, routing and application service mash-up etc.
- Journey API usually encompasses all the operations needed to complete a specific journey such as advice, transaction journeys. This allows independent scaling up of specific scenarios.
- Customization of journey for specific customer needs are handled
- Functional API - Focuses on standardizing access to business function encompassing business rules and data focusing on banks need addressing "regulatory requirement", "functional rules" and "data". The key aspect of these APIs are
- Provides higher level business relevant capabilities - like Payment Initiation, Payment Approval etc.
- Implements business logic and rules specific to banks regulatory needs
- Functionally atomic relevant for respective LoBs, which can orchestrate between other entity services.
- Customer Analytics API - The key element in any digital model which exposes customer insight internally and externally. This layer provides the customer context to the journey API layer to ensure that Journey API provide a contextual journey to client
- Partner API - This provides access to partner product and services as set of business API contextualize for the bank. The Functional API utilizes the partner API to expose high level business capabilities as API
- Product Platform API - This provides access to banks product and services for functional API layer to expose high level business capabilities
- Entity API - This provide any specific data handling required for exposing functional API. The focus of this layer is to enable any specific handling required for API layer and should not result in data duplication
- API Management Layer enables access to the Journey API ensuring
- Strong access control, identity federation and social login functionality
- API life cycle management
- Manage API SLA
- Community Engagement - Give developers the resources they need to create applications that deliver real value
There are various approaches available to implement these type of API, however Microservice based approach seems to fit very well. Implementation approach is another big topic which I will discuss later.