Skip to main content

Akoya
Documentation

Customers Guide

Version Differences

This endpoint is available in API versions 2 and 3. Note the following differences:

Area

V2

V3

x-akoya-interaction-type header

Optional

Required

x-akoya-last-access header

Not Supported

Required

x-akoya-intent-type header

Not Supported

Required

Overview

The Customers product supports two endpoints for retrieval of customer information.

The default endpoint (used in most cases as it is the most efficient), is Customer info (/customers). This endpoint returns information for the permissioned customer.

The second endpoint is Account holder information (/contacts). You use this endpoint if specific data providers require it (See the provider nuance documentation in the Data Recipient Hub), or if necessitated by your use case. By default, the response for Account Holder information includes the data elements for Customer info for the permissioned user in addition to the relationship data element, but some providers share customer data for additional account holders. See the provider documentation in the Data Recipient Hub.

The Customers product operates from the context of the bearer token (a.k.a. the authorized user). The Customer Info endpoint meets your needs for use cases such as payment, identity verification, account opening, and UX personalization. It doesn’t return customer info at the account level (e.g. account holders for a joint account). Instead, it returns info for the currently-permissioned user only.

The Account Holders endpoint supports lending or credit decisioning use cases where you would want to determine the relationship between an account and the permissioned end-user (e.g. if they’re the primary account holder). This endpoint returns information on the permissioned account holder, and depending on the data provider, potentially account holders.

See this article from within the Data Recipient Hub for a list of providers that support the Account Holders endpoint. This article is only viewable from within the Hub.

The provider documentation tabs for each provider in the Data Recipient Hub also mention if that provider supports the Account Holders endpoint.

The API returns results in JSON in FDX format.

Common Use Cases

  • Account Opening: Enable instant account opening and funding without micro-deposits (in conjunction with Balances and Payments).

  • Account Ownership Validation: Retrieve consumer information directly from the financial institution to validate account ownership.

  • Lending & Credit Enhancement: Access bank or brokerage data to better inform lending decisions (in conjunction with Balances, Transactions and Statements).

  • Payment Enablement: Authorize account-to-account or person-to-person payments with instant account authentication (in conjunction with Balances and Payments).

Security

The Customers API requires authentication using a bearer token (id_token assigned to the permissioned user). You should include the id_token in the Authorization header of each request. The actual token lifetime varies by provider, but assume a lifetime of 15 minutes and code your application to automatically refresh the token if it has expired.

Base URL

Like all Akoya APIs, Customers operates in both sandbox and prod:

  • Sandbox:

    • https://sandbox-products.ddp.akoya.com

  • Production:

    • https://products.ddp.akoya.com

Endpoints

Customer Information

GET /customers/{version}/{providerId}/current

This endpoint returns information for the permissioned customer.

Path Params

Param

Description

{version}

Major API version (e.g. v3)

{providerId}

ID for the financial institution providing the data

Query Params

Param

Type

Required

Description

mode

String

No

BETA. Default is raw. Use standard for FDX-aligned, standardized data values.

Headers

Type

Required

Description

Authorization

String

Yes

The ID Token for the permissioned user

x-akoya-interaction-type

String (Enum)

v2: No

v3: Yes

Indicates whether a consumer action prompted the request (USER) or the request is part of a batch process (BATCH).

x-akoya-last-access

String (Date-Time)

v2: N/A

v3: Yes

The date and time stamp for the last active use by the user.

x-akoya-intent-type

String (Enum)

v2: N/A

v3: Yes

Indicates whether a transaction involves a payment. Acceptable values are payments or nonpayments.

Example Response

JSON

Supported Data Elements

Name

Type

Description

customerId

String

Long-term persistent identity of the customer. This identity must be unique to the owning institution

name

Object

none

name.first

String

First or given name. This data element may contain first & last name if not separated.

name.middle

String

none

name.last

String

none

name.prefix

String

Name prefix, e.g. Mr.

name.suffix

String

Generational or academic suffix

name.company

String

Company name

addresses

Array [addresses]

An array of the customer's addresses

addresses.type

String

The location type of an address

addresses.line1

String

May contain full address if not separated

addresses.line2

String

none

addresses.line3

String

none

addresses.city

String

none

addresses.state

String

none

addresses.postalCode

String

none

addresses.country

String

ISO 3166 Country Code

telephones

Array [telephones]

An array of the customer's telephone numbers.

telephones.number

String

none

telephones.type

String

none

telephones.country

String

Country calling codes defined by ITU-T recommendations E.123 and E.164

email

Array [String]

An array of the customer's electronic mail addresses

Account Holder Information

GET /contacts/{version}/{providerId}/{accountId}

This endpoint includes the data elements for Customer info for the permissioned user in addition to the relationship data element.

Path Params

Param

Description

{version}

API major version (e.g. v2)

{providerId}

ID for the financial institution providing the data

{accountId}

The account ID of the permissioned user

Query Params

Param

Type

Required

Description

(None)

---

---

---

Headers

Type

Required

Description

Authorization

String

Yes

The ID Token for the permissioned user

x-akoya-interaction-type

String (Enum)

v2: No

v3: Yes

Indicates whether a consumer action prompted the request (USER) or the request is part of a batch process (BATCH).

x-akoya-last-access

String (Date-Time)

v2: N/A

v3: Yes

The date and time stamp for the last active use by the user.

x-akoya-intent-type

String (Enum)

v2: N/A

v3: Yes

Indicates whether a transaction involves a payment. Acceptable values are payments or nonpayments.

Example Response

JSON

Supported Data Elements

Name

Type

Description

holders

Array [accountHolder]

FDX account holder, extends customer

holders.businessCustomer

Object

Commercial customers affiliate with a business entity.

businessCustomer.registeredAgents

Array [nameObject]

none

businessCustomer.registeredId

String

TIN or other identifier

businessCustomer.industryCode

Object

none

businessCustomer.industryCode.type

String

BCLASS, BICS, GICS, MOODYS, NAICS, OTHER, SIC

businessCustomer.industryCode.code

String

Code value

businessCustomer.domicile

Object

none

businessCustomer.domicile.region

String

Region of legal jurisdiction

businessCustomer.domicile.country

String

ISO 3166 country code

holders.accounts

Array [account]

List of accounts related to customer

accounts.accountId

String

Account unique identifier

accounts.relationship

String

Relationship. see the next row

relationship

String

Type of relationship between account and holder. Suggested:

AUTHORIZED_USER, BUSINESS, FOR_BENEFIT_OF, FOR_BENEFIT_OF_PRIMARY, FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED, FOR_BENEFIT_OF_SECONDARY, FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED, FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED, POWER_OF_ATTORNEY, PRIMARY, PRIMARY_BORROWER, PRIMARY_JOINT, PRIMARY_JOINT_TENANTS, SECONDARY, SECONDARY_BORROWER, SECONDARY_JOINT, SECONDARY_JOINT_TENANTS, SOLE_OWNER, TRUSTEE, UNIFORM_TRANSFER_TO_MINOR

Error Responses

See our error documentation.