Choose an Attributes package
Flinks offers the following attribute packages for you to choose from:- Income Attributes
- Lending Attributes
- Credit Risk Attributes
- User Analysis Attributes
- Business Analysis Attributes
- All Consumer Attributes
Environments you’ll need
Flinks provides two environments to you when you start the integration process:- Sandbox: a testing space that you use to set up your Flinks integration and test that it’s working correctly.
- Production: a live production space that allows you to connect real accounts and start using your Flinks product.
Set up the sandbox environment
Flinks provides you with a Sandbox environment that you can use to try out our products. Use it to test your integration and confirm everything is working as expected.Flinks Pay is currently only available in Canada.
- When you’re ready to get started, contact your Flinks Representative and ask them to set you up with a test environment.
- Flinks provides you with a test institution, Flinks Capital, that you can use for testing purposes. For security and privacy reasons, you can’t make live connections to real financial institutions in this environment.
- Build your integration and connect to our APIs using the Sandbox environment.
- When you’re ready, move over to the Production environment.
Set up the production environment
Ask your Flinks Representative to set you up with a private Production environment in advance, so that you’re ready to go-live when testing is complete. When the development and testing process in the Sandbox environment is complete, it’s time to move your Flinks configuration over to the Production environment. Make sure that all of your API calls and iframe URLs are pointing to your private Production environment and not the Sandbox environment. Once you go live, you can start connecting to real accounts and experience the full Flinks service. You can still make requests to Flinks Capital in the Production environment at no cost, but you’ll receive an invoice for all successful live requests.Set Up Your API Connection
To set up your API Connection with Flinks, you will have to make your first API call before receiving data. The following sections will walk you through this process.Make your first API call
This is the first API request that needs to be executed whenever you want to retrieve data from a connected account. Flinks API needs to confirm the validity of the request and to know which account you want to retrieve data from. To do so, you will exchange yourloginId for a new requestId.
For that, the /Authorize endpoint needs to be called using a POST method, and it requires a loginId and the parameter MostRecentCached:true.
To make it more concrete, let’s suppose that you are opening a new session to retrieve the data for the loginId: 5e115eac-1209-4f19-641c-08d6d484e2fe:
curl
Json
loginId (5e115eac-1209-4f19-641c-08d6d484e2fe) was successfully exchanged for a requestid (1243c283-e0ca-4fda-a5e4-343068430190). Now that the session is active, we have everything we need to place a call to retrieve financial data.
Receive data from us
The next step is for your server to send a request for data. This request uses the/GetAccountsDetail endpoint, which also needs to be made using a POST method, and only requires the acquired requestId.
Continuing our example using our requestId (1243c283-e0ca-4fda-a5e4-343068430190), it looks like this:
curl
HTTP 202 FlinksCode:OPERATION_PENDING, meaning that the data you are requesting is still being processed.
Here’s an example of a typical API response for data pending processing:
Json
Receive pending data
For requests that are still pending for data processing, only therequestId is needed, but the parameter goes directly into the API URL as it’s a GET request.
While you receive the response HTTP 202 FlinksCode:OPERATION_PENDING, you need to keep calling this endpoint every 10 seconds for a maximum of 30 minutes.
curl
HTTP 200 and a JSON payload containing all the data we collected from the financial institution in a standard format. Your app server will be ready to start handling it according to your use-case.
Json
Connect to our mandatory Flinks Connect endpoints
Mandatory for all new integrations as of October 2024
If your integration was created prior to October 2024, the authorize token is still optional.Receive a secret key from Flinks
Flinks provides a secret key during the integration process. This is a unique key that identifies you within the system and grants you access to our APIs. Use your secret key to generate an authorize token. This allows us to confirm your identity and ensure that the correct person is accessing the data.Generate an authorize token
Call the/GenerateAuthorizeToken endpoint and pass your secret key.
This token can only be used once and is active for 30 minutes. This token expires if it is not used within 30 minutes, and you must generate a new one.
Send us an authorize token to successfully authenticate
Those using Flinks Connect will pass the authorize token using a customization parameter. Add the authorizeToken customization parameter to your Flinks Connect iframe URL, then pass your authorize token using the formatauthorizeToken=123-456-789. Replace 123-456-789 with your valid token.
For example:
Url
Connect to your Attributes API endpoints
So everything is nearly set up, you. only have a couple more API calls to make before you are fully ready to go to production! This section will guide you through the process of obtaining a newrequestId, retrieving the most recent transactions at that time (/GetAccountsDetail), and using that requestId to call the ‘Attributes’ service.
Overview
In order to take advantage of enhanced data, there are a couple of steps that need to happen. To pull back data attributes, Flinks needs to analyze the most recent transactional data for the end user and convert this into easily ingestible insights. Here is a step-by-step overview of this process:- Receive a new
requestId—using the loginId stored for the end user, call the/Authorizeendpoint with the parameterMostRecentCached:true. - Using the
requestIdthat is generated from this new/Authorizecall, make a call to the/GetAccountsDetail` endpoint to retrieve the most recent transaction history. - Using this
requestId, call the specific/Attributesendpoint to retrieve the required data.
Note on steps 1 and 2
These have been covered previously in the Make API Calls section—please refer to that for more information.Attributes. Please find information on each of the Endpoints below.
/GetIncomeAttributes
This endpoint returns a set ofIncome Verification Attributes, and should be used by clients that have the Income Verification Use-Case Package. The Attributes contained within this request cannot be customized.
Required Parameters:
instancecustomerIdloginIdrequestId
curl
/GetCreditRiskAttributes
This endpoint returns a set ofCredit Risk Attributes and should be used by clients who have the Credit Risk Use-Case Package. The Attributes contained within this request cannot be customized.
Required Parameters:
instancecustomerIdloginIdrequestId
curl
/GetUserAnalysisAtributes
The endpoint returns a set of User Analysis Attributes and should be used by clients that have the User Analysis Use-Case Package. The Attributes contained within this request cannot be customized. Required Parameters:instancecustomerIdloginIdrequestId
curl
/GetLendingAttributes
This endpoint returns a set of Lending Attributes and should be used by clients that have theLending Use-Case Package. The Attributes contained within this request cannot be customized.
Required Parameters:
instancecustomerIdloginIdrequestId
curl
/GetAllAttributes
This endpoint returns all available Attributes that Flinks currently has available. This endpoint is restricted to only clients that have a Tier 2 package and above. The attributes contained within this request cannot be customized. Required Parameters:instancecustomerIdloginIdrequestId
curl
/Attributes
This endpoint is the most customizableAttributes Endpoint. In order to call this Endpoint, you will need to know and include the names of Attributes within your request. This endpoint is used primarily by clients who have specific needs that fall outside of our Use-Case Endpoints.
Required Parameters:
instancecustomerIdloginIdrequestId
MostRecentCachedAttributesYou can also include these additional, optional fields (Please refer to our API reference for further details):
Operations accounts only
Operations is the only supported value.FiltersAccountFilterOptionsAttributesDetail
curl
Json
Attributes engine is done processing the transactional data, the API will respond with a HTTP 200 and a JSON payload containing all the requested data attributes (per the requested use-case) in a standard format; Your app server should be ready to start handling them according to your use-case.
Before moving on, let’s review what we just did:
- Received a new
requestIdwith incomingloginIdby calling /Authorize withMostRecentCached:true. - Requested ready-to-deliver data with /GetAccountsDetail and handled
202 OPERATION_PENDINGresponses. - Set up the call to the required /Attributes endpoint and started receiving data attributes.
Connect to optional API endpoints to enhance your integration
Custom integrations only
This page explains how to set up custom integrations that use a direct API connection. If you are using Flinks Connect, seeSet Up Flinks Connect.- Ask your Flinks Representative to whitelist the URLs that your endpoints will be calling, including the redirect URL in step 2A.
-
Call the
/OAuth/Authorizeendpoint and perform the following tasks:- Redirect the end-user to their bank’s login screen using the
institutionparameter. Here, they’ll enter their login credentials and complete multi-factor authentication (MFA) if required. - Provide a URL to direct the end-users’ screen back to your website or app using the
redirect_urlfield. If the login is successful, you’ll receive a redirect response that contains the redirect URL, aloginId: https://{redirect}?loginId={loginId}&state={state}. If unsuccessful, you’ll receive a redirect response that contains a redirect URL and an error message:https://{redirect}?state={state}&error={error}&error_description={error_description}. For more information about how to make this call, see our API documentation.
- Redirect the end-user to their bank’s login screen using the
-
Call the
/Authorizeendpoint and apply the following settings to initiate the authorization flow:- Pass the
loginIdthat you received in step 2. - Make the call in live mode by setting the
MostRecentCachedparameter toFALSE. For more information about how to make this call, see our API documentation. - Set the
saveparameter toTRUEto maintain communication with the database (to do nightly refreshes, receive insights, and more). For more information on how to make this call, see our API documentation.
- Pass the
Flinks enables your package
To complete this step, ask your Flinks Representative to enable Attributes in your Flinks Connect configuration.Save your loginIds
Flinks issues a uniqueloginId for each customer who successfully authenticates through Flinks Connect. It’s used in combination with a requestId to access the financial data for that particular customer. The loginId for an account doesn’t expire and it never changes unless it’s deleted. If you need to delete a loginId, use the /DeleteCard endpoint.
Store each customer’s loginId in a secure location in your servers and never share it publicly.
-
Retrieve the loginId that Flinks sends you using one of the following methods:
- (Recommended) Use a JavaScript event listener that contains
step:REDIRECT
Json- Flinks adds the
loginIdandinstitutionto the URL after a successful connection. Retrieve it from here:
Url - (Recommended) Use a JavaScript event listener that contains
-
Send the
loginIdto your server app for storage.