Update Link

Update Link

Updates the link configuration.

URL

PATCH
/links/{id}
Request
curl --request PATCH \
--url https://api.moneykit.com/links/[id] \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
--header 'X-Client-Id: SOME_STRING_VALUE' \
--header 'X-Client-Secret: SOME_STRING_VALUE' \
--header 'content-type: application/json' \
--data '{"webhook":"https://example.com/updated/hook","link_tags":["smoke_test","user_type:admin"],"tags":["string"]}'
const options = {
method: 'PATCH',
headers: {
'X-Client-Id': 'SOME_STRING_VALUE',
'X-Client-Secret': 'SOME_STRING_VALUE',
Authorization: 'Bearer REPLACE_BEARER_TOKEN',
'content-type': 'application/json'
},
body: '{"webhook":"https://example.com/updated/hook","link_tags":["smoke_test","user_type:admin"],"tags":["string"]}'
};

fetch('https://api.moneykit.com/links/[id]', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
import requests

url = "https://api.moneykit.com/links/[id]"

payload = {
"webhook": "https://example.com/updated/hook",
"link_tags": ["smoke_test", "user_type:admin"],
"tags": ["string"]
}
headers = {
"X-Client-Id": "SOME_STRING_VALUE",
"X-Client-Secret": "SOME_STRING_VALUE",
"Authorization": "Bearer REPLACE_BEARER_TOKEN",
"content-type": "application/json"
}

response = requests.request("PATCH", url, json=payload, headers=headers)

print(response.text)
package main

import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)

func main() {

url := "https://api.moneykit.com/links/[id]"

payload := strings.NewReader("{\"webhook\":\"https://example.com/updated/hook\",\"link_tags\":[\"smoke_test\",\"user_type:admin\"],\"tags\":[\"string\"]}")

req, _ := http.NewRequest("PATCH", url, payload)

req.Header.Add("X-Client-Id", "SOME_STRING_VALUE")
req.Header.Add("X-Client-Secret", "SOME_STRING_VALUE")
req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN")
req.Header.Add("content-type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.moneykit.com/links/[id]")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Patch.new(url)
request["X-Client-Id"] = 'SOME_STRING_VALUE'
request["X-Client-Secret"] = 'SOME_STRING_VALUE'
request["Authorization"] = 'Bearer REPLACE_BEARER_TOKEN'
request["content-type"] = 'application/json'
request.body = "{\"webhook\":\"https://example.com/updated/hook\",\"link_tags\":[\"smoke_test\",\"user_type:admin\"],\"tags\":[\"string\"]}"

response = http.request(request)
puts response.read_body
import Foundation

let headers = [
"X-Client-Id": "SOME_STRING_VALUE",
"X-Client-Secret": "SOME_STRING_VALUE",
"Authorization": "Bearer REPLACE_BEARER_TOKEN",
"content-type": "application/json"
]
let parameters = [
"webhook": "https://example.com/updated/hook",
"link_tags": ["smoke_test", "user_type:admin"],
"tags": ["string"]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.moneykit.com/links/[id]")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "PATCH"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})

dataTask.resume()
Response
{
"link_id": "mk_eqkWN34UEoa2NxyALG8pcV",
"institution_id": "chase",
"institution_name": "Chase",
"institution_avatar": "https://example.com/avatar.png",
"state": "connected",
"error_code": null,
"provider": "akoya",
"link_tags": [
"smoke_test",
"user_type:admin"
],
"webhook": "https://example.com/webhook",
"products": {
"additionalProp": {}
},
"available_products": [
"account_numbers"
]
}
{
"error_code": "api_error.auth.expired_access_token",
"error_message": "Access token expired",
"documentation_url": string
}
{
"error_code": "link_error.forbidden_action",
"error_message": "Accounts access not permitted",
"documentation_url": string
}
{
"error_code": "link_error.not_found",
"error_message": "Link not found.",
"documentation_url": string
}
{
"error_code": "link_error.deleted",
"error_message": "This link was deleted at some earlier time.",
"documentation_url": string
}
{
"error_code": "link_error.bad_state",
"error_message": string,
"documentation_url": string,
"link_error_code": string
}
{
"error_code": "api_error.rate_limit_exceeded",
"error_message": "Rate limit exceeded",
"documentation_url": string
}

tags

deprecated

please use link_tags instead.

webhook

Sets the webhook URL for this link. To remove a webhook for this link, set to null.

example: https://example.com/updated/hook

id

: string

required

The unique ID for this link.

example: mk_eqkWN34UEoa2NxyALG8pcV

X-Client-Id

: string

Your client ID.

example: live_dcc75c42eb6122127356

X-Client-Secret

: string

Your client secret

example: vzPznCv3kT7fHsAr6y3jk38d

Responses

200

Updated link.

institution_id

: string

The unique ID for the institution this link is connected to.

example: chase

institution_name

: string

The institution name this link is connected to.

example: Chase

institution_avatar

: string

An avatar image for the link's institution.

example: https://example.com/avatar.png

state

: string

The current state of this link. Links that are not yet connected, or which require reconnection, will be in one of the non-connected states. Please note that recently deleted links can be fetched by this function (and will have a state of deleted); however, MoneyKit completely removes deleted links 90 days after deletion, so older deleted links will not be seen after this time.

example: connected

Allowed values:

connecting

awaiting_token_exchange

connected

deleted

error

error_code

The type of error, if the link is in the error state. See Errors for an explanation of error codes.

last_synced_at

deprecated

An ISO-8601 timestamp indicating the last time that the link was updated.

example: 2023-02-16T09:14:11Z

provider

: string

The provider that most recently facilitated the creation of this link. Note that MoneyKit may switch providers if necessary to provide continuous access to the institution. Not all providers are automatically available or usable; provider selection is dynamic and depends on many factors.

example: akoya

Allowed values:

moneykit

finicity

plaid

yodlee

mx

akoya

tags

deprecated

use link_tags instead

webhook

The webhook url assigned to this link.

example: https://example.com/webhook

products

: object

The granted products available for this link.

available_products

: array

A list of products that could be added to this link. Products can be added to (and removed from) an existing link by creating a new link-session and supplying the existing_link_id with a new set of products.

Allowed values:

accounts

account_numbers

identity

transactions

investments

enrichment

403

Forbidden by link owner. The user did not give permission to access this data when linking.

error_code

: string

default: "link_error.forbidden_action"

error_message

: string

Error message

example: Accounts access not permitted

documentation_url

404

Link not found.

error_code

: string

default: "link_error.not_found"

error_message

: string

default: "Link not found."

documentation_url

410

Link deleted.

error_code

: string

default: "link_error.deleted"

error_message

: string

default: "This link was deleted at some earlier time."

documentation_url

422

Link error.

error_code

: string

default: "link_error.bad_state"

error_message

: string

documentation_url

429

Rate limit exceeded.

error_code

: string

default: "api_error.rate_limit_exceeded"

error_message

: string

Error message

default: "Rate limit exceeded"

documentation_url