---
title: "Build a Tink Link"
method: POST
path: "/link/v1/service/builder"
tags: ["General.Tink Link.Builder"]
---

# Build a Tink Link

`POST /link/v1/service/builder`

This endpoint lets you create a Tink Link for any product, including user and session generation within one call.

## Headers

- `authorization` string, required

## Request body

- object
  - `appUri` string, uri — The deep link for an Android or iOS hosting app. Use when Tink Link is embedded in an Android/iOS app to redirect the user back to the hosting app after authenticating in a third-party app (such as Mobile Bank ID).
  - `autoRedirectMobile` boolean — Use for Android or iOS integrations. When TRUE, this will directly open the bank app during the authentication step if installed on the user's device or otherwise fall back to a web-based authentication flow in the system's default browser.
  - `externalReference` string — External reference forwarded to Tink Link as external_reference. This is distinct from sessionConfig.externalReference, which is used when creating a Link session.
  - `financialInstitutionId` string — Identifier of the financial institution to preselect, otherwise the user will be presented with a list of financial institutions.
  - `iframe` boolean — Set to true to make the response message sent via postMessage to the parent window. Use when Tink Link is embedded in an iframe.
  - `iframeBehaviour` 'PARENT_REDIRECT' | 'POPUP' — Iframe behaviour (PARENT_REDIRECT, POPUP). Defaults to POPUP if iframe is true.
  - `inputProvider` string — The unique name of the provider (ex: sbab-bankid). If provided, user can skip provider selection. Otherwise, they will choose the provider from a list in the Tink UI.
  - `locale` 'cs_CZ' | 'da_DK' | 'de_DE' | 'en_US' | 'et_EE' | 'es_ES' | 'fi_FI' | 'fr_FR' | 'it_IT' | 'lt_LT' | 'lv_LV' | 'nl_NL' | 'no_NO' | 'pt_PT' | 'pl_PL' | 'sv_SE', required — The Locale to use, will influence the language in Tink Link.
  - `market` 'AT' | 'BE' | 'BG' | 'BR' | 'CA' | 'CH' | 'CY' | 'CZ' | 'DE' | 'DK' | 'EE' | 'ES' | 'FI' | 'FO' | 'FR' | 'GB' | 'GR' | 'IE' | 'IT' | 'LT' | 'LV' | 'MT' | 'MX' | 'NL' | 'NO' | 'PL' | 'PT' | 'RO' | 'SE' | 'SG' | 'SK' | 'US', required — The Market to use for the Tink Link.
  - `productConfig` object — Product-specific configuration parameters. Available properties depend on the productType. Available when `productType` is `authorize`. Relevant properties: `scope`. Available when `productType` is `credentials`. Relevant properties: `scope`. Available when `productType` is `pay`. Relevant properties: `paymentRequestId`. Required properties: `paymentRequestId`. Available when `productType` is `account-check`. Relevant properties: `refreshableItems`. Available when `productType` is `business-account-check`. Relevant properties: `financialServicesSegments`. Available when `productType` is `products`. Relevant properties: `products`, `financialServicesSegments`, `refreshableItems`. Required properties: `products`. Available when `productType` is `transactions`. Relevant properties: `financialServicesSegments`, `refreshableItems`. Available when `productType` is `business-transactions`. Relevant properties: `financialServicesSegments`, `refreshableItems`. Available when `productType` is `reports`. Relevant properties: `reportTypes`, `accountDialogType`, `refreshableItems`, `async`. Required properties: `reportTypes`. Available when `productType` is `income-check`. Relevant properties: `engineVersion`. Available when `productType` is `expense-check`. Available when `productType` is `risk-insights`.
    - `accountDialogType` 'NONE' | 'MULTI' | 'SINGLE' — Account dialog type (NONE, MULTI, SINGLE). Available when `productType` is `reports`. Allowed values: `NONE`, `MULTI`, `SINGLE`.
    - `async` boolean — Set to true to enable early redirect (asynchronous flow). When enabled, the user can progress in their flow when Tink has not yet received expected data from their bank. Default is false (synchronous flow). Available when `productType` is `reports`.
    - `engineVersion` string — Explicitly choose the version of the Income Check engine. Available when `productType` is `income-check`.
    - `financialServicesSegments` string[] — Financial services segments (PERSONAL, BUSINESS). Default: PERSONAL,BUSINESS. Available when `productType` is `business-account-check`. Allowed item values: `PERSONAL`, `BUSINESS`. Financial services segments (PERSONAL, BUSINESS). Default: PERSONAL. Available when `productType` is `products`. Allowed item values: `PERSONAL`, `BUSINESS`. Available when `productType` is `transactions`. Allowed item values: `PERSONAL`, `BUSINESS`. Available when `productType` is `business-transactions`. Allowed item values: `PERSONAL`, `BUSINESS`.
    - `paymentRequestId` string — The identifier of the created payment request. Required when `productType` is `pay`.
    - `products` string[] — Products for which to aggregate data (ACCOUNT_CHECK, INVESTMENTS, LOANS, TRANSACTIONS). Required when `productType` is `products`. Allowed item values: `ACCOUNT_CHECK`, `INVESTMENTS`, `LOANS`, `TRANSACTIONS`.
    - `refreshableItems` string[] — Account types. Options: IDENTITY_DATA, CHECKING_ACCOUNTS, SAVING_ACCOUNTS. When this parameter is enabled and account types are not specified, the defaults are used, which are: IDENTITY_DATA, CHECKING_ACCOUNTS, and SAVING_ACCOUNTS. Available when `productType` is `account-check`. Allowed item values: `IDENTITY_DATA`, `CHECKING_ACCOUNTS`, `SAVING_ACCOUNTS`. An array of refreshable items specifying the data types to aggregate overriding the default list of refreshable items for the respective products. Available when `productType` is `products`. Refreshable items to include (CHECKING_ACCOUNTS, CHECKING_TRANSACTIONS, SAVING_ACCOUNTS, SAVING_TRANSACTIONS, CREDITCARD_ACCOUNTS, CREDITCARD_TRANSACTIONS). Defaults to all. Available when `productType` is `transactions`. Allowed item values: `CHECKING_ACCOUNTS`, `CHECKING_TRANSACTIONS`, `SAVING_ACCOUNTS`, `SAVING_TRANSACTIONS`, `CREDITCARD_ACCOUNTS`, `CREDITCARD_TRANSACTIONS`. Available when `productType` is `business-transactions`. Allowed item values: `CHECKING_ACCOUNTS`, `CHECKING_TRANSACTIONS`, `SAVING_ACCOUNTS`, `SAVING_TRANSACTIONS`, `CREDITCARD_ACCOUNTS`, `CREDITCARD_TRANSACTIONS`. Refreshable items to include when generating reports. When omitted, Tink Link uses the report flow defaults. Available when `productType` is `reports`. Allowed item values: `CHECKING_ACCOUNTS`, `CHECKING_TRANSACTIONS`, `CREDITCARD_ACCOUNTS`, `CREDITCARD_TRANSACTIONS`, `EINVOICES`, `IDENTITY_DATA`, `INVESTMENT_ACCOUNTS`, `INVESTMENT_TRANSACTIONS`, `LIST_BENEFICIARIES`, `LOAN_ACCOUNTS`, `LOAN_TRANSACTIONS`, `SAVING_ACCOUNTS`, `SAVING_TRANSACTIONS`, `TRANSFER_DESTINATIONS`.
    - `reportTypes` string[] — Report types to include (TRANSACTION_REPORT, INCOME_CHECK_REPORT, RISK_INSIGHTS_REPORT, ACCOUNT_VERIFICATION_REPORT, BUSINESS_ACCOUNT_VERIFICATION_REPORT, EXPENSE_CHECK_REPORT, RISK_CATEGORISATION_REPORT). Required when `productType` is `reports`. Allowed item values: `TRANSACTION_REPORT`, `INCOME_CHECK_REPORT`, `RISK_INSIGHTS_REPORT`, `ACCOUNT_VERIFICATION_REPORT`, `BUSINESS_ACCOUNT_VERIFICATION_REPORT`, `EXPENSE_CHECK_REPORT`, `RISK_CATEGORISATION_REPORT`.
    - `scope` string[] — Scopes for authorization (transactions:read, identity:read, beneficiaries:read). Available when `productType` is `authorize`. Allowed item values: `transactions:read`, `identity:read`, `beneficiaries:read`. Available when `productType` is `credentials`. Allowed item values: `transactions:read`, `identity:read`, `beneficiaries:read`.
  - `productDimension` 'direct' | 'credentials' | 'bulk' | 'vrp-mandate' | 'vrp-mandate-pickup' | 'cancellation' | 'vrp' | 'connect' | 'create-report' | 'update-consent' | 'extend-consent' | 'add' | 'refresh' | 'authenticate' | 'connect-accounts' | 'add-accounts' — The product dimension part of the Tink Link, e.g. "create-report". Has to be compatible with the product type. Optional for productType 'account-check' (defaults to 'create-report'), 'authorize' (defaults to 'connect'), and 'pay' (defaults to 'direct'). Available when `productType` is `authorize`. Allowed values: `connect`. Available when `productType` is `pay`. Allowed values: `direct`, `credentials`, `bulk`, `vrp-mandate`, `vrp-mandate-pickup`, `cancellation`. Available when `productType` is `credentials`. Allowed values: `add`, `refresh`, `authenticate`, `extend-consent`. Available when `productType` is `account-check`. Allowed values: `create-report`, `update-consent`, `extend-consent`, `connect`. Available when `productType` is `business-account-check`. Allowed values: `create-report`, `extend-consent`. Available when `productType` is `income-check`. Allowed values: `connect`, `create-report`. Available when `productType` is `transactions`. Allowed values: `update-consent`, `connect-accounts`, `extend-consent`, `add-accounts`. Available when `productType` is `business-transactions`. Allowed values: `update-consent`, `connect-accounts`, `extend-consent`, `add-accounts`. Available when `productType` is `reports`. Allowed values: `create-report`. Available when `productType` is `risk-insights`. Allowed values: `create-report`. Available when `productType` is `expense-check`. Allowed values: `create-report`. Available when `productType` is `products`. Allowed values: `update-consent`, `connect-accounts`, `extend-consent`.
  - `productType` 'authorize' | 'pay' | 'payment-mandate' | 'credentials' | 'account-check' | 'business-account-check' | 'income-check' | 'transactions' | 'business-transactions' | 'reports' | 'risk-insights' | 'expense-check' | 'products', required — The product type part of the Tink link, e.g. "account-check". Has to be compatible with the product dimension.
  - `redirectUri` string, uri, required — The URL Tink Link should redirect to after.
  - `sessionConfig` object — Session configuration including externalReference, merchantId, personalIdentifier, and sourceAccountNumber.
    - `externalReference` string — An external reference to be passed to the session creation endpoint.
    - `merchantId` string, uuid — Merchant ID passed to the session creation endpoint.
    - `personalIdentifier` string — The personal identifier to be pre-filled in username or social security number forms.
    - `sourceAccountNumber` string — The source account to be used in the payment flow (applicable for specific PSD2 providers).
  - `state` string — State parameter to be attached to the Tink Link.
  - `theme` 'LIGHT' | 'DARK' — Specifying LIGHT or DARK overrides the user's system preference and displays the specified theme. Requires both themes to be configured to have any effect.
  - `userData` object — User-specific data including externalUserId, inputUsername, idHint, and retentionClass.
    - `externalUserId` string — External reference to pass to user creation endpoint.
    - `idHint` string — (Optional) This is presented to the end-user in the Tink Link flow. You can use any arbitrary string value that is recognizable to the end user, such as the end user's full name or email address. id_hint is used to verify the identity of the user and to prevent URL spoofing attacks.
    - `inputUsername` string — Prefills the username field for supported providers. Useful when the username is a personal identifier that could be valid for multiple banks, such as a social security number.
    - `retentionClass` 'permanent' | 'temporary' — Determines whether Tink will retain the user until explicitly deleted, or automatically delete the user after 24 hours. Defaults to "temporary".

## Response `200`

Successful response

- object — Successful response
  - `tinkLink` string, uri

---

[API](https://skmtc.net/tink/apis/tink-api.md) · [All operations](https://skmtc.net/tink/apis/tink-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tink/tink-api/revisions/23d8982b533d/schema)
