Examples

General

Introduction

This document gives an overview of the layout and specification of the Connector located in the Tink cluster to get data from customers core systems.

The connector domain model consists of basically three levels:

User The top domain object, holding information about the authenticated user.

Account A user can have one or several accounts. An account could be a savings account, checking account, credit card, mortgage or car loan. An account holds information like: balance, name and number.

Transaction An account can have one or several transactions. A transaction holds information like: amount, date and description.

Message formats

The Tink API is designed around REST at its core, and uses standard HTTP verbs and status codes to communicate requests and response statuses. For the JSON formatted data, properties use camel-case and enum-like string properties have capitalized property values.

String properties are encoded using UTF-8, and date long properties are represented by UNIX Epoch time in milliseconds.

Authorization

Communication to the ingest endpoints requires a token to be sent in the HTTP Authorization header, such as Authorization: Token <token>. Certificate pinning is advised, to validate the authenticity of the target host.

The token is supplied by Tink, and may be regularly updated. When updated, there will be a grace period during which several tokens are enabled simultaneously to guarantee a seamless transition to the new token.

Error status codes

All endpoints can respond with the following HTTP error status codes:

Status code Description
401 Possible reasons include missing Authorization: Token <token> HTTP header and expired token.

User

To enrol a customer into the Tink Platform, a user object (user ID, a token and optional customer details) is sent to the /user endpoint. This user ID and user token will act as a username and password respectively for the user when querying data from the Main API.

So, in order to read this newly activated user's data, you would query the Main API with the Authorization header set to Basic base64(user ID:token).

After successful activation of a user, the customer’s accounts can be created by calling the endpoint in Account Service on the Connector.

Accounts

The accounts endpoint enables the customer to create, update and delete accounts.

By sending a user token for an activated user, together with a list of account entries, these will be created accordingly (depending on whether they already exist or not).

Before sending transactions to Tink, the customer’s account needs to be created. When enrolling a new customer, all accounts for the customer should be sent in one batch. A successful call to create accounts means that Tink is ready to receive transactions.

Please note: The customer’s accounts must not be subscribed for real-time transactions on the customer side before a successful response has been received from a call to this endpoint with the corresponding account.

Transactions

The customer's backend pushes all transactions (and transaction updates/deletes) to the Transaction Service.

Transactions are sent by account in a list and one request can contain transactions for multiple accounts. The request has a status that indicates if this is historical, batch or real time transactions. This is used by the Tink Platform to prioritize incoming transactions.

Pending transactions

There are two ways to handle the pending to non-pending state of a transaction. The chosen way depends on the partner and whether the persistent id of the transaction (externalId), is the same for the pending transaction and the non-pending one. If the partner has different ids for the pending and non-pending transactions, the easiest way is to ingest the pending transaction normally to the Transaction Service ingest endpoint with flag pending:true. When then ingesting the non-pending transaction with a new externalId, utilize the payload PENDING_IDS: ["pendingTransactionExternalId"] to refer back to the pending transaction (or multiple if that is the case). The Tink Platform will remove all referred pending transactions automatically in favor for the newly ingested non-pending. Categorization is transferred from the pending to the non-pending.

If the partner has the same externalId for both pending and non-pending transactions, one can utilize the Update Transaction endpoint to update the pending transaction to pending:false.

Transaction payload

The transaction payload is a key-value store, which can be utilized by the partner to send in custom data which will be stored together with the transaction in the database. This means that the payload will follow the transaction when being querying on the Main API. The Main API transaction has a field partnerPayload where it will show up.

There are some payload keys that are reserved and used by the platform:

Payload key name type description
PENDING_IDS Array of Strings The array of ids on a non-pending transaction that refers to the pending transactions it replaces.
TAGS Array of Strings The array of strings will be set as tags to the notes field of the transaction.

API Reference

Account Service

Ingest accounts

POST /connector/users/{externalUserId}/accounts

Takes a list of accounts and the corresponding user ID.

Request Example

