/Authorize
This is only required for legacy integrations
This is only required if you are using a legacy integration (that does not support OAuth 2.0). If you are using a custom integration that supports OAuth 2.0, see Custom Integrations.Generating a new requestId
All retrieval of data starts with a new session being initiated. For that, you need to generate a new requestId with Flinks by calling/Authorize.
For custom integrations, all credentials handling between Flinks and the Financial Institution is controlled by /Authorize in live mode (when using MostRecentCached:false), and any Multi-Factor Authentication (MFA) prompts need to also be handled.
Integrating with Flinks Connect?
Integrations that use Flinks Connect for handling user banking authentication, use/Authorize in cached mode, by only specifying the parameter "MostRecentCached": "true" and LoginId, as you need to retrieve already processed data. More details can be found here./Authorize initial request body would look like this:
Json
Multi-Factor Authentication
Most financial institutions implement Multi-Factor Authentication, which can be prompted after the first credential pair (username and password) is submitted via/Authorize.
Here is an example of a simple MFA prompt response:
Json
/Authorize, using the new RequestId (session reference), contained in this first response.
Here is an example of the MFA answer request:
Json
/Authorize will respond with a 200 HTTP status code.
Json
/GetAccountDetails, for example).
LoginId
All successfully completed/Authorize step will also return you a LoginId. (which in the last example was b0debb48-f9f1-46c6-80a4-08d7dd88d478)
A LoginId is the reference of the saved connected account, which needs to be kept safe. If in a later moment you would like simply to retrieve the saved data on a particular account, its LoginId needs to be used on a cached call flow. (In a similar way as Flinks Connect integrations retrieve data).
Keep track of each new LoginId, for a later use, or even for a later deletion of data, since Flinks will retain data indefinitely unless /DeleteCard is used.
Special Authorize Flows
Financial institutions can vary in the format of their Multi-Factor Authentication. In this section we have all types of MFA you need to handle in case of a custom integration, including:- Triple MFA
- Image selection
- SecurID
- Reset security questions
- Two-step verification security code
- Trusted device verification
Case 1 (RBC): Triple MFA
This special case is often presented after an incorrect answer is provided in a previous attempt. When this process is triggered, RBC present one of the following procedures:- Reset Questions/Answers when questions are provided.
- Reset Questions/Answers when user has to select new questions.
Case 1: Reset Questions/Answers when the questions are provided.
A triple MFA is presented at once: instead of having to give one answer to a single question, the user needs to give an answer to three different questions. It’s important that you return all three answers in the same call. Prompt example:Json
Json
Case 2 (RBC): Select New Questions and Answers
Now the user has to select three new questions on top of providing three answers. When this case is prompted, we’ll send you three lists of questions; from each list, your user has to choose one question, and then provide an answer. Example:SecurityChallenges object that will be returned.
Json
Case 3 (Laurentienne): Image selection MFA
The authentication process with Laurentienne Bank presents the user with an additional security challenge in the form of an image selection from a list of 16 different images. The Authorize flow looks like this:- Login credentials (username + password)
- 1st MFA (security question)
- 2nd MFA (image selection)
SecurityChallenges object that will be presented as such and comprised of strings in base64 encoding.
Json
Case 4 (National): SecurID MFA
Some National Bank accounts haveSecurID MFA enabled, which need to be answered in a 2 step verification process. The SecurId code will always have 6 digits and needs to be properly answered when it’s prompted. As it’s an extra step in the Authorize process, here’s the order of prompts:
- Login credentials (username + password)
- 1st MFA (SecurID code)
- 2nd MFA (regular security question)
Json
Case 5 (Scotia): Reset Security Questions
With Scotia, a user may be prompted to reset their security questions. The user may be presented with a set of multiple choice questions. There are two distinct types:MultipleChoice: Expects only one answerMultipleChoiceMultipleAnswers: Expects one or more answers
- Login credentials (username and password)
- First set of Security Challenges (personal multiple choice questions)
- Second set of Security Challenges (choosing a set of new security questions)
curl
Json
curl
Note:
This is identical to the procedure as described above with Case 2: Reset Questions/Answers when user has to select new questions.Json
Case 6 (TD): 2 Step Verification Security Code
TD users may be prompted to enter a security code sent to their phone via a text message or phone call. The API will present aSecurityChallenge of type TextOrCall. The procedure is as follows:
- After your regular first Authorize call, the API will prompt the 2 Step Verification Security Code in the API response.
- In the next Authorize call, you have to pass the registered telephone number and the method of receiving the security code. There are two means by which a user can be contacted: Text or Call. After that, the end-user will receive the code from the chosen method and phone number, which will be used for the next step.
- Enter the security code. Once TD validates the sent security code, you will receive a 200 response from the API.
curl
Json
Json
curl
Json
Case 7: Trusted device verification
In this MFA flow, a trusted user’s device receives a notification to confirm the authentication. The API presents aSecurityChallenge of type WaitUntilEUAccept. The procedure is as follows:
- After your regular first Authorize call, the API will prompt the 2-Step Verification Notification in the API response.
- Inform Flinks that the consent was given through the trusted device by answering the MFA via
/Authorize. Once validated by the financial institution, a 200 response will be given by Flinks API.
curl
Json
curl
Json
Json
Json