Skip to main content
Webhooks are a more efficient way to receive customer data. Another way to receive data is by setting up a webhook endpoint in your backend. Instead of calling the API to receive the JSON with the financial data, Flinks will make a callback to your endpoint with the JSON result of the connected accounts as soon as the data extraction process is complete.

Setting up webhooks in your private instance

For us to configure your private instance with your webhook endpoint address, please contact the Flinks Support team. It’s not possible to test a webhooks integration using a Sandbox environment.
Flinks currently supports three types of webhooks:
  • KYC: Anticipates the return of a user’s personal information as soon as it is fetched from the financial institution (FI), all the while the accounts’ information is still being pulled from the FI.
  • GetAccountsDetail: Returns this endpoint’s payload as a webhook (KYC + IBV + Transactions).
  • Investments: Returns this endpoint’s payload as a webhook (Securities + Positions + Transactions).
How do I enable webhooks? It’s simple, just send us a webhook URL and we will set everything up on our end. Please make sure to return a 200 whenever you receive a webhook so we can know that everything worked fine.

Best practices

Your server must accept HTTP POST requests and respond to each callback with a code 200. This is so we can have a confirmation that the transmission of the callback was properly completed. The quality of the data should not be treated at this point, unless if the format of the response is invalid. Your server must have a valid SSL certificate and self-signed certificates are not going to be acceptable for delivery of data.

Delivery failure

All callback delivery failures have a maximum of 10 delivery attempts, with a 30 minutes delay each. Each request has a maximum of 10 delivery attempts
All callback requests from Flinks that don’t receive an HTTP 200 response backfrom your endpoint will be considered failed.

Account Linking

Account Aggregation payload

This webhook is an alternative for you to receive the financial data from a GetAccountsDetail process. Instead of having to implement an API cached requests flow, you simply need to set up your server to listen to callbacks coming from Flinks.

Typical usage

In a typical integration with Flinks Connect, the GetAccountsDetail process is automatically initiated in the background as soon as the user is redirected with the financial institution’s confirmation on the authentication. Once all financial data is collected by Flinks, a callback will be sent to your listening server. The delay between the user’s redirect in Flinks Connect until the callback will vary according to the amount of information Flinks has to process.

Payload

The callback will contain the same payload you would receive in a successful response for a GetAccountsDetail API call. The only addition in this case is the "ResponseType":"GetAccountsDetail", to specify what is the type of callback you a receiving. Example (transactions, balance, and holder abbreviated for simplicity):
Json

    				{
        "ResponseType": "GetAccountsDetail",
        "HttpStatusCode": 200,
        "Accounts": [
            {
                "Transactions": [...],
                "TransitNumber": "77777",
                "InstitutionNumber": "777",
                "OverdraftLimit": 0,
                "Title": "Chequing CAD",
                "AccountNumber": "1111000",
                "LastFourDigits": null,
                "Balance": {...},
                "Category": "Operations",
                "Type": "Chequing",
                "Currency": "CAD",
                "Holder": {...},
                 "Email": "[email protected]",
                 "PhoneNumber": "514-123-4567"

                },
                "AccountType": "Business",
                "Id": "f1f01bee-665a-410e-bcc4-6842315e4a7b"

         ],
        "Login": {
            "Username": "Greatday",
            "IsScheduledRefresh": false,
            "LastRefresh": "2019-05-09T13:47:46.5227901",
            "Type": "Personal",
            "Id": "5e115eac-1209-4f19-641c-08d6d484e2fe"
        },
        "InstitutionId": "...",
        "Institution": "FlinksCapital",
        "RequestId": "1243c283-e0ca-4fda-a5e4-343068430190"
    }

Conciliating users

The best way to conciliate successfully connected accounts via Flinks Connect to its data is by comparing and conciliating the LoginId information from Flinks Connect redirect and the LoginId field present in the callback payload.

KYC

The fastest way to receive a user’s personal information.

Quick identity verification

The KYC webhook is the quickest way for you to receive the kyc from a user. Specifically, it is useful for use-cases where all financial data is required, but it’s time essential to receive the kyc as quickly as possible.
The KYC hook can improve the user experience for use-cases that require users to be present during identity verification and data such as transaction history is required for later use once the user is gone.
Differently from the GetAccountsDetail webhook, the kyc callback is delivered as soon as the user’s personal information is processed, without the need for waiting for all GetAccountsDetail information to be processed.
To activate this feature, please contact us at [email protected]!

Payload

The payload for this webhook will carry all kyc information directly on the Holders list. You can identify this specific callback by the field "ResponseType":"KYC".
Json
    				{
      "ResponseType": "KYC",
      "HttpStatusCode": 200,
      "Holders": [

          "Name": "Ron Swanson",
          "Address": {
            "CivicAddress": "1001 Rue Lenoir Suite A114",
            "City": "Montreal",
            "Province": "QC",
            "PostalCode": "H4C 2Z6",
            "POBox": null,
            "Country": "CA"
          },
          "Email": "[email protected]",
          "PhoneNumber": "(555)555-555"

      ],
      "Login": {
        "Username": "Greatday",
        "IsScheduledRefresh": false,
        "LastRefresh": "2019-06-21T16:24:16.2076448Z",
        "Type": "Personal",
        "Id": "5242ace2-f3b4-4260-1232-08d6f664d244"
      },
      "Institution": "FlinksCapital",
      "RequestId": "a2e75c5c-55e9-3842-93ad-6c9c9deb4682"
    }

After receiving the kyc callback, you will later receive a GetAccountsDetail callback once all the information is processed for the user. You can conciliate all callbacks by tracking the received LoginId.