{
  "accounts": [
    {
      "availableCredit": 20000,
      "balance": 7000,
      "closed": null,
      "exclusion": "PFM_AND_SEARCH",
      "externalId": "2d3bd65493b549e1927d97a2d0683ab9",
      "flags": [
        "MANDATE"
      ],
      "name": "Enkla sparkontot",
      "number": "52670208126",
      "payload": {},
      "reservedAmount": 2000,
      "type": "CREDIT_CARD"
    }
  ]
}

Parameters

Parameter Description
externalUserId
required: true
Persistent identifier for the user.

Request Body: AccountListEntity

The accounts.

Parameter Description
accounts
type: array[AccountEntity]
required: true
The accounts.

AccountEntity

Parameter Description
availableCredit
type: number
required: false
The available credit of the account.
balance
type: number
required: true
The balance of the account.
closed
type: boolean
required: false
The closed state of the account.
exclusion
type: string
required: false
The type of features to exclude. PFM_AND_SEARCH will exclude the accounts transactions from categorization, PFM features, and search result. PFM_DATA will exclude the accounts transactions from categorization and PFM features. Values: PFM_AND_SEARCH, PFM_DATA, NONE
externalId
type: string
required: true
Persistent identifier for the account.
flags
type: array[string]
required: false
A list of flags specifying attributes on an account.
name
type: string
required: true
The account name.
number
type: string
required: true
The account number.
payload
type: object
required: false
The payload property can include arbitrary metadata provided by the financial institution in question that can be used either for deep-linking back to the app by the financial institution, for displaying additional information about the account, etc. The format is key-value, where key is a String and value any object.
reservedAmount
type: number
required: false
The currently reserved amount of the account.
type
type: string
required: true
The account type. Values: CHECKING, SAVINGS, INVESTMENT, MORTGAGE, CREDIT_CARD, LOAN, PENSION, OTHER, EXTERNAL
Status Code Description
204 Accounts created.
400 The payload does not pass validation.
401 User not found, has no credentials, or has more than one set of credentials.
409 Account already exists.

Delete account

DELETE /connector/users/{externalUserId}/accounts/{externalAccountId}

Deletes the account with the given account ID.

Parameters

Parameter Description
externalUserId
required: true
Persistent identifier for the user.
externalAccountId
required: true
Persistent identifier for the account.
Status Code Description
204 Account deleted.
401 User not found, has no credentials, or has more than one set of credentials.
404 Account not found.

Update account

PUT /connector/users/{externalUserId}/accounts/{externalAccountId}

Accepts an object of properties to be updated.

Request Example

{
  "closed": null,
  "exclusion": "PFM_AND_SEARCH",
  "name": "My savings account"
}

Parameters

Parameter Description
externalUserId
required: true
Persistent identifier for the user.
externalAccountId
required: true
Persistent identifier for the account.

Request Body: UpdateAccountEntity

Account update request

Parameter Description
closed
type: boolean
required: false
The closed state of the account.
exclusion
type: string
required: false
The type of features to exclude. PFM_AND_SEARCH will exclude the accounts transactions from categorization, PFM features, and search result. PFM_DATA will exclude the accounts transactions from categorization and PFM features. Values: PFM_AND_SEARCH, PFM_DATA, NONE
name
type: string
required: false
The account name.
Status Code Description
204 Account updated.
400 The request does not pass validation.
401 User not found, has no credentials, or has more than one set of credentials.
404 Account not found.

Batch Service

Ingest transactions

POST /connector/batch

Takes historical or real time transactions together with an account.

Request Example

{
  "ingestEntities": [
    {
      "container": {
        "autoBook": false,
        "overridePending": false,
        "transactionAccounts": [
          {
            "balance": 7000,
            "externalId": "2d3bd65493b549e1927d97a2d0683ab9",
            "payload": {},
            "reservedAmount": 2000,
            "transactions": [
              {
                "amount": -98,
                "date": 1455740874875,
                "description": "Riche Teatergrillen",
                "externalId": "40dc04e5353547378c84f34ffc88f853",
                "payload": {},
                "pending": false,
                "tinkId": "string",
                "type": "CREDIT_CARD"
              }
            ]
          }
        ],
        "type": "REAL_TIME"
      },
      "entityId": "2d3bd65493b549e1927d97a2d0683ab9",
      "externalUserId": "2d3bd65493b549e1927d97a2d0683ab9"
    }
  ],
  "withinLimit": false
}

