Tink Integration

Aggregate held away financial account data in Europe




Tink enables applications to connect with users' bank, credit card, loan, and investment accounts to pull in account details such as balances and transactions.

Setup

To get started, you’ll first need to sign up with Tink and get your client_id, public_key, and secret. If you already have a Tink account, you can go ahead and sign in to retrieve these values.

Implementation

Widget Link

Once you have Tink credentials set up on the Integrations Admin, you can retrieve the Tink widget to embed in your app or web page. The Tink widget will manage user credential validation, multi-factor authentication, and error handling for each institution that Tink supports to ensure that your end-user is able to pull data from the account that they've linked.

Call the following Hydrogen service to get the widget URL for the client:

GET /integration/v1/widget_link/{nucleus_client_id}?vendor_name=tink

Response


{
    "widget_url": "https://link.tink.com/1.0/authorize/?client_id=&redirect_uri=http%3A%2F%2Flocalhost%3A1080%2Fuser%2Ftoken&scope=accounts:read,investments:read,transactions:read,user:read,credentials:read,identity:read,statistics:read&market=GB&locale=en_US&test=true",
    "vendor_name": "tink"
}

Copy the widget_url from the response and use as simple web URL in the browser to complete the user authentication. Once the Tink Link flow is completed, the user will be redirected to your specified redirect_uri set up in the Tink console. You will receive a code in the redirect_uri path.

Token Exchange

Next we will perform the token exchange using the code obtained above in the vendor_request.

POST /integration/token_exchange


{
     "nucleus_client_id":"<nucleus_client_id>",
     "vendor_name":"tink",
     "integration_type":"aggregation",
     "product":"atom",
     "vendor_request":{
          "code":"ab1b4043bb6644a8a69da2f77d2330be"
     }
}
Account Aggregation

Now we just have to create the aggregation account to store all the data in Nucleus from the response above.

POST /integration/v1/aggregation/account

  
{
     "nucleus_client_id": "<nucleus_client_id>",
     "product": "atom" 
}  

Once the account is stored, you can pull balances, transactions, and holdings for the account.

GET /integration/v1/aggregation/balance/{aggregation_account_id}

GET /integration/v1/aggregation/transaction/{aggregation_account_id}

GET /integration/v1/aggregation/holding/{aggregation_account_id}


*Tink is a technology integration on the Hydrogen platform. There is no implied partnership or company affiliation unless otherwise stated.