> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flinks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Document Processing

> Process, authenticate, and extract data from uploaded bank statements with built-in fraud detection.

Onboard more users by offering to upload bank statements alongside standard bank linking.

Flinks document processing and authentication is a feature that you can enable in Flinks Connect and in your Flinks Dashboard to process, authenticate, and extract data from bank statements. If you’re already using Flinks, you’ll get the data in the same format you are used to via the Flinks Dashboard or API.

<img loading="lazy" src="https://mintcdn.com/flinks-2682732c/SuJctMaY_z3s-D2D/images/flink-connect-upload.gif?s=c5a6db8fcd0dcfa062d511be95116e51" alt="Gif showing a user uploading bank statements in Flinks Connect." style={{ width: "70%", height: "auto", margin: "0 auto", display: "block" }} width="524" height="955" data-path="images/flink-connect-upload.gif" />

**Use this feature if you want to:**

* **Increase your application volume** and **reduce drop-off** by giving users a faster, simpler way to share their financial data.
* Save time and costs associated with manually reviewing statements.
* Automate your current document-processing flows.
* Add an extra layer of security that includes robust fraud detection with actionable verdicts **—Trust, Normal, Warning, or High Risk** documents, allowing you to be confident in the data.

## How it works

Flinks offers two ways to enable document uploads in your flow **—Primary** or only as a **Fallback**. However, you can also send your users a direct link to an upload only flow. You must choose one of these configurations.

### Upload bank statements in Flinks Connect - Primary option

When set as the Primary option, users will see the choice to either link their bank account or upload bank statements right after selecting their institution.