Request Body: CreateTransactionBatch

Batch of Ingest Transaction entities.

Parameter Description
ingestEntities
type: array[IngestTransactionEntity]
required: true
The batch entities. May contain a maximum of 2500 entities per request.
withinLimit
type: boolean
required: false

IngestTransactionEntity

Parameter Description
container
type: CreateTransactionAccountContainer
required: true
The create transaction container.
entityId
type: string
required: true
An id of this entity. Will only be used to return back to caller.
externalUserId
type: string
required: true
Persistent external identifier for the user.

CreateTransactionAccountContainer

Parameter Description
autoBook
type: boolean
required: false
This feature will try to automatically match stored pending transactions to booked transactions in the incoming batch. This feature should only be used when no known external-id relation between the pending and booked transactions exists. Please contact your Technical Project Manager to enable this option.
overridePending
type: boolean
required: false
Indicating if stored pending transactions should be replaced by the pending transactions in batch. It is a requirement to set EXPIRE date on pending transactions to maximum 30 days. If there are stored pending transactions older than 30 days there is no guarantee that these will be replaced. This feature should only be used when no known external-id relation between the pending and booked transactions exists.Please contact your Technical Project Manager to enable this option.
transactionAccounts
type: array[CreateTransactionAccountEntity]
required: true
The transaction accounts. All accounts accumulated may contain a maximum of 2500 transactions per request.
type
type: string
required: true
Indicating if this a historical batch of transactions or a real time transaction. Values: REAL_TIME, HISTORICAL, BATCH

CreateTransactionAccountEntity

Parameter Description
balance
type: number
required: true
The balance of the account for the time of the last transaction in the list.
externalId
type: string
required: true
Persistent identifier for the account the transaction belongs to.
payload
type: object
required: false
The payload property can include arbitrary metadata provided by the financial institution in question that can be used either for deep-linking back to the app of the financial institution, for displaying additional information about the account, or for backend purposes such as automatic categorization improvement, etc. The format is key-value, where key is a String and value any object.
reservedAmount
type: number
required: false
The reserved amount of the account for the time of the last transaction in the list.
transactions
type: array[CreateTransactionEntity]
required: true
The transaction list.

CreateTransactionEntity

Parameter Description
amount
type: number
required: true
The debited/credited amount in the currency of the account.
date
type: number
required: true
Date is when the transaction was executed, not when it was settled (except for scheduled transfers/payments, where the settling date is to be interpreted as the execution date).
description
type: string
required: true
A merchant name if possible. If such value is not available, the description that is shown in the transaction list.
externalId
type: string
required: true
Persistent identifier for the transaction.
payload
type: object
required: false
The payload property can include arbitrary metadata provided by the financial institution in question that can be used either for deep-linking back to the app of the financial institution, for displaying additional information about the transaction, or for backend purposes such as automatic categorization improvement, etc. The format is key-value, where key is a String and value any object.

There are two properties which can be specified which have their own purposes.
PENDING_IDS: A list of pending transaction external IDs for which this transaction is a booking of. If the user has changed any of the pending transactions, this transaction will get the category of the pending transaction with the largest amount if it constitutes at least half of this transactions amount.
PENDING_TRANSACTION_EXPIRATION_DATE: A timestamp for when this transaction should be automatically removed from the database. The removal will happen when other transactions are sent in. Can only be set on transactions marked as pending.
pending
type: boolean
required: false
If the transaction is pending (reserved) or not (booked).
tinkId
type: string
required: false
Ignored for new objects. Used to specify the id as given by Tink on when updating objects without an existing external ID.
type
type: string
required: true
The type of the transaction. Values: DEFAULT, CREDIT_CARD, TRANSFER, PAYMENT, WITHDRAWAL

Response Example

