Fintech or Financial technology is the automation of traditional financial services to deliver state-of-the-art online banking services. These services are usually delivered through designing mobile applications, desktop applications, or web-based applications. Since 2021, Fintech startups are increasing rapidly, statistics show that almost 26,300+ online financial services were introduced in the market. In this blog, we will learn how to build a fintech application on AWS using plaid API.
- In America, almost 10,755 fintech startups were launched.
- In Europe, Africa, and the Middle East 9,323 financial services were launched.
- In the Asia Pacific region, 6,268 fintech applications were launched.
What Is Fintech
Fintech is an innovation of traditional financial services where innovation and technology are used to process online payments via mobile or web apps. If you have used these services you must be familiar with online fintech apps where multiple banking services collaborate to deliver ease to customers.
These fintech applications are integrated with plaid APIs to give an interface for different use-cases including online transactions, collecting bank data, and collaborating with third-party apps to make online banking easier.
What Is Plaid API & Plaid App
Plaid API is an integration of outsourced API with bank services. These APIs provide an interface to interact with pre-build online services with plaid. To gain access to plaid APIs, create an account with plaid developers and access the plaid dashboard. Once you complete the signup process and accept our terms and services. You will be provided with a live client_id and a secret key to access API through an interface.
Plaid delivers online reliable app integration services to thousands of banks to seamlessly empower your fintech innovative application. It includes American Express, Ally Bank, Discover, Fifth Third Bank, Coinbase, Citi, and more bank services. Now, let’s learn more about plaid integration in your fintech application on the AWS platform. Although plaid has wonderful API documentation to integrate with your application using the AWS platform.
Getting Started With A Fintech App On AWS Using The Plaid API
In this blog, we are heading to design a demo plaid-based fintech application on Amazon Web Services (AWS) using AWS Amplify and plaid API. AWS Amplify is an off-the-shelf service by Amazon to develop full-stack web or mobile applications by integrating pre-build services including Amazon Cognito, Amazon API Gateway, Amazon DynamoDB, and more. Anyhow, Let’s elaborate on the whole process in numerous steps to understand how AWS Amplify works.
- First AWS Amplify generates some code for the signup user and then authenticates to store it in the database by using Amazon Cognito user pools.
- It also invokes the AWS Lambda method to trigger Amazon API Gateway which is used to generate a REST-API invoked by React frontend.
- While the backend lambda method is used to configure the plaid link which enables users to choose a bank account.
- This AWS Amplify also keeps security measures by using the AWS Secret Manage service to handle plaid secret keys. Moreover, keep in mind the secret key should not appear anywhere in the code or elsewhere.
- DynamoDB database service handles plaid access tokens to save in the database.
AWS Amplify provides a fully compact service and scalable service that does not allow developers to handle it manually. Now, Let’s dive into the plaid link, and see how the plaid link service works.
How Plaid Link Works
To create an application, first, you have to go to plaid.com, click on the Get API Keys, and get set up your new account. Plaid also offers a free sandbox account to login and use the plaid link in your fintech app. Under the menu of Team Settings – Keys, you can find your sandbox API key in the menu in the dashboard.
The above diagram shows what our demo Web app needs to implement.
A plaid client object is used to communicate with the external world through API calls. The client object works as follows:
- Bypassing the Plaid API key and client ID, the Plaid client object is created in an app. Then, it invokes the createLinkToken method on the client end to extract a temporary link token.
- A temporary public token is returned when a user selects a bank. To do this the application uses a link token to open a plaid link to that bank in the list.
- The application then generates a call to the client object exchangePublicToken method to handshake the public token to request a permanent access token and unique identifier that represents the selected bank.
- This permanent access token is stored in DynamoDB to respond to a subsequent request for the bank’s item interface. For instance, users want to access a list of online transactions within a specific time span or day. This stored access token can be used by passing to the client object’s getTransactions method to get transaction history for this client.
Plaid Integration And Deploying A Fintech App
Before plaid API integration and deployment, you have some prerequisites to follow:
- You have to create a sandbox account and configure the plaid API as discussed above.
- You need to install AWS Amplify.
- If you have already installed the AWS Amplify service, the next step is to create a default AWS configuration profile.
- By running the AWS configure command, one can create an AWS configuration profile. This command sets up the AWS_profile environment variable, and more.
Building the App
We are going to build a fintech app and split this process into multiple stages:
- In this step, clone the repository and run npm to install and develop node programs:
- In the next step, initialize a new AWS Amplify project & hit enter to execute with default settings.
- In the next step, Include authentication configurations, and run the following commands.
- Furthermore, it’s time to include Plaid API in your project. To do this run the following commands:
- In this stage, it’s time to include the lambda resource file and install some dependencies.
- In this stage, add a database:
- Finally, update the pre-included lambda functions to revise permissions for the application database.
- Here, you are done with building a simple demo app web-based fintech application. It’s time to discuss application deployment. To do that you need a third-part or AWS hosting to store application resources and communicate with the external world.
Deploying the App
- To include hosting for your sample app, run the following commands:
- Now, it’s time to publish your app online. To do this run the below-mentioned commands. Amplify publish will also return a URL to your deployed app.
- Furthermore, it’s time to test your newly deployed fintech app using plaid api. To validate whether the user will be able to connect with his/her bank account or not. Let’s discuss plaid-based app testing in continuation to our above talk.
Testing the App
In a testing phase, click on the URL returned by the amplify publish command in the above step. By clicking the URL, you will be redirected to a dashboard where you need to sign up as a new user. After login, you will be redirected to an interface where you can select a bank account from the list displayed.
On the other hand, if you are using a sandbox environment, it has some default credentials i.e. user_good/pass_good to get access to a list of banks and transaction records.
Look to Hire Fintech Development Team?
Share the details of your request and we will provide you with a full-cycle team under one roof.
In the above plaid API tutorial, where we elaborated on the whole process of creating an app using plaid. Although it’s easy to create an app using a pre-build plaid API with AWS Amplify. But, apart from it, it’s considered a secure, serverless, scalable, and encrypted way of communication among financial services and a third-party app.
It facilitates the users through different services including signing up, payment transactions, balance history, and the facility to select across 10,000 different bank accounts. Furthermore, by using this API one can include various services including displaying account balances on different interfaces, low balance alerts, money sharing, helping to set budgets, and more.