Additionally, the fallback logic (e.g., if login fails or the institution isn't listed) is also enabled under the Primary configuration. This ensures that users can always upload statements if direct bank connection doesn't work. **In other words, the "fallback" behaviour is built into the Primary setting.**

<img loading="lazy" src="https://mintcdn.com/flinks-2682732c/SuJctMaY_z3s-D2D/images/upload_options.png?fit=max&auto=format&n=SuJctMaY_z3s-D2D&q=85&s=aa7619063996d99776f784131b39854a" alt="Series of images showing a user going through the primary upload option." style={{ width: "70%", height: "auto", margin: "0 auto", display: "block" }} width="2410" height="1100" data-path="images/upload_options.png" />

With the Primary option, the "Select a connection method" screen is enabled.

### Upload files as a Fallback option

With Fallback enabled, the "connection method" screen is disabled and users are first required to attempt to link their bank. If they encounter an issue—such as a failed login, wrong credentials, inactivity, or an unlisted institution—only then does the option to upload bank statements appear.

The user can't find their Institution when searching in the institution list.

<img loading="lazy" src="https://mintcdn.com/flinks-2682732c/SuJctMaY_z3s-D2D/images/fallbackoption1.png?fit=max&auto=format&n=SuJctMaY_z3s-D2D&q=85&s=1552521c3c5ce3f28b596c1b71dfe5dd" alt="Image showing the user going through the fallback option. The user searches for their institution, but it does not appear, so the option to upload bank statements is made available." style={{ width: "70%", height: "auto", margin: "0 auto", display: "block" }} width="682" height="1388" data-path="images/fallbackoption1.png" />

Upload statements when the user doesn't remember their username or password.

<img loading="lazy" src="https://mintcdn.com/flinks-2682732c/SuJctMaY_z3s-D2D/images/fallbackoption2.jpeg?fit=max&auto=format&n=SuJctMaY_z3s-D2D&q=85&s=50397f08ab7beb2f5e087f15e1def62f" alt="Image depicting the fallback option. The user types an invalid username, and the option to upload bank statements appears on the error screen." style={{ width: "70%", height: "auto", margin: "0 auto", display: "block" }} width="1170" height="2012" data-path="images/fallbackoption2.jpeg" />

With fallback enabled, your users will also see the option to upload after inactivity.

<img loading="lazy" src="https://mintcdn.com/flinks-2682732c/SuJctMaY_z3s-D2D/images/fallbackoption3.jpeg?fit=max&auto=format&n=SuJctMaY_z3s-D2D&q=85&s=82ee8549a68cc591be2693acb85134bf" alt="Image showing the fallback option. The user times out on the Flinks Connect login screen, and a pop-up appears asking whether the user would like to upload bank statements or connect to their bank." style={{ width: "70%", height: "auto", margin: "0 auto", display: "block" }} width="1170" height="1978" data-path="images/fallbackoption3.jpeg" />

### Send users a direct link to upload documents

By adding `/Upload` to your Flinks Connect URL, you can also send your users to an upload-only flow.

By using parameters in Flinks Connect, you can customize the wording to specify how many bank statements you want to collect from users.

<img loading="lazy" src="https://mintcdn.com/flinks-2682732c/SuJctMaY_z3s-D2D/images/upload_option_screen.png?fit=max&auto=format&n=SuJctMaY_z3s-D2D&q=85&s=3b4f3f4e8d6ade07b2f797b09dfa0263" alt="Image showing the upload-only option screen. The page shows the option to upload bank statements along with a back button, and no other options are available." style={{ width: "70%", height: "auto", margin: "0 auto", display: "block" }} width="1074" height="826" data-path="images/upload_option_screen.png" />

## Enable Upload in your Flinks Connect integration

Flinks Upload is a feature that you can enable in both Flinks Connect and in your Flinks Dashboard which processes and extracts data from a bank statement.

Before following the instructions below, ensure that you have already [set up Flinks Connect](../connect/getting-started). Then, let your Flinks Representative know that you want to start using Flinks Upload. They will walk you through the following steps:

1. Choose which upload screens you want to enable. For more information about the screens you can choose from, see [How Upload works](./upload-a-file#upload-a-file).
2. Choose how you want to receive an alert when a fraud signal is detected in an uploaded file. You can:
   * Be alerted via a notification
   * Set up Webhooks to deliver fraud alerts to you automatically
3. (Optionally) Customize the text on the upload screen.
4. (Optionally) Set up even listeners if you want to take action on any of the following JavaScript events: - Upload component is loaded (`COMPONENT_LOAD_UPLOADconf`)
   * Files are added or removed (`UPLOAD_INPUT_CHANGE`)
   * A fraud signal is triggered by our statement validation service (`UPLOAD_INVALID_FILE`)
   * User clicks the Continue button in Flinks Connect (`UPLOAD_SUBMIT`)
   * Upload fails (`UPLOAD_ERROR`)
5. (Optionally) Call the [/FraudAnalysis](../../api/upload/endpoints/fraud/fraud-analysis) endpoint to check if any fraud signals were detected.

For more information about why you may want to set up an event listener, speak to your Flinks representative.

Once you're set up, you can start uploading files and receiving your data.

## Upload a file

Flinks Upload is a feature that you can enable in Flinks Connect and in your Flinks Dashboard that processes and extracts data from a document.

there are two ways that you can upload a file using Flinks Upload:

* Upload a file through your Flinks Dashboard
* Upload a file through Flinks Connect

You can upload files for a singular customer at a singular financial institution. If you have multiple customer files to upload, complete one upload per customer. If a customer has files from multiple financial institutions, complete one upload per financial institution.

For more information about each method, review the following sections:

### Upload a file through your Flinks Dashboard

Complete the following steps to upload a file in your Flinks Dashboard:

<img loading="lazy" src="https://mintcdn.com/flinks-2682732c/SuJctMaY_z3s-D2D/images/upload_docs.png?fit=max&auto=format&n=SuJctMaY_z3s-D2D&q=85&s=67cb2b023ef1ac86e2476e23def8edea" alt="Pop-up requesting the user to import bank statements and/or a void cheque. The pop-up includes an upload button, a field to name the request, a cancel button, and a continue button." style={{ width: "70%", height: "auto", margin: "0 auto", display: "block" }} width="934" height="1294" data-path="images/upload_docs.png" />

*Click on "import PDF/Image" to upload documents via the Dashboard*

1. In the Dashboard, navigate to the Insights screen, then go to the External Data tab.
2. Select Import PDF.
3. Select the file(s) you want to upload. You must select files for a singular customer at a singular financial institution.
   \[componentCallout component]
   \[componentCallout component]
4. Enter a unique identifier to describe the file(s) you've selected, such as a customer name. This is used to identify the files when we deliver the extracted data to you.
5. Select Import Files. You'll see a success message if we successfully receive your file(s). If you receive an error message, try uploading the files again at a later time.
6. Review the upload status to check if the data is finished processing. Data is typically ready to review within 10 minutes of uploading, but in some cases it may take up to four hours to process.
   \[componentCallout component]

### Upload a file through Flinks Connect

Complete the following steps to upload a file in Flinks Connect.

<img loading="lazy" src="https://mintcdn.com/flinks-2682732c/SuJctMaY_z3s-D2D/images/upload_options.png?fit=max&auto=format&n=SuJctMaY_z3s-D2D&q=85&s=aa7619063996d99776f784131b39854a" alt="Screenshot showing the different steps while uploading" style={{ width: "70%", height: "auto", margin: "0 auto", display: "block" }} width="2410" height="1100" data-path="images/upload_options.png" />

*Primary upload flow in Flinks Connect*

1. Depending on the screen you see, complete one of the following:
   * If you are on the Upload PDF Statements screen, continue to step 2.
   * If you are seeing the upload option after experiencing a bad connection, select Upload PDF statements.
   * If you are being asked to choose a connection option, select Upload bank statements.
2. Select Browse and then select the file(s) you want to upload.
3. Select Continue. You'll see a message if we successfully receive your file(s).
4. Review the upload status to check if the data is finished processing. Data is typically ready to review within 10 minutes of uploading, but in some cases it may take up to four hours to process. For more information about how to review processed data, see [Receive Your Data](./receive-your-data).

## Check for fraud

Flinks checks every bank statement that is uploaded through [Flinks Upload](./flinks-upload) for several signs of fraud. Complete the following steps to check the verification results:

1. In the Dashboard, navigate to the Insights screen.
2. Locate the name of the customer that you want to review the statement verification for, then select on that row.
3. Go to the Document Check tab.
4. This will show a list of all files uploaded for that user, including fraud verdict and document quality.

<img loading="lazy" src="https://mintcdn.com/flinks-2682732c/SuJctMaY_z3s-D2D/images/document_check_tab.png?fit=max&auto=format&n=SuJctMaY_z3s-D2D&q=85&s=70234a6adcc83f4214c785dc88e6987d" alt="Screenshot of the Document Check tab in the Flinks Dashboard. The user has three files uploaded, each file has been checked, and each file has been labeled high risk." style={{ width: "70%", height: "auto", margin: "0 auto", display: "block" }} width="2960" height="740" data-path="images/document_check_tab.png" />

You can review each file by clicking on it to see the underlying risk and trust signals.

<img loading="lazy" src="https://mintcdn.com/flinks-2682732c/SuJctMaY_z3s-D2D/images/check_tab_dashboard.png?fit=max&auto=format&n=SuJctMaY_z3s-D2D&q=85&s=30937995e2b45855b5576a4e78c59dcb" alt="Screenshot of a high-risk document in the Flinks Dashboard. The document has been flagged for several risks, most of which relate to suspicious document edits." style={{ width: "70%", height: "auto", margin: "0 auto", display: "block" }} width="2962" height="1704" data-path="images/check_tab_dashboard.png" />

<Note>
  <p class="h4">Receive fraud signals by API connection</p>

  To receive fraud signals by API, call the [/FraudAnalysis](../../api/upload/endpoints/fraud/fraud-analysis) endpoint.
</Note>

## List of fraud signals

Flinks checks every document that's uploaded through [Flinks Upload](./flinks-upload#upload-bank-statements). We return a verdict and any fraud signals we've found.

To review the verification results of an uploaded file, see [Check for Fraud](./fraud-verification).

### Verdicts

| **VERDICT** | **DESCRIPTION**                                                          |
| :---------- | :----------------------------------------------------------------------- |
| Trusted     | No signs of fraud or modifications were found in the imported documents. |
| Normal      | No signs of fraud or modifications were found in the imported documents. |
| Warning     | One or more documents show signs of fraud or modifications.              |
| High-Risk   | One or more documents show signs of fraud or modifications.              |

### Fraud Signals

| **TYPE OF FRAUD**            | **DESCRIPTION**                                                                                                                                                                                                                                                                                                                                                                                                                              |
| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Editing Software Detected    | The file may have been opened in a PDF-editing or image-editing software.                                                                                                                                                                                                                                                                                                                                                                    |
| Unusual Document Source      | The file may have been created in or downloaded from an unexpected source.                                                                                                                                                                                                                                                                                                                                                                   |
| Account Number Edits         | The account number in the file may have been changed.                                                                                                                                                                                                                                                                                                                                                                                        |
| Name Edits                   | The name in the file may have been changed.                                                                                                                                                                                                                                                                                                                                                                                                  |
| Address Edits                | The address in the file may have been changed.                                                                                                                                                                                                                                                                                                                                                                                               |
| Account Type Edits           | The type of account shown in the file (chequing, savings, etc.) may have been changed.                                                                                                                                                                                                                                                                                                                                                       |
| Dollar Amount Edits          | The dollar value for certain transactions may have been edited. Review the Count column for a count of occurrences. This may include the beginning balance, ending balance, total deposits, total withdrawals, daily balance, individual amounts, and/or ledger balances.                                                                                                                                                                    |
| Date Edits                   | The dates that correspond with certain transactions may have been edited. Review the Count column for a count of occurrences. This may include the begin date, the end date, and/or individual dates.                                                                                                                                                                                                                                        |
| Description Edits            | The descriptions on certain transactions may have been edited. Review the Count column for a count of occurrences.                                                                                                                                                                                                                                                                                                                           |
| Invalid Transaction Dates    | Certain transaction dates fall outside the range captured for this statement and are not reconciled.                                                                                                                                                                                                                                                                                                                                         |
| Reconciled Balance           | The beginning and ending balances of the statement do not reconcile with the sum of transactions during the period. Transactions may have been added, removed, or edited.                                                                                                                                                                                                                                                                    |
| Transaction Data Not Present | The file contains no transaction records, or no transaction pages were present in the upload.                                                                                                                                                                                                                                                                                                                                                |
| Invalid Date                 | The captured date is invalid and does not exist on the calendar.                                                                                                                                                                                                                                                                                                                                                                             |
| Future Date                  | The captured date is in the future.                                                                                                                                                                                                                                                                                                                                                                                                          |
| Misaligned Text              | The field or text does not match the expected alignment and is inconsistent with the rest of the document.                                                                                                                                                                                                                                                                                                                                   |
| Future Year                  | The captured year is in the future.                                                                                                                                                                                                                                                                                                                                                                                                          |
| Invalid Year                 | The captured year is invalid or inconsistent across the document(s).                                                                                                                                                                                                                                                                                                                                                                         |
| Suspected Template           | The document was created using software designed for generating document templates. <br /><br /> **Low confidence:** The detected software is used by both suspicious template creation websites and some legitimate providers. <br /><br /> **Medium confidence:** The detected software is commonly used by suspicious template creation sites. <br /><br /> **High confidence:** An exact match to a known fraudulent template was found. |

## Receive Your Data

You can review processed data from the [files you've uploaded](./upload-a-file) using two methods:

* In your Flinks Dashboard
* By calling our APIs

Data is typically ready within 10 minutes after you've uploaded your file(s), but may take up to 90 minutes in some cases.

### Access your data in the Flinks Dashboard

Complete the following steps to accept your processed in your Flinks Dashboard.

1. In the Dashboard, navigate to the **INSIGHTS** screen.
2. Locate the name of the customer whose upload you want to review.
3. Check the **Financial Institution** and **Time/Date** fields to confirm that the statement is the most recent one.
4. Review the **Request Status** field to check if the upload is finished processing.
5. If the **Request Status** field is showing as **Completed**, click on the row to review your insights.
6. Review your processed data. If you are receiving other Flinks insights, such as Attributes, you can also access that data here.
7. (Optionally) [Check for fraud](./fraud-verification) to see if we've identified any fraud signals.

<img loading="lazy" src="https://mintcdn.com/flinks-2682732c/SuJctMaY_z3s-D2D/images/flinksdashboardinsights.png?fit=max&auto=format&n=SuJctMaY_z3s-D2D&q=85&s=6084267c44515b7a4eeb9f5108c4a399" alt="Screenshot of the Insights tab in the Flinks Dashboard. This tab shows information about a customer, including their employer and accounts." style={{ width: "70%", height: "auto", margin: "0 auto", display: "block" }} width="1440" height="1142" data-path="images/flinksdashboardinsights.png" />

### Access your data by calling our APIs

Call one of the following endpoints, depending on the type of data you want to receive:

* To receive processed data for bank statements, call the [/GetAccountsDetail](../../api/connect/endpoints/account-linking/get-accounts-detail) endpoint.
* To receive information about any fraud signal(s) that were detected in an uploaded file, call the [/FraudAnalysis](../../api/upload/endpoints/fraud/fraud-analysis) endpoint.