{
  "statuses": [
    {
      "entityId": "string",
      "httpStatus": 0,
      "response": ""
    }
  ]
}

Response: TransactionBatchResponse

Parameter Description
statuses
type: array[IngestTransactionStatus]
required: false

IngestTransactionStatus

Parameter Description
entityId
type: string
required: false
httpStatus
type: integer
required: false
response
type: object
required: false
Status Code Description
200 successful operation
400 The payload does not pass validation, or the specified account does not exist.
401 User not found, has no credentials, or has more than one set of credentials.
409 Transaction already exists.
410 Transaction has already been deleted.
412 Could not find any accounts for the user.

Token Service

Generate token

POST /connector/v2/tokens/generate

Generates a token that can be used to validate an end-user to the Tink services.

Request Example

{
  "origin": "ABC1",
  "scopes": [
    "transactions:read"
  ],
  "ttl": 10800,
  "userId": "2ce1f090a9304f13a15458d480f8a85d"
}

Request Body: GenerateTokenRequest

Token generation request

Parameter Description
origin
type: string
required: false
(Optional) Identifier for the external service that sent the token generation request.
scopes
type: array[string]
required: true
Set of scopes which the token is supposed to be generated for.
ttl
type: integer
required: false
Time to live for generated token in seconds (max 3 hours).
userId
type: string
required: true
Persistent identifier for the user.

Response Example

{
  "expiry": 762273900000,
  "token": "abcdefghijk.lmnopqrstuvwxyz.0123ABC789-_"
}

Response: GenerateTokenResponse

Parameter Description
expiry
type: integer
required: false
Timestamp for the expiration of the returned token.
token
type: string
required: true
User access token.
Status Code Description
200 successful operation
401 User not found.
403 Access to requested user is restricted or unique user could not be determined.
500 Unexpected bug or token generation service is disabled.

Transaction Service

Ingest transactions

POST /connector/users/{externalUserId}/transactions

Takes historical or real time transactions together with an account.

Request Example

{
  "autoBook": false,
  "overridePending": false,
  "transactionAccounts": [
    {
      "balance": 7000,
      "externalId": "2d3bd65493b549e1927d97a2d0683ab9",
      "payload": {},
      "reservedAmount": 2000,
      "transactions": [
        {
          "amount": -98,
          "date": 1455740874875,
          "description": "Riche Teatergrillen",
          "externalId": "40dc04e5353547378c84f34ffc88f853",
          "payload": {},
          "pending": false,
          "tinkId": "string",
          "type": "CREDIT_CARD"
        }
      ]
    }
  ],
  "type": "REAL_TIME"
}

Parameters

Parameter Description
externalUserId
required: true
Persistent identifier for the user.

Request Body: CreateTransactionAccountContainer

Container of account and transactions.

Parameter Description
autoBook
type: boolean
required: false
This feature will try to automatically match stored pending transactions to booked transactions in the incoming batch. This feature should only be used when no known external-id relation between the pending and booked transactions exists. Please contact your Technical Project Manager to enable this option.
overridePending
type: boolean
required: false
Indicating if stored pending transactions should be replaced by the pending transactions in batch. It is a requirement to set EXPIRE date on pending transactions to maximum 30 days. If there are stored pending transactions older than 30 days there is no guarantee that these will be replaced. This feature should only be used when no known external-id relation between the pending and booked transactions exists.Please contact your Technical Project Manager to enable this option.
transactionAccounts
type: array[CreateTransactionAccountEntity]
required: true
The transaction accounts. All accounts accumulated may contain a maximum of 2500 transactions per request.
type
type: string
required: true
Indicating if this a historical batch of transactions or a real time transaction. Values: REAL_TIME, HISTORICAL, BATCH

CreateTransactionAccountEntity

Parameter Description
balance
type: number
required: true
The balance of the account for the time of the last transaction in the list.
externalId
type: string
required: true
Persistent identifier for the account the transaction belongs to.
payload
type: object
required: false
The payload property can include arbitrary metadata provided by the financial institution in question that can be used either for deep-linking back to the app of the financial institution, for displaying additional information about the account, or for backend purposes such as automatic categorization improvement, etc. The format is key-value, where key is a String and value any object.
reservedAmount
type: number
required: false
The reserved amount of the account for the time of the last transaction in the list.
transactions
type: array[CreateTransactionEntity]
required: true
The transaction list.

CreateTransactionEntity

Parameter Description
amount
type: number
required: true
The debited/credited amount in the currency of the account.
date
type: number
required: true
Date is when the transaction was executed, not when it was settled (except for scheduled transfers/payments, where the settling date is to be interpreted as the execution date).
description
type: string
required: true
A merchant name if possible. If such value is not available, the description that is shown in the transaction list.
externalId
type: string
required: true
Persistent identifier for the transaction.
payload
type: object
required: false
The payload property can include arbitrary metadata provided by the financial institution in question that can be used either for deep-linking back to the app of the financial institution, for displaying additional information about the transaction, or for backend purposes such as automatic categorization improvement, etc. The format is key-value, where key is a String and value any object.

There are two properties which can be specified which have their own purposes.
PENDING_IDS: A list of pending transaction external IDs for which this transaction is a booking of. If the user has changed any of the pending transactions, this transaction will get the category of the pending transaction with the largest amount if it constitutes at least half of this transactions amount.
PENDING_TRANSACTION_EXPIRATION_DATE: A timestamp for when this transaction should be automatically removed from the database. The removal will happen when other transactions are sent in. Can only be set on transactions marked as pending.
pending
type: boolean
required: false
If the transaction is pending (reserved) or not (booked).
tinkId
type: string
required: false
Ignored for new objects. Used to specify the id as given by Tink on when updating objects without an existing external ID.
type
type: string
required: true
The type of the transaction. Values: DEFAULT, CREDIT_CARD, TRANSFER, PAYMENT, WITHDRAWAL
Status Code Description
204 Transactions ingested.
400 The payload does not pass validation, or the specified account does not exist.
401 User not found.
409 All of the transactions in the batch already exist.
410 Transaction has already been deleted.
412 Could not find any accounts for the user.

Delete transactions

POST /connector/users/{externalUserId}/transactions/delete

Removes transactions. When deleting transactions, it's only the externalId of each transaction that is necessary.

Request Example

{
  "transactionAccounts": [
    {
      "balance": 7000,
      "externalId": "2d3bd65493b549e1927d97a2d0683ab9",
      "payload": {},
      "reservedAmount": 2000,
      "transactions": [
        {
          "externalId": "40dc04e5353547378c84f34ffc88f853"
        }
      ]
    }
  ],
  "type": "REAL_TIME"
}

Parameters

Parameter Description
externalUserId
required: true
Persistent identifier for the user.

Request Body: DeleteTransactionAccountsContainer

Container of account and transactions.

Parameter Description
transactionAccounts
type: array[DeleteTransactionAccountEntity]
required: true
The transaction accounts.
type
type: string
required: true
Indicating if this a historical batch of transactions or a real time transaction. Values: REAL_TIME, HISTORICAL, BATCH

DeleteTransactionAccountEntity

Parameter Description
balance
type: number
required: true
The balance of the account for the time of the last transaction in the list.
externalId
type: string
required: true
Persistent identifier for the account the transaction belong to.
payload
type: object
required: false
The payload property can include arbitrary metadata provided by the financial institution in question that can be used either for deep-linking back to the app of the financial institution, for displaying additional information about the account, or for backend purposes such as automatic categorization improvement, etc. The format is key-value, where key is a String and value any object.
reservedAmount
type: number
required: false
The reserved amount of the account for the time of the last transaction in the list.
transactions
type: array[DeleteTransactionEntity]
required: true
The transaction list.

DeleteTransactionEntity

Parameter Description
externalId
type: string
required: true
Persistent identifier for the transaction.
Status Code Description
204 Transactions deleted.
400 The payload does not pass validation, or the specified account does not exist.
401 User not found.
404 Transaction not found.

Update transactions

PUT /connector/users/{externalUserId}/transactions/{externalTransactionId}

Updates a single transaction related to an account.

Request Example

{
  "transactionAccounts": [
    {
      "balance": 7000,
      "externalId": "2d3bd65493b549e1927d97a2d0683ab9",
      "payload": {},
      "reservedAmount": 2000,
      "tinkId": "e4a47d5e3d514ca4bd22130bb43c640b",
      "transactions": [
        {
          "amount": -98,
          "date": 1455740874875,
          "description": "Riche Teatergrillen",
          "externalId": "40dc04e5353547378c84f34ffc88f853",
          "payload": {},
          "pending": false,
          "tinkId": "string",
          "type": "CREDIT_CARD"
        }
      ]
    }
  ],
  "type": "REAL_TIME"
}

Parameters

Parameter Description
externalUserId
required: true
Persistent identifier for the user.
externalTransactionId
required: true
Persistent identifier for the transaction.

Request Body: UpdateTransactionAccountContainer

Container of account and transactions

Parameter Description
transactionAccounts
type: array[UpdateTransactionAccountEntity]
required: true
The transaction accounts.
type
type: string
required: true
Indicating if this a historical batch of transactions or a real time transaction. Values: REAL_TIME

UpdateTransactionAccountEntity

Parameter Description
balance
type: number
required: true
The balance of the account for the time of the last transaction in the list.
externalId
type: string
required: false
Persistent identifier for the account the transaction belongs to. Either this or tinkId must be set.
payload
type: object
required: false
The payload property can include arbitrary metadata provided by the financial institution in question that can be used either for deep-linking back to the app of the financial institution, for displaying additional information about the account, or for backend purposes such as automatic categorization improvement, etc. The format is key-value, where key is a String and value any object.
reservedAmount
type: number
required: false
The reserved amount of the account for the time of the last transaction in the list.
tinkId
type: string
required: false
Persistent identifier for the account the transaction belongs to generated by Tink. Either this or externalId must be set.
transactions
type: array[CreateTransactionEntity]
required: true
The list of transactions to update.

CreateTransactionEntity

Parameter Description
amount
type: number
required: true
The debited/credited amount in the currency of the account.
date
type: number
required: true
Date is when the transaction was executed, not when it was settled (except for scheduled transfers/payments, where the settling date is to be interpreted as the execution date).
description
type: string
required: true
A merchant name if possible. If such value is not available, the description that is shown in the transaction list.
externalId
type: string
required: true
Persistent identifier for the transaction.
payload
type: object
required: false
The payload property can include arbitrary metadata provided by the financial institution in question that can be used either for deep-linking back to the app of the financial institution, for displaying additional information about the transaction, or for backend purposes such as automatic categorization improvement, etc. The format is key-value, where key is a String and value any object.

There are two properties which can be specified which have their own purposes.
PENDING_IDS: A list of pending transaction external IDs for which this transaction is a booking of. If the user has changed any of the pending transactions, this transaction will get the category of the pending transaction with the largest amount if it constitutes at least half of this transactions amount.
PENDING_TRANSACTION_EXPIRATION_DATE: A timestamp for when this transaction should be automatically removed from the database. The removal will happen when other transactions are sent in. Can only be set on transactions marked as pending.
pending
type: boolean
required: false
If the transaction is pending (reserved) or not (booked).
tinkId
type: string
required: false
Ignored for new objects. Used to specify the id as given by Tink on when updating objects without an existing external ID.
type
type: string
required: true
The type of the transaction. Values: DEFAULT, CREDIT_CARD, TRANSFER, PAYMENT, WITHDRAWAL
Status Code Description
204 Transactions updated.
400 The payload does not pass validation, or the specified account does not exist.
401 User not found.
404 Transaction not found.

User Service

Activate a user

POST /connector/users

Activates a user.

Request Example

{
  "blocked": false,
  "externalId": "2ce1f090a9304f13a15458d480f8a85d",
  "label": "Brand X",
  "locale": "en_US",
  "market": "SE",
  "token": "9ac7f1611519afa1a66488ad11fda19a"
}

Request Body: UserEntity

The user

Parameter Description
blocked
type: boolean
required: false
Set to either block or unblock the user.
externalId
type: string
required: true
Persistent identifier for the user.
label
type: string
required: false
Custom label for user.
locale
type: string
required: false
Set locale for the user. Defaults to default locale for the user's market.
market
type: string
required: false
Market specific code for the user as a ISO 3166-1 country code. Values: AT, AU, BE, BG, BR, CA, CY, CZ, DE, DK, EE, ES, FI, FO, FR, GB, GR, HR, HU, IE, IN, IT, LU, LV, MT, MX, NL, NO, NZ, PL, PT, RO, SE, SG, SI, SK, UK, US
token
type: string
required: true
Access token for the user. This is required later as authentication when fetching data for the user.
Status Code Description
204 User activated.
400 The payload does not pass validation.
404 The market does not exist.
409 User already exists.

Delete a user

DELETE /connector/users/{externalUserId}

Deletes a user.

Parameters

Parameter Description
externalUserId
required: true
Persistent identifier for the user.
Status Code Description
204 User deleted.
401 User not found.

Update a user

PUT /connector/users/{externalUserId}

Updates a user.

Request Example

{
  "blocked": false,
  "externalId": "2ce1f090a9304f13a15458d480f8a85d",
  "label": "Brand X",
  "locale": "en_US",
  "market": "SE",
  "token": "9ac7f1611519afa1a66488ad11fda19a"
}

Parameters

Parameter Description
externalUserId
required: true
Persistent identifier for the user.

Request Body: UserEntity

The user

Parameter Description
blocked
type: boolean
required: false
Set to either block or unblock the user.
externalId
type: string
required: true
Persistent identifier for the user.
label
type: string
required: false
Custom label for user.
locale
type: string
required: false
Set locale for the user. Defaults to default locale for the user's market.
market
type: string
required: false
Market specific code for the user as a ISO 3166-1 country code. Values: AT, AU, BE, BG, BR, CA, CY, CZ, DE, DK, EE, ES, FI, FO, FR, GB, GR, HR, HU, IE, IN, IT, LU, LV, MT, MX, NL, NO, NZ, PL, PT, RO, SE, SG, SI, SK, UK, US
token
type: string
required: true
Access token for the user. This is required later as authentication when fetching data for the user.
Status Code Description
204 User updated.
400 The payload does not pass validation.
401 User not found.

Version Service

Get the version

GET /version

Gets the current version (build) of the application

Response Example

{
  "commit": "e764d0eed748d6c137c30fc94c7e17544d101ff3",
  "date": 1455740874875,
  "version": "4513"
}

Response: VersionResponse

Parameter Description
commit
type: string
required: true
The last commit of the build
date
type: number
required: true
The date of the build
version
type: string
required: true
The version of the build

Webhook Service

Get all registered webhooks.

GET /connector/webhooks

Returns an object with a list of all the registered webhooks.

Set up a webhook.

POST /connector/webhooks

Set up a new webhook for all users, giving the possibility to get pushed updates for certain events. The webhook will automatically concern both old and new users.

Request Example

{
  "events": [
    "signable-operation:update, transaction:update"
  ],
  "id": "d3452eed13a0443997257ebe1042813c",
  "secret": "67abc1e08fb64c92b450a13e0876330b",
  "url": "https://www.clienturl.com/webhook"
}

Request Body: WebhookEntity

The webhook request.

Parameter Description
events
type: array[string]
required: true
A list of events to register webhooks for.
id
type: string
required: false
The internal Tink ID of the webhook.
secret
type: string
required: true
A secret chosen by the partner. This secret can be used when getting the actual webhook executed back to verify it's a valid one.
url
type: string
required: true
The URL that will receive the webhook. It needs to be over https, and Tink needs to have the domain registered in the database.
Status Code Description
204 Webhook created.
400 The payload does not pass validation, URL is invalid or does not use HTTPS.

Delete a webhook.

DELETE /connector/webhooks/{id}

Parameters

Parameter Description
id
required: true
Internal Tink ID for the webhook.
Status Code Description
204 Webhook deleted.
404 Could not find the webhook.