Get Identity

Get Identity

Returns account owner information from the institution, including names, emails, phone numbers, and addresses, for all permissioned accounts associated with a link. This information will appear in the owners list in the accounts object.

Some fields may be empty, if not provided by the institution.

Note that this endpoint does not trigger a fetch of owner information from the institution; it merely returns owner information that has already been fetched, either because prefetch was requested when the link was created, or because of an on-demand update. To force a check for new/updated owner information, you must use the /products endpoint.

If you have requested prefetch or an on-demand update, you should check the refreshed_at date for this product in the returned response, and compare that against the previous refreshed_at date, which you can get from any previous response for this or any other account or link request. If the refreshed_at date has not increased, then updated data is not yet available.

URL

GET
/links/{id}/identity
Request
curl --request GET \
--url 'https://api.moneykit.com/links/[id]/identity?account_ids=SOME_ARRAY_VALUE' \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
--header 'X-Client-Id: SOME_STRING_VALUE' \
--header 'X-Client-Secret: SOME_STRING_VALUE'
fetch("https://api.moneykit.com/links/[id]/identity?account_ids=SOME_ARRAY_VALUE", {
"method": "GET",
"headers": {
"Authorization": "Bearer REPLACE_BEARER_TOKEN",
"X-Client-Id": "SOME_STRING_VALUE",
"X-Client-Secret": "SOME_STRING_VALUE"
}
})
.then(response => response.json())
.then(data => console.log(data));
import requests

url = "https://api.moneykit.com/links/[id]/identity?account_ids=SOME_ARRAY_VALUE"
headers = {
'Authorization': 'Bearer REPLACE_BEARER_TOKEN',
'X-Client-Id': 'SOME_STRING_VALUE',
'X-Client-Secret': 'SOME_STRING_VALUE'
}

response = requests.get(url, headers=headers)
print(response.json())
package main

import (
"fmt"
"net/http"
)

func main() {
req, _ := http.NewRequest("GET", "https://api.moneykit.com/links/[id]/identity?account_ids=SOME_ARRAY_VALUE", nil)
req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN")
req.Header.Add("X-Client-Id", "SOME_STRING_VALUE")
req.Header.Add("X-Client-Secret", "SOME_STRING_VALUE")

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

fmt.Println(res)
}
require 'net/http'
require 'json'

uri = URI('https://api.moneykit.com/links/[id]/identity?account_ids=SOME_ARRAY_VALUE')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer REPLACE_BEARER_TOKEN'
request['X-Client-Id'] = 'SOME_STRING_VALUE'
request['X-Client-Secret'] = 'SOME_STRING_VALUE'

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

let url = URL(string: "https://api.moneykit.com/links/[id]/identity?account_ids=SOME_ARRAY_VALUE")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer REPLACE_BEARER_TOKEN", forHTTPHeaderField: "Authorization")
request.setValue("SOME_STRING_VALUE", forHTTPHeaderField: "X-Client-Id")
request.setValue("SOME_STRING_VALUE", forHTTPHeaderField: "X-Client-Secret")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else { return }
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Response
{
"accounts": [
{
"account_id": "acc_6Tef269B6ZArSVpYrxtjBV",
"account_type": "depository.checking",
"name": "Premier Checking",
"nickname": "John's Account",
"account_mask": "3748",
"balances": {
"currency": "USD",
"available": 340.12,
"current": 445.89,
"limit": 500,
"balance_date": "2023-02-16T09:14:11Z"
},
"original_id": null,
"closed": true,
"owners": [
{
"names": [
string
],
"addresses": [
{
"city": string,
"country": string,
"postal_code": string,
"region": string,
"street": string,
"primary": true
}
],
"phone_numbers": [
{
"number": "6175551212",
"primary": true,
"type": "home"
}
],
"emails": [
{
"address": "example@example.com",
"primary": true
}
]
}
]
}
],
"link": {
"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
}

account_ids

An optional list of account IDs to filter the results.

id

: string

required

The unique ID for this link.

example: mk_eqkWN34UEoa2NxyALG8pcV

X-Client-Id

: string

X-Client-Secret

: string

Your client secret

example: vzPznCv3kT7fHsAr6y3jk38d

Responses

200

Successful Response

accounts

: array

A list of accounts associated with the link.

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