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
Header | 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 |
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
Header | 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.