Plaid logo
Core Exchange
ALL DOCS

API reference

  • v6.1
  • v6.0
  • v5.3
  • v5.2
  • v5.1
  • v5.0
  • v4.6
Open nav
Core Exchange
Plaid.comGet Started

Core Exchange v5.2 API Reference

Plaid Core Exchange API Reference

Overview

When your organization builds Core Exchange, you implement a Financial Data Exchange (FDX)-aligned API. This API handles GET HTTP requests that the Plaid network (or other data networks that you partner with) send. These requests are for information about your customers' financial accounts. Please note that this specification is subject to change as we make improvements to the product. If you have questions, please reach out to the Plaid team.

Endpoints

This specification contains the following endpoints:

Endpoints
/customers/currentGet the ID of the customer within the authorization scope
/accounts/{accountId}/contactGet account contact information
/accountsSearch and view customer accounts
/accounts/{accountId}Get account balances, liabilities, and other information
/accounts/{accountId}/statementsGet account statements
/accounts/{accountId}/statements/{statementId}Get account statement PDF
/accounts/{accountId}/transactionsList all account transactions
/accounts/{accountId}/payment-networksGet payment networks supported by an account

Plaid integration and interoperability

The Core Exchange specifications describe the subset of FDX endpoints required by Plaid, as well as the subset of FDX information Plaid consumes from each endpoint. Plaid takes the following approach to documenting these subsets:

  • ENUMS: In cases where an endpoint describes FDX enums that Plaid doesn't consume, the specifications note the enums Plaid consumes, but refrains from removing unused enums. This enables your organization to more easily integrate your Core Exchange implementation with other data networks. For example, FDX defines many account type enums, so the specifications retain these enums but notes which account type enums Plaid consumes in the GET \accounts\{id} endpoint reference.

  • SCHEMAS: In cases where an endpoint describes FDX schemas that Plaid doesn't consume, the specification omits the schema.

FDX compliance

The Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API License Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or conditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases. Please note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of the FDX end user license agreement, which can be found at https://financialdataexchange.org/. The full FDX API standard specification is distributed exclusively by FDX.

Download the specification

To view this specification and documentation as an OpenAPI YAML file, see the public Core Exchange Github repository.

Errors

Error responses

An error entity which can be used at the API level for error responses or at the account level to indicate a problem specific to a particular account. Error responses must contain a code and message, and may optionally include a debugMessage. See the descriptions below:

  • code: The FDX error code: A long-term persistent identifier which can be used to trace error condition back to log information. (Note: This code may differ from the HTTP status code.)
  • message: End user displayable information which might help the customer diagnose an error
  • debugMessage: Message used to debug the root cause of the error. Contents should not be used in consumer's business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use
Example error

The following is an example response with an HTTP status code of 409.

1{
2 "code": 705,
3 "message": "Account is closed",
4 "debugMessage": "Operation is not supported by the closed account"
5}

See the Errors table in each endpoint description for more specific message and debug message examples.

Endpoints

/customers/current

Get current authenticated customer ID

Get the ID of the customer within the authorization scope. If you use OIDC authentication (recommended) you do not need to implement this endpoint. Plaid will identify the customer using the OIDC ID token. If you use OAuth2 authentication, Plaid will use this endpoint as an alternate method of customer identification.

customers/current

Request fields

This endpoint takes an empty request body.
1curl -X GET 'https://api.your-org.com/fdx/v5/customers/current' \
2-H 'Content-Type: application/json' \
3-H 'Authorization: Bearer <access_token>'
200 OK
customers/current

Response fields and example

customerId
requiredstringrequired, string
Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user

Max length: 256
1{
2 "customerId": "someLongTermUniqueIDString"
3}
Was this helpful?
Error responses
HTTP status codeFDX error codeExample messageExample debug message
404601Customer not foundA customer with the provided customer ID could not be found
500500Internal server errorProvider custom developer-level error details for troubleshooting
500501Subsystem unavailableA system required to process the request was not available. Request was not processed
503503Scheduled maintenanceSystem is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery

/accounts/{accountId}/contact

Get an account's contact information

Get contact information on the account.
Plaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see Plaid Identity API.

accounts/{accountId}/contact

Request fields

accountId
stringstring
Account identifier, found in the GET /accounts endpoint response. Plaid expects the ID to be a different value from the account number
Note: If the status of the accountId provided is RESTRICTED, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.


Max length: 256
In: path
1curl -X GET 'https://api.your-org.com/fdx/v5/accounts/{accountId}/contact' \
2-H 'Content-Type: application/json' \
3-H 'Authorization: Bearer <access_token>'
200 OK

Details used to verify an account

holders
required[object]required, [object]
Owners of the account. Note that while the FDX specification enables associating holders and their contact information in the full AccountHolder schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each AccountHolder and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see Identity

Min items: 1
name
requiredobjectrequired, object
The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field
first
requiredstringrequired, string
First name
middle
stringstring
Middle name
last
requiredstringrequired, string
Last name
suffix
stringstring
Generational or academic suffix, e.g. Jr., Sr., III
prefix
stringstring
Prefix, e.g. Mr., Mrs., Dr.
relationship
stringstring
Customer's relationship to the account

Possible values: 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_JOINT_TENANTS, PRIMARY, PRIMARY_BORROWER, PRIMARY_JOINT, SECONDARY, SECONDARY_JOINT_TENANTS, SECONDARY_BORROWER, SECONDARY_JOINT, SOLE_OWNER, TRUSTEE, UNIFORM_TRANSFER_TO_MINOR
emails
required[string]required, [string]
Email addresses associated with the account

Min items: 1
addresses
required[object]required, [object]
Physical mail addresses associated with the account

Min items: 1
line1
requiredstringrequired, string
Address line 1

Max length: 64
line2
stringstring
Address line 2

Max length: 64
line3
stringstring
Address line 3

Max length: 64
city
requiredstringrequired, string
City

Max length: 64
region
stringstring
State or province

Max length: 64
postalCode
stringstring
Postal code

Max length: 10
country
requiredstringrequired, string
Country code

Possible values: AD, AE, AF, AG, AI, AL, AM, AN, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BM, BN, BO, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CS, CU, CV, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, ST, SV, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, YE, YT, ZA, ZM, ZW
telephones
required[object]required, [object]
Telephone numbers associated with the account

Min items: 1
type
requiredstringrequired, string
Telephone number type

Possible values: HOME, BUSINESS, CELL, FAX
country
stringstring
Country calling codes defined by ITU-T recommendations E.123 and E.164

Max length: 3
number
requiredstringrequired, string
Telephone subscriber number defined by ITU-T recommendation E.164

Max length: 15
Pattern: \d+
1{
2 "holders": [
3 {
4 "relationship": "SECONDARY",
5 "name": {
6 "first": "Ernest",
7 "middle": "Miller",
8 "last": "Hemingway",
9 "suffix": "IV"
10 }
11 },
12 {
13 "relationship": "PRIMARY_JOINT",
14 "name": {
15 "first": "Maya",
16 "last": "Angelou",
17 "middle": "Annie"
18 }
19 }
20 ],
21 "emails": [
22 "ernest.m.hemingway@domain.tld",
23 "m.angelou@domain.tld"
24 ],
25 "addresses": [
26 {
27 "line1": "1850 N Clark St",
28 "line2": "Apartment 103",
29 "city": "Chicago",
30 "region": "IL",
31 "postalCode": "60614",
32 "country": "US"
33 },
34 {
35 "line1": "2014 N Main St",
36 "city": "San Francisco",
37 "region": "CA",
38 "postalCode": "94105",
39 "country": "US"
40 }
41 ],
42 "telephones": [
43 {
44 "type": "HOME",
45 "country": "1",
46 "number": "3127771926"
47 },
48 {
49 "type": "CELL",
50 "country": "53",
51 "number": "45915607"
52 },
53 {
54 "type": "HOME",
55 "country": "1",
56 "number": "4157771926"
57 }
58 ]
59}
Was this helpful?
Error responses
HTTP status codeFDX error codeExample messageExample debug message
401602Customer not authorizedAuthenticated customer does not have the authorization to perform this action
404601Customer not foundA customer with the provided customer ID could not be found
404701Account not foundAn account with the provided account ID could not be found
409705Account is closedOperation is not supported by the closed account
422704Account type not supportedThe account type does not support the selected action
500500Internal server errorProvider custom developer-level error details for troubleshooting
500501Subsystem unavailableA system required to process the request was not available. Request was not processed
503503Scheduled maintenanceSystem is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery

/accounts

List all accounts

Search and view customer accounts

accounts

Request fields

offset
stringstring
An opaque ID that indicates there is at least one more page of data available. This value does not need to be numeric or have any specific pattern. If provided, Plaid will use this value to send a new request and retrieve the next page. Omitting this value indicates that there is no more data to retrieve.
In: query
limit
integerinteger
The number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If your organization has a different limit, use the lower limit to determine how many items to send per page. To retrieve multiple pages, Plaid will use the opaque nextOffset field to send a subsequent request until the nextOffset is no longer included.
In: query
1curl -X GET 'https://api.your-org.com/fdx/v5/accounts?offset=15&limit=50' \
2-H 'Content-Type: application/json' \
3-H 'Authorization: Bearer <access_token>'
200 OK
accounts

Response fields and example

page
objectobject
Contains the opaque identifier, nextOffset, to indicate a paginated result set.
nextOffset
stringstring
Opaque offset identifier
totalElements
integerinteger
Total number of elements
accounts
required[object]required, [object]
An optionally paginated array of account descriptors. Each account descriptor is sent as a key-value pair, with the account descriptor object as the value and the account type as the key. Accepted keys include: annuityAccount, depositAccount, locAccount, loanAccount, investmentAccount, and insuranceAccount.

Min items: 1
1{
2 "page": {
3 "nextOffset": "B47D80MVP23T"
4 },
5 "accounts": [
6 {
7 "depositAccount": {
8 "accountId": "depositAccount0000001",
9 "accountType": "CHECKING",
10 "accountNumberDisplay": "5820",
11 "productName": "Checking",
12 "nickname": "Main Checking",
13 "status": "OPEN",
14 "currency": {
15 "currencyCode": "USD"
16 }
17 }
18 },
19 {
20 "loanAccount": {
21 "accountId": "loanAccount0000001",
22 "accountType": "LOAN",
23 "accountNumberDisplay": "4704",
24 "productName": "Loan",
25 "nickname": "Primary Loan",
26 "status": "OPEN",
27 "currency": {
28 "currencyCode": "USD"
29 }
30 }
31 },
32 {
33 "locAccount": {
34 "accountId": "locAccount0000001",
35 "accountType": "LINEOFCREDIT",
36 "accountNumberDisplay": "8200",
37 "productName": "Line of Credit",
38 "nickname": "First plaidypus LOC",
39 "status": "OPEN",
40 "currency": {
41 "currencyCode": "USD"
42 }
43 }
44 },
45 {
46 "investmentAccount": {
47 "accountId": "investmentAccount0000001",
48 "accountType": "TAXABLE",
49 "accountNumberDisplay": "1050",
50 "productName": "Brokerage Account",
51 "nickname": "First plaidypus Brokerage",
52 "status": "OPEN",
53 "currency": {
54 "currencyCode": "USD"
55 }
56 }
57 }
58 ]
59}
Was this helpful?
Error responses
HTTP status codeFDX error codeExample messageExample debug message
404601Customer not foundA customer with the provided customer ID could not be found
500500Internal server errorProvider custom developer-level error details for troubleshooting
500501Subsystem unavailableA system required to process the request was not available. Request was not processed
503503Scheduled maintenanceSystem is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery

/accounts/{accountId}

Get detailed information for a specific account

Get account balances, liabilities, and other information. Plaid uses this endpoint to get balances for deposit accounts, get liabilities for STUDENTLOAN, MORTGAGE, and CREDITCARD loan accounts, and get balances and holdings for investment accounts for investment accounts. See Plaid Balance API, Plaid Liabilities API, and Plaid Investments API for more information on how Plaid uses this information. Info: Plaid does not use /accounts/{accountId} for annuity accounts, commercial accounts, or insurance accounts. However, these accounts are still included in the /accounts list, so that they are discoverable by users.

accounts/{accountId}

Request fields

accountId
stringstring
Account identifier, found in the GET /accounts endpoint response. Plaid expects the ID to be a different value from the account number
Note: If the status of the accountId provided is RESTRICTED, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.


Max length: 256
In: path
1curl -X GET 'https://api.your-org.com/fdx/v5/accounts/{accountId}' \
2-H 'Content-Type: application/json' \
3-H 'Authorization: Bearer <access_token>'
200 OK

A 200 response will return one of the following type of accounts:

  • Deposit account
  • Investment account
  • Line of credit account
  • Loan account

Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts. Plaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, "currentBalance": 192.00.
The accountType field for deposit accounts may be set to any of the account types listed below.

accountId
requiredstringrequired, string
Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.

Max length: 256
accountNumberDisplay
stringstring
Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.
productName
requiredstringrequired, string
Marketed product name for this account. Used in UIs to assist in account selection
nickname
stringstring
Account nickname
status
requiredstringrequired, string
Account status

Possible values: CLOSED, DELINQUENT, NEGATIVECURRENTBALANCE, OPEN, PAID, PENDINGCLOSE, PENDINGOPEN, RESTRICTED
currency
requiredobjectrequired, object
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
accountType
requiredstringrequired, string
The account type. Plaid consumes basic balance account information from the accounts/{accountId} endpoint for a subset of the possible account types described in the FDX specification.

Possible values: CHECKING, SAVINGS, CD, COMMERCIALDEPOSIT, ESCROW, MONEYMARKET, OTHERDEPOSIT
currentBalance
requirednumberrequired, number
The total amount of money in the account (sum of all posted/cleared transactions, not including pending transactions). For Plaid's full definition, see the Transactions
availableBalance
requirednumberrequired, number
The money in the account available to spend (sum of all transactions, plus or minus pending transactions). For Plaid's full definition, see Transactions
1{
2 "accountId": "someLongTermUniqueIDString",
3 "accountNumberDisplay": "4321",
4 "productName": "Premier Account",
5 "status": "OPEN",
6 "currency": {
7 "currencyCode": "CAD"
8 },
9 "accountType": "SAVINGS",
10 "currentBalance": 1399.02,
11 "availableBalance": 1399.02
12}
Was this helpful?
Error responses
HTTP status codeFDX error codeExample messageExample debug message
401602Customer not authorizedAuthenticated customer does not have the authorization to perform this action
404701Account not foundAn account with the provided account ID could not be found
409705Account is closedOperation is not supported by the closed account
422704Account type not supportedThe account type does not support the selected action
500500Internal server errorProvider custom developer-level error details for troubleshooting
500501Subsystem unavailableA system required to process the request was not available. Request was not processed
503503Scheduled maintenanceSystem is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery

/accounts/{accountId}/statements

Search for statements

Get account statements.

accounts/{accountId}/statements

Request fields

accountId
stringstring
Account identifier, found in the GET /accounts endpoint response. Plaid expects the ID to be a different value from the account number
Note: If the status of the accountId provided is RESTRICTED, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.


Max length: 256
In: path
offset
stringstring
An opaque ID that indicates there is at least one more page of data available. This value does not need to be numeric or have any specific pattern. If provided, Plaid will use this value to send a new request and retrieve the next page. Omitting this value indicates that there is no more data to retrieve.
In: query
limit
integerinteger
The number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If your organization has a different limit, use the lower limit to determine how many items to send per page. To retrieve multiple pages, Plaid will use the opaque nextOffset field to send a subsequent request until the nextOffset is no longer included.
In: query
startTime
stringstring
Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the postedTimestamp

Format: date
Max length: 10
In: query
endTime
stringstring
End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the postedTimestamp

Format: date
Max length: 10
In: query
1curl -X GET 'https://api.your-org.com/fdx/v5/accounts/{accountId}/statements?startTime=2022-04-01&endTime=2022-04-30' \
2-H 'Content-Type: application/json' \
3-H 'Authorization: Bearer <access_token>'
200 OK
accounts/{accountId}/statements

Response fields and example

page
objectobject
Contains the opaque identifier, nextOffset, to indicate a paginated result set.
nextOffset
stringstring
Opaque offset identifier
totalElements
integerinteger
Total number of elements
statements
required[object]required, [object]
An array of statements, each with its own HATEOAS link to retrieve the account statement
accountId
stringstring
Corresponds to accountId in Account entity

Max length: 256
statementId
stringstring
Long-term persistent identity of the statement. This identity must be unique within your organization

Max length: 256
statementDate
stringstring
The date the statement becomes available to be viewed by the user

Format: date
Max length: 10
description
stringstring
Description of the statement
links
[object][object]
The HATEOAS links to retrieve this account statement, or to invoke other APIs.
Note: Plaid only accepts one link object in this array
href
requiredstringrequired, string
The resource URL

Format: uri-reference
action
stringstring
The HTTP method to use for the request

Possible values: GET, POST, PATCH, DELETE, PUT
rel
stringstring
The relation of this link to its containing entity, as defined by the IETF RFC5988
types
[string][string]
The content-types that can be used in the Accept header. Note: Plaid currently only accepts the PDF (application/pdf) content type

Possible values: application/pdf, image/gif, image/jpeg, image/tiff, image/png, application/json
status
stringstring
Availability status of statement

Possible values: AVAILABLE, PROCESSING, FAILED
1{
2 "page": {
3 "nextOffset": "B47D80MVP23T",
4 "total": 3
5 },
6 "statements": [
7 {
8 "accountId": "10001",
9 "statementId": "20001",
10 "statementDate": "2024-01-15",
11 "description": "January 2024 Monthly Statement",
12 "links": [
13 {
14 "href": "/accounts/10001/statements/20001",
15 "rel": "self",
16 "action": "GET",
17 "types": [
18 "application/pdf"
19 ]
20 },
21 {
22 "href": "/accounts/10001/statements/20001/download",
23 "rel": "download",
24 "action": "GET",
25 "types": [
26 "application/pdf"
27 ]
28 }
29 ],
30 "status": "AVAILABLE"
31 },
32 {
33 "accountId": "10001",
34 "statementId": "20002",
35 "statementDate": "2024-02-15",
36 "description": "February 2024 Monthly Statement",
37 "links": [
38 {
39 "href": "/accounts/10001/statements/20002",
40 "rel": "self",
41 "action": "GET",
42 "types": [
43 "application/pdf"
44 ]
45 }
46 ],
47 "status": "PROCESSING"
48 }
49 ]
50}
Was this helpful?
Error responses
HTTP status codeFDX error codeExample messageExample debug message
401602Customer not authorizedAuthenticated customer does not have the authorization to perform this action
404601Customer not foundA customer with the provided customer ID could not be found
404701Account not foundAn account with the provided account ID could not be found
409705Account is closedOperation is not supported by the closed account
422704Account type not supportedThe account type does not support the selected action
500500Internal server errorProvider custom developer-level error details for troubleshooting
500501Subsystem unavailableA system required to process the request was not available. Request was not processed
503503Scheduled maintenanceSystem is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery

/accounts/{accountId}/statements/{statementId}

Get account statement

Get account statement PDF

accounts/{accountId}/statements/{statementId}

Request fields

accountId
stringstring
Account identifier, found in the GET /accounts endpoint response. Plaid expects the ID to be a different value from the account number
Note: If the status of the accountId provided is RESTRICTED, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.


Max length: 256
In: path
statementId
stringstring
Statement identifier, found in the GET /accounts/{accountId}/statements endpoint response

Max length: 256
In: path
1curl -X GET 'https://api.your-org.com/fdx/v5/accounts/{accountId}/statements/{statementId}' \
2-H 'Content-Type: application/json' \
3-H 'Authorization: Bearer <access_token>'
200 OK

A 200 response will return a raw binary PDF statement file.

Error responses
HTTP status codeFDX error codeExample messageExample debug message
401602Customer not authorizedAuthenticated customer does not have the authorization to perform this action
404601Customer not foundA customer with the provided customer ID could not be found
404701Account not foundAn account with the provided account ID could not be found
409705Account is closedOperation is not supported by the closed account
422704Account type not supportedThe account type does not support the selected action
500500Internal server errorProvider custom developer-level error details for troubleshooting
500501Subsystem unavailableA system required to process the request was not available. Request was not processed
503503Scheduled maintenanceSystem is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery

/accounts/{accountId}/transactions

Search for account transactions

List all account transactions. Plaid always queries this endpoint using a startTime and an endTime, for example, /accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30, and expects the time filters to be based on the postedTimestamp.
Plaid consumes data from this endpoint only for loan, investment, deposit, and line of credit accounts.

accounts/{accountId}/transactions

Request fields

accountId
stringstring
Account identifier, found in the GET /accounts endpoint response. Plaid expects the ID to be a different value from the account number
Note: If the status of the accountId provided is RESTRICTED, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.


Max length: 256
In: path
offset
stringstring
An opaque ID that indicates there is at least one more page of data available. This value does not need to be numeric or have any specific pattern. If provided, Plaid will use this value to send a new request and retrieve the next page. Omitting this value indicates that there is no more data to retrieve.
In: query
limit
integerinteger
The number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If your organization has a different limit, use the lower limit to determine how many items to send per page. To retrieve multiple pages, Plaid will use the opaque nextOffset field to send a subsequent request until the nextOffset is no longer included.
In: query
startTime
stringstring
Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the postedTimestamp

Format: date
Max length: 10
In: query
endTime
stringstring
End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the postedTimestamp

Format: date
Max length: 10
In: query
1curl -X GET 'https://api.your-org.com/fdx/v5/accounts/{accountId}/transactions?startTime2022-11-01&limit=100' \
2-H 'Content-Type: application/json' \
3-H 'Authorization: Bearer <access_token>'
200 OK
accounts/{accountId}/transactions

Response fields and example

page
objectobject
Contains the opaque identifier, nextOffset, to indicate a paginated result set.
nextOffset
stringstring
Opaque offset identifier
totalElements
integerinteger
Total number of elements
transactions
requiredarrayrequired, array
An optionally paginated array of transactions. May be any of the following: deposit transaction, investment transaction, loan transaction, line of credit transaction

Min items: 1
1{
2 "page": {
3 "nextOffset": "B47D80MVP23T"
4 },
5 "transactions": [
6 {
7 "depositTransaction": {
8 "transactionType": "CHECK",
9 "checkNumber": 1234,
10 "payee": "ACME llc",
11 "transactionId": "depositTransaction000000001",
12 "postedTimestamp": "2022-04-06T00:00:00.000Z",
13 "transactionTimestamp": "2022-04-05T00:00:00.000Z",
14 "description": "check for latest ACME invoice",
15 "debitCreditMemo": "DEBIT",
16 "status": "PENDING",
17 "amount": 400
18 }
19 },
20 {
21 "depositTransaction": {
22 "transactionType": "ADJUSTMENT",
23 "transactionId": "depositTransaction000000002",
24 "postedTimestamp": "2022-04-07T00:00:00.000Z",
25 "transactionTimestamp": "2022-04-07T00:00:00.000Z",
26 "description": "reconciliation/adjustment of bank statement error",
27 "debitCreditMemo": "DEBIT",
28 "status": "POSTED",
29 "amount": 0.8
30 }
31 },
32 {
33 "depositTransaction": {
34 "transactionType": "ATMDEPOSIT",
35 "transactionId": "depositTransaction000000003",
36 "postedTimestamp": "2022-04-08T00:00:00.000Z",
37 "transactionTimestamp": "2022-04-08T00:00:00.000Z",
38 "description": "ATM cash deposit location #1234",
39 "debitCreditMemo": "CREDIT",
40 "status": "POSTED",
41 "amount": 101.8
42 }
43 }
44 ]
45}
Was this helpful?
Error responses
HTTP status codeFDX error codeExample messageExample debug message
401602Customer not authorizedAuthenticated customer does not have the authorization to perform this action
404701Account not foundAn account with the provided account ID could not be found
409705Account is closedOperation is not supported by the closed account
422704Account type not supportedThe account type does not support the selected action
500500Internal server errorProvider custom developer-level error details for troubleshooting
500501Subsystem unavailableA system required to process the request was not available. Request was not processed
503503Scheduled maintenanceSystem is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery

/accounts/{accountId}/payment-networks

Get payment networks supported by the account

Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the Plaid Auth API.

accounts/{accountId}/payment-networks

Request fields

accountId
stringstring
Account identifier, found in the GET /accounts endpoint response. Plaid expects the ID to be a different value from the account number
Note: If the status of the accountId provided is RESTRICTED, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.


Max length: 256
In: path
offset
stringstring
An opaque ID that indicates there is at least one more page of data available. This value does not need to be numeric or have any specific pattern. If provided, Plaid will use this value to send a new request and retrieve the next page. Omitting this value indicates that there is no more data to retrieve.
In: query
limit
integerinteger
The number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If your organization has a different limit, use the lower limit to determine how many items to send per page. To retrieve multiple pages, Plaid will use the opaque nextOffset field to send a subsequent request until the nextOffset is no longer included.
In: query
1curl -X GET 'https://api.your-org.com/fdx/v5/accounts/{accountId}/payment-networks?offset=50' \
2-H 'Content-Type: application/json' \
3-H 'Authorization: Bearer <access_token>'
200 OK
accounts/{accountId}/payment-networks

Response fields and example

page
objectobject
Contains the opaque identifier, nextOffset, to indicate a paginated result set.
nextOffset
stringstring
Opaque offset identifier
totalElements
integerinteger
Total number of elements
paymentNetworks
required[object]required, [object]
Array of payment networks. Not all deposit accounts support ACH transfers. For example, a prepaid debit card account doesn't support ACH

Min items: 1
bankId
requiredstringrequired, string
Bank identifier used by the payment network. Typically the 9-digit routing transit number (RTN) associated with the account number at a US institution, or the 3-digit Institution (FID) and 5-digit Transit numbers for Canadian institutions, including leading zeroes
identifier
requiredstringrequired, string
The number used to identify the account within the payment network.
type
requiredstringrequired, string
Suggested values for Payment Network Type. US_ refers to the USA, and CA_ refers to Canada. Possible values:
  • CA_ACSS: Automated Clearing House Settlement System
  • CA_LVTS: Large-Value Transfer System
  • US_ACH: Automated Clearing House, also called Fed ACH network (mostly small banks)
  • US_CHIPS: Clearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
  • US_FEDWIRE: Fedwire Funds Service
  • US_RTP: US Real Time Payments System


Possible values: US_ACH, US_FEDWIRE, US_CHIPS, US_RTP, CA_ACSS, CA_LVTS
transferIn
requiredbooleanrequired, boolean
Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network. Plaid recommends dynamically updating this value, for example to represent if the account is locked or not.
Note: Both transferIn and transferOut must be true in order for the account to support ACH
transferOut
requiredbooleanrequired, boolean
Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network. Plaid recommends dynamically updating this value, for example to represent if the account is locked or not.
Note: Both transferIn and transferOut must be true in order for the account to support ACH
1{
2 "page": {
3 "nextOffset": "B47D80MVP23T"
4 },
5 "paymentNetworks": [
6 {
7 "bankId": "010088889",
8 "identifier": "1111222233335820",
9 "type": "US_ACH",
10 "transferIn": true,
11 "transferOut": true
12 }
13 ]
14}
Was this helpful?
Error responses
HTTP status codeFDX error codeExample messageExample debug message
401602Customer not authorizedAuthenticated customer does not have the authorization to perform this action
404701Account not foundAn account with the provided account ID could not be found
409705Account is closedOperation is not supported by the closed account
500500Internal server errorProvider custom developer-level error details for troubleshooting
500501Subsystem unavailableA system required to process the request was not available. Request was not processed
503503Scheduled maintenanceSystem is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery

Data definitions

Accounts

Account objects contain full details of each account type. (Note: Account objects differ from account descriptors, which are lightweight objects that contain minimally necessary account details.) The Core Exchange API supports the following accounts types:

  • Deposit account
  • Investment account
  • Loan account
  • Line of credit account
Deposit account

Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts. Plaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, "currentBalance": 192.00.
The accountType field for deposit accounts may be set to any of the account types listed below.

accountId
requiredstringrequired, string
Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.

Max length: 256
accountNumberDisplay
stringstring
Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.
productName
requiredstringrequired, string
Marketed product name for this account. Used in UIs to assist in account selection
nickname
stringstring
Account nickname
status
requiredstringrequired, string
Account status

Possible values: CLOSED, DELINQUENT, NEGATIVECURRENTBALANCE, OPEN, PAID, PENDINGCLOSE, PENDINGOPEN, RESTRICTED
currency
requiredobjectrequired, object
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
accountType
requiredstringrequired, string
The account type. Plaid consumes basic balance account information from the accounts/{accountId} endpoint for a subset of the possible account types described in the FDX specification.

Possible values: CHECKING, SAVINGS, CD, COMMERCIALDEPOSIT, ESCROW, MONEYMARKET, OTHERDEPOSIT
currentBalance
requirednumberrequired, number
The total amount of money in the account (sum of all posted/cleared transactions, not including pending transactions). For Plaid's full definition, see the Transactions
availableBalance
requirednumberrequired, number
The money in the account available to spend (sum of all transactions, plus or minus pending transactions). For Plaid's full definition, see Transactions
1{
2 "accountId": "someLongTermUniqueIDString",
3 "accountNumberDisplay": "4321",
4 "productName": "Premier Account",
5 "status": "OPEN",
6 "currency": {
7 "currencyCode": "CAD"
8 },
9 "accountType": "SAVINGS",
10 "currentBalance": 1399.02,
11 "availableBalance": 1399.02
12}
Was this helpful?
Investment account

Full details of an investment account. Plaid consumes all InvestmentAccount FDX fields for all types of investment accounts. In the holdings array, Plaid consumes fields depending on their relevancy to the holding type. See the holdings array for more information. Plaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, "currentBalance": 192.00

accountId
requiredstringrequired, string
Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.

Max length: 256
accountNumberDisplay
stringstring
Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.
productName
requiredstringrequired, string
Marketed product name for this account. Used in UIs to assist in account selection
nickname
stringstring
Account nickname
status
requiredstringrequired, string
Account status

Possible values: CLOSED, DELINQUENT, NEGATIVECURRENTBALANCE, OPEN, PAID, PENDINGCLOSE, PENDINGOPEN, RESTRICTED
currency
requiredobjectrequired, object
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
accountType
requiredstringrequired, string
The account type. Plaid consumes basic balance account information from the accounts/{accountId} endpoint for a subset of the possible account types described in the FDX specification.

Possible values: 401A, 401K, 403B, 529, BROKERAGEPRODUCT, COMMERCIALINVESTMENT, COVERDELL, DIGITALASSET, DEFINEDBENEFIT, ESOP, GUARDIAN, INSTITUTIONALTRUST, IRA, KEOGH, NONQUALIFIEDPLAN, OTHERINVESTMENT, ROLLOVER, ROTH, SARSEP, TAXABLE, TDA, TRUST, TERM, UGMA, UTMA
availableCashBalance
requirednumberrequired, number
Cash balance across all sub-accounts. Plaid expects that this includes sweep funds
balanceAsOf
stringstring
Date and time of the balance
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339


Format: date-time
currentValue
requirednumberrequired, number
Total current value of all investments
holdings
[object][object]
Holdings in the investment account. Plaid maps the holding and the investmentAccount FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see Plaid investments
securityId
stringstring
If you return the securityId for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return securityId for a holding that uses security IDs (not recommended), Plaid uses the unitPrice as the closing price.
This field, along with securityIdType are required unless symbol is provided.
Note: If securityId is provided, securityIdType is required.
securityIdType
stringstring
Plaid consumes solely CUSIP, ISIN, and SEDOL.
This field, along with securityId are required unless symbol is provided.
Note: If securityIdType is provided, securityId is required.


Possible values: CUSIP, ISIN, SEDOL, SICC, VALOR, WKN
holdingName
stringstring
Holding name or security name
holdingType
stringstring
Plaid maps the holding type to the Plaid security type. Plaid expects you to return OTHER and set the holdingSubType to indicate cash-type holdings (CASH, MONEYMARKET).

Possible values: ANNUITY, BOND, CD, DIGITALASSET, MUTUALFUND, OPTION, OTHER, STOCK
holdingSubType
stringstring
The subtype of an investment holding. Plaid expects you to return OTHER and set the holdingSubType to indicate cash-type holdings (CASH, MONEYMARKET).

Possible values: CASH, MONEYMARKET
symbol
stringstring
Ticker / Market symbol This field is required unless both securityId and securityIdType are provided
purchasedPrice
numbernumber
Price of holding at the time of purchase. Plaid determines an approximate cost basis using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.
currentUnitPrice
numbernumber
Current unit price. Plaid uses this as the institutionprice. Plaid falls back to using this as the close price if you don't return securityId for holdings involving securities.
currentUnitPriceDate
stringstring
Current unit price as of date
ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC3339


Format: date
Max length: 10
units
numbernumber
Plaid requires this field for holdings and transactions involving securities. For security-based actions other than stock splits, quantity. Shares for stocks, mutual funds, and others. Face value for bonds. Contracts for options.
Note: This field is required if the transaction involves a security.
marketValue
requirednumberrequired, number
Market value at the time of data retrieved
faceValue
numbernumber
Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to marketValue.
cashAccount
requiredbooleanrequired, boolean
If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for isCashEquivalent in the fiAttributes array, then Plaid uses cashAccount in determining the iscashequivalent status.
currency
objectobject
Currency information if it is different from Account entity
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
fiAttributes
[object][object]
Array of financial institution-specific attributes. Plaid recommends including a value for iscashequivalent property in this array. Plaid accepts isCashEquivalent as the attribute name and a string value of true or false. If you return a value for isCashEquivalent, then return the same value for cashAccount as a boolean.
name
stringstring
Name of the financial institution-specific attribute
value
stringstring
Value of the financial institution-specific attribute
1{
2 "accountId": "someLongTermUniqueIDString",
3 "accountNumberDisplay": "4321",
4 "productName": "Premier Account",
5 "status": "OPEN",
6 "currency": {
7 "currencyCode": "CAD"
8 },
9 "accountType": "ROTH",
10 "availableCashBalance": 3209.54,
11 "balanceAsOf": "2021-07-15T14:46:41.375Z",
12 "currentValue": 34938.2
13}
Was this helpful?
Loan account

Full details of a loan account. The accountType field for loan accounts may be set to any of the account types listed below.
Plaid only consumes the MORTGAGE and STUDENTLOAN types for its Liabilities API. For other loan account types Plaid consumes account details and transactions. Plaid consumes all loan account information as returned in the GET /accounts endpoint, as well as the additional information listed below:
Required for all loan accounts:

  • principalBalance
  • interestRate
  • interestRateType

Optional fields for STUDENTLOAN accounts:
  • interestPaidYearToDate
  • lastPaymentAmount
  • lastPaymentDate
  • maturityDate
  • nextPaymentDate
  • originalPrincipal
  • originatingDate

Required for MORTGAGE accounts:
  • accountNumber

Optional fields for MORTGAGE accounts:
  • escrowBalance
  • interestPaidYearToDate
  • lastPaymentAmount
  • lastPaymentDate
  • loanTerm
  • maturityDate
  • nextPaymentAmount
  • nextPaymentDate
  • originalPrincipal
  • originatingDate

Plaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, "escrowBalance": 192.00

accountId
requiredstringrequired, string
Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.

Max length: 256
accountNumberDisplay
stringstring
Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.
productName
requiredstringrequired, string
Marketed product name for this account. Used in UIs to assist in account selection
nickname
stringstring
Account nickname
status
requiredstringrequired, string
Account status

Possible values: CLOSED, DELINQUENT, NEGATIVECURRENTBALANCE, OPEN, PAID, PENDINGCLOSE, PENDINGOPEN, RESTRICTED
currency
requiredobjectrequired, object
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
accountType
requiredstringrequired, string
The account type. Plaid consumes basic balance account information from the accounts/{accountId} endpoint for a subset of the possible account types described in the FDX specification.

Possible values: AUTOLOAN, COMMERCIALLOAN, HOMEEQUITYLOAN, INSTALLMENT, LOAN, MILITARYLOAN, MORTGAGE, PERSONALLOAN, SMBLOAN, STUDENTLOAN
accountNumber
stringstring
Full account number for the end user's handle for the account at the owning institution
Required for accountType 'MORTGAGE'
principalBalance
requirednumberrequired, number
Principal balance
escrowBalance
numbernumber
Escrow balance of loan
originalPrincipal
numbernumber
Original principal of loan
originatingDate
stringstring
Date loan originated
ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC3339


Format: date
Max length: 10
loanTerm
integerinteger
Term of loan in months
nextPaymentAmount
numbernumber
Amount of next payment
nextPaymentDate
stringstring
Due date of next payment
ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC3339


Format: date
Max length: 10
lastPaymentAmount
numbernumber
Amount of last payment
lastPaymentDate
stringstring
Last payment date
ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC3339


Format: date
Max length: 10
maturityDate
stringstring
Maturity date
ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC3339


Format: date
Max length: 10
interestPaidYearToDate
numbernumber
Interest paid year to date
interestRate
requirednumberrequired, number
The account's interest rate
interestRateType
requiredstringrequired, string
Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future

Possible values: FIXED, VARIABLE
1{
2 "accountId": "someLongTermUniqueIDString",
3 "accountNumberDisplay": "4321",
4 "productName": "Premier Account",
5 "status": "OPEN",
6 "currency": {
7 "currencyCode": "CAD"
8 },
9 "accountType": "HOMEEQUITYLOAN",
10 "accountNumber": "loanAccount0000001",
11 "principalBalance": 580303.95,
12 "escrowBalance": 3400.61,
13 "originalPrincipal": 650400,
14 "originatingDate": "2021-07-15",
15 "loanTerm": 360,
16 "nextPaymentAmount": 2483.12,
17 "nextPaymentDate": "2021-07-15",
18 "lastPaymentAmount": 2483.12,
19 "lastPaymentDate": "2021-07-15",
20 "maturityDate": "2021-07-15",
21 "interestRate": 0.075,
22 "interestRateType": "FIXED"
23}
Was this helpful?
Line of credit account

Full details of a line of credit account. The accountType field for line of credit accounts may be set to any of the account types listed below.
Plaid may consume all the parameters returned by the GET /accounts endpoint:

  • availableCredit
  • creditLine
  • currentBalance

Additionally, for the CREDITCARD accountType, Plaid consumes the previous information plus the following for its liabilities product:
  • advancesApr
  • lastPaymentAmount
  • lastPaymentDate
  • lastStmtBalance
  • lastStmtDate
  • minimumPaymentAmount
  • nextPaymentDate
  • purchasesApr
Plaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, "currentBalance": 192.00

accountId
requiredstringrequired, string
Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.

Max length: 256
accountNumberDisplay
stringstring
Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.
productName
requiredstringrequired, string
Marketed product name for this account. Used in UIs to assist in account selection
nickname
stringstring
Account nickname
status
requiredstringrequired, string
Account status

Possible values: CLOSED, DELINQUENT, NEGATIVECURRENTBALANCE, OPEN, PAID, PENDINGCLOSE, PENDINGOPEN, RESTRICTED
currency
requiredobjectrequired, object
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
accountType
requiredstringrequired, string
The account type. Plaid consumes basic balance account information from the accounts/{accountId} endpoint for a subset of the possible account types described in the FDX specification.

Possible values: LINEOFCREDIT, CHARGE, COMMERCIALLINEOFCREDIT, CREDITCARD, HOMELINEOFCREDIT
creditLine
numbernumber
Credit limit
availableCredit
numbernumber
Available credit. Required for all accountTypes except for CHARGE
nextPaymentAmount
numbernumber
Amount of next payment
nextPaymentDate
stringstring
Due date of next payment
ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC3339


Format: date
Max length: 10
principalBalance
numbernumber
Principal balance
currentBalance
requirednumberrequired, number
Current balance of line of credit
minimumPaymentAmount
numbernumber
Minimum payment amount
lastPaymentAmount
numbernumber
Amount of last payment
lastPaymentDate
stringstring
Last payment date
ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC3339


Format: date
Max length: 10
pastDueAmount
numbernumber
Amount owed that the account holder failed to pay on the due date
lastStmtBalance
numbernumber
Last statement balance
lastStmtDate
stringstring
Last statement date
ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC3339


Format: date
Max length: 10
purchasesApr
numbernumber
Annual percentage rate for purchases
advancesApr
numbernumber
Annual percentage rate for cash advances
1{
2 "accountId": "someLongTermUniqueIDString",
3 "accountNumberDisplay": "4321",
4 "productName": "Premier Account",
5 "status": "OPEN",
6 "currency": {
7 "currencyCode": "CAD"
8 },
9 "accountType": "CREDITCARD",
10 "nextPaymentDate": "2021-07-15",
11 "currentBalance": 1722.81,
12 "lastPaymentDate": "2021-07-15",
13 "lastStmtDate": "2021-07-15"
14}
Was this helpful?

Account descriptors

Annuity account descriptor

An annuity account. For example, a fixed or variable annuity account.
The accountType field for annuity accounts may be set to any of the following:

  • ANNUITY: A form of insurance or investment entitling the investor to a series of annual sums.
  • FIXEDANNUITY: A type of insurance contract that promises to pay the buyer a specific, guaranteed interest rate on their contributions to the account.
  • VARIABLEANNUITY: A type of insurance contract that promises to pay back the buyer based on the performance of an underlying portfolio of mutual funds selected by the buyer.

accountId
requiredstringrequired, string
Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.

Max length: 256
accountNumberDisplay
stringstring
Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.
productName
requiredstringrequired, string
Marketed product name for this account. Used in UIs to assist in account selection
nickname
stringstring
Account nickname
status
requiredstringrequired, string
Account status

Possible values: CLOSED, DELINQUENT, NEGATIVECURRENTBALANCE, OPEN, PAID, PENDINGCLOSE, PENDINGOPEN, RESTRICTED
currency
requiredobjectrequired, object
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
accountType
requiredstringrequired, string
The account type. Plaid consumes basic balance account information from the accounts/{accountId} endpoint for a subset of the possible account types described in the FDX specification.

Possible values: ANNUITY, FIXEDANNUITY, VARIABLEANNUITY
1{
2 "accountId": "someLongTermUniqueIDString",
3 "accountNumberDisplay": "4321",
4 "productName": "Premier Account",
5 "status": "OPEN",
6 "currency": {
7 "currencyCode": "CAD"
8 },
9 "accountType": "FIXEDANNUITY"
10}
Was this helpful?
Deposit account descriptor

A deposit account. For example, a checking, savings or money market account. Plaid consumes more detailed information for CHECKING and SAVINGS accounts.
The accountType field for deposit accounts may be set to any of the following:

  • CHECKING: A deposit account held at a financial institution that allows withdrawals and deposits.
  • SAVINGS: An interest-bearing deposit account held at a bank or other financial institution.
  • CD: A certificate of deposit (CD) is a product offered by banks and credit unions that provides an interest rate premium in exchange for the customer agreeing to leave a lump-sum deposit untouched for a predetermined period of time.
  • COMMERCIALDEPOSIT: A deposit account for commercial customers, for example a business trust account.
  • ESCROW: A contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transacting parties.
  • MONEYMARKET: A deposit account that pays interest based on current interest rates in the money markets.
  • OTHERDEPOSIT: Use when none of the listed enums apply.

accountId
requiredstringrequired, string
Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.

Max length: 256
accountNumberDisplay
stringstring
Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.
productName
requiredstringrequired, string
Marketed product name for this account. Used in UIs to assist in account selection
nickname
stringstring
Account nickname
status
requiredstringrequired, string
Account status

Possible values: CLOSED, DELINQUENT, NEGATIVECURRENTBALANCE, OPEN, PAID, PENDINGCLOSE, PENDINGOPEN, RESTRICTED
currency
requiredobjectrequired, object
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
accountType
requiredstringrequired, string
The account type. Plaid consumes basic balance account information from the accounts/{accountId} endpoint for a subset of the possible account types described in the FDX specification.

Possible values: CHECKING, SAVINGS, CD, COMMERCIALDEPOSIT, ESCROW, MONEYMARKET, OTHERDEPOSIT
1{
2 "accountId": "someLongTermUniqueIDString",
3 "accountNumberDisplay": "4321",
4 "productName": "Premier Account",
5 "status": "OPEN",
6 "currency": {
7 "currencyCode": "CAD"
8 },
9 "accountType": "SAVINGS"
10}
Was this helpful?
Insurance account descriptor

An insurance account. For example, whole life insurance or short-term disability.
The accountType field for insurance accounts may be set to any of the following:

  • LONGTERMDISABILITY: Insurance that replaces a portion of the policyholder's income due to a disability for an extended period of time, usually more than a year.
  • SHORTTERMDISABILITY: Insurance that replaces a portion of the policyholder's income due to a disability for a short period of time, usually less than a year.
  • UNIVERSALLIFE: A type of a cash value life insurance where the excess of premium payments above the current cost of insurance is credited to the cash value of the policy, which in turn is credited each month with interest.
  • WHOLELIFE: Life insurance which is guaranteed to remain in force for the insured's entire lifetime, provided required premiums are paid, or to the maturity date.

accountId
requiredstringrequired, string
Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.

Max length: 256
accountNumberDisplay
stringstring
Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.
productName
requiredstringrequired, string
Marketed product name for this account. Used in UIs to assist in account selection
nickname
stringstring
Account nickname
status
requiredstringrequired, string
Account status

Possible values: CLOSED, DELINQUENT, NEGATIVECURRENTBALANCE, OPEN, PAID, PENDINGCLOSE, PENDINGOPEN, RESTRICTED
currency
requiredobjectrequired, object
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
accountType
requiredstringrequired, string
The account type. Plaid consumes basic balance account information from the accounts/{accountId} endpoint for a subset of the possible account types described in the FDX specification.

Possible values: LONGTERMDISABILITY, SHORTTERMDISABILITY, UNIVERSALLIFE, WHOLELIFE
1{
2 "accountId": "someLongTermUniqueIDString",
3 "accountNumberDisplay": "4321",
4 "productName": "Premier Account",
5 "status": "OPEN",
6 "currency": {
7 "currencyCode": "CAD"
8 },
9 "accountType": "WHOLELIFE"
10}
Was this helpful?
Investment account descriptor

An investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts.
The accountType field for investment accounts may be set to any of the following:

  • 401A: An employer-sponsored money-purchase retirement plan that allows dollar or percentage-based contributions from the employer, the employee, or both.
  • 401K: An employer-sponsored defined-contribution pension account defined in subsection 401(k) of the Internal Revenue Code.
  • 403B: A U.S. tax-advantaged retirement savings plan available for public education organizations, some non-profit employers (only Internal Revenue Code 501(c)(3) organizations), cooperative hospital service organizations, and self-employed ministers in the United States.
  • 529: A tax-advantaged savings plan designed to help pay for education.
  • BROKERAGEPRODUCT: Investment management offered by a licensed brokerage firm that places trades on behalf of the customer, utilizing any number of investment options.
  • COMMERCIALINVESTMENT: Investment Account for Commercial Customers. e.g. Commercial Brokerage Account.
  • COVERDELL: A trust or custodial account set up in the United States solely for paying qualified education expenses for the designated beneficiary of the account.
  • DIGITALASSET: An account containing digital assets.
  • DEFINEDBENEFIT: An employer-sponsored retirement plan where employee benefits are computed using a formula that considers several factors, such as length of employment and salary history.
  • GUARDIAN: An account of a child in the parent's name, with legal title to the assets in the account, as well as all capital gains and tax liabilities produced from the account belonging to the parent.
  • INSTITUTIONALTRUST: An institutional trust account.
  • IRA: An individual retirement account (IRA) is a tax-advantaged account that individuals use to save and invest for retirement.
  • KEOGH: A tax-deferred pension plan available to self-employed individuals or unincorporated businesses for retirement purposes.
  • NONQUALIFIEDPLAN: A type of tax-deferred employer-sponsored retirement plan that falls outside of ERISA guidelines.
  • OTHERINVESTMENT: Use when none of the listed enums apply.
  • ROLLOVER: An account containing investments rolled over from an employee-sponsored account.
  • ROTH: An individual retirement account that offers tax-free growth and tax-free withdrawals in retirement.
  • SARSEP: A simplified employee pension (SEP) plan set up before 1997 that includes a salary reduction arrangement.
  • TAXABLE: A taxable investment account.
  • TDA: TreasuryDirect Account.
  • TRUST: A type of financial account that is opened by an individual and managed by a designated trustee for the benefit of a third party in accordance with agreed-upon terms.
  • TERM: Life insurance that provides coverage at a fixed rate of payments for a limited period of time.
  • UGMA: Uniform Gifts to Minors Act account.
  • UTMA: Uniform Transfers to Minors Act account.

accountId
requiredstringrequired, string
Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.

Max length: 256
accountNumberDisplay
stringstring
Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.
productName
requiredstringrequired, string
Marketed product name for this account. Used in UIs to assist in account selection
nickname
stringstring
Account nickname
status
requiredstringrequired, string
Account status

Possible values: CLOSED, DELINQUENT, NEGATIVECURRENTBALANCE, OPEN, PAID, PENDINGCLOSE, PENDINGOPEN, RESTRICTED
currency
requiredobjectrequired, object
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
accountType
requiredstringrequired, string
The account type. Plaid consumes basic balance account information from the accounts/{accountId} endpoint for a subset of the possible account types described in the FDX specification.

Possible values: 401A, 401K, 403B, 529, BROKERAGEPRODUCT, COMMERCIALINVESTMENT, COVERDELL, DIGITALASSET, DEFINEDBENEFIT, ESOP, GUARDIAN, INSTITUTIONALTRUST, IRA, KEOGH, NONQUALIFIEDPLAN, OTHERINVESTMENT, ROLLOVER, ROTH, SARSEP, TAXABLE, TDA, TRUST, TERM, UGMA, UTMA
1{
2 "accountId": "someLongTermUniqueIDString",
3 "accountNumberDisplay": "4321",
4 "productName": "Premier Account",
5 "status": "OPEN",
6 "currency": {
7 "currencyCode": "CAD"
8 },
9 "accountType": "ROTH"
10}
Was this helpful?
Loan account descriptor

A loan account. For example, mortgage, student loan or auto loan. Plaid consumes more detailed information for MORTGAGE and STUDENTLOAN accounts.
The accountType field for loan accounts may be set to any of the following:

  • AUTOLOAN: A type of loan used to finance a car purchase.
  • COMMERCIALLOAN: A preset borrowing limit that can be used at any time.
  • HOMEEQUITYLOAN: A type of loan in which the borrower uses the equity of his or her home as collateral.
  • INSTALLMENT: A type of agreement or contract involving a loan that is repaid over time with a set number of scheduled payments.
  • LOAN: The lending of money by one or more individuals, organizations, or other entities to other individuals, organizations etc.
  • MILITARYLOAN: A military loan.
  • MORTGAGE: A type of loan you can use to buy or refinance a home.
  • PERSONALLOAN: A type of debt that is not protected by a guarantor, or collateralized by a lien on specific assets of the borrower.
  • SMBLOAN: A small/medium business loan.
  • STUDENTLOAN: A type of loan designed to help students pay for post-secondary education and the associated fees, such as tuition, books and supplies, and living expenses.

accountId
requiredstringrequired, string
Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.

Max length: 256
accountNumberDisplay
stringstring
Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.
productName
requiredstringrequired, string
Marketed product name for this account. Used in UIs to assist in account selection
nickname
stringstring
Account nickname
status
requiredstringrequired, string
Account status

Possible values: CLOSED, DELINQUENT, NEGATIVECURRENTBALANCE, OPEN, PAID, PENDINGCLOSE, PENDINGOPEN, RESTRICTED
currency
requiredobjectrequired, object
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
accountType
requiredstringrequired, string
The account type. Plaid consumes basic balance account information from the accounts/{accountId} endpoint for a subset of the possible account types described in the FDX specification.

Possible values: AUTOLOAN, COMMERCIALLOAN, HOMEEQUITYLOAN, INSTALLMENT, LOAN, MILITARYLOAN, MORTGAGE, PERSONALLOAN, SMBLOAN, STUDENTLOAN
1{
2 "accountId": "someLongTermUniqueIDString",
3 "accountNumberDisplay": "4321",
4 "productName": "Premier Account",
5 "status": "OPEN",
6 "currency": {
7 "currencyCode": "CAD"
8 },
9 "accountType": "HOMEEQUITYLOAN"
10}
Was this helpful?
Line of credit account descriptor

A line-of-credit account. For example, a credit card or home equity line of credit. Plaid consumes more detailed information for CREDITCARD accounts.
The accountType field for line of credit accounts may be set to any of the following:

  • LINEOFCREDIT: A credit facility extended by a bank or other financial institution to a government, business or individual customer that enables the customer to draw on the facility when the customer needs funds.
  • CHARGE: An account to which goods and services may be charged on credit.
  • COMMERCIALLINEOFCREDIT: An account with a preset borrowing limit that can be used at any time.
  • CREDITCARD: Allows cardholders to borrow funds with which to pay for goods and services with merchants that accept cards for payment.
  • HOMELINEOFCREDIT: A loan in which the lender agrees to lend a maximum amount within an agreed period, where the collateral is the borrower's equity in their house.

accountId
requiredstringrequired, string
Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.

Max length: 256
accountNumberDisplay
stringstring
Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.
productName
requiredstringrequired, string
Marketed product name for this account. Used in UIs to assist in account selection
nickname
stringstring
Account nickname
status
requiredstringrequired, string
Account status

Possible values: CLOSED, DELINQUENT, NEGATIVECURRENTBALANCE, OPEN, PAID, PENDINGCLOSE, PENDINGOPEN, RESTRICTED
currency
requiredobjectrequired, object
ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339
currencyCode
requiredstringrequired, string
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
accountType
requiredstringrequired, string
The account type. Plaid consumes basic balance account information from the accounts/{accountId} endpoint for a subset of the possible account types described in the FDX specification.

Possible values: LINEOFCREDIT, CHARGE, COMMERCIALLINEOFCREDIT, CREDITCARD, HOMELINEOFCREDIT
1{
2 "accountId": "someLongTermUniqueIDString",
3 "accountNumberDisplay": "4321",
4 "productName": "Premier Account",
5 "status": "OPEN",
6 "currency": {
7 "currencyCode": "CAD"
8 },
9 "accountType": "CREDITCARD"
10}
Was this helpful?

Account statuses

See the table below for help in selecting the appropriate account status.

StatusDescription
CLOSEDAn account that is closed or no longer exists
DELINQUENTAn account with unpaid payments that are past due
NEGATIVECURRENTBALANCEAn account with a current negative balance
PAIDAn account that is paid in full
PENDINGCLOSEAn account that is in the process of being closed
PENDINGOPENAn account that is in the process of being opened
RESTRICTEDAn account with restricted access

Account types

Deposit account types

The accountType field for deposit accounts may be set to any of the following:

Account typeDescription
CHECKINGAn interest-bearing deposit account held at a bank or other financial institution
SAVINGSAn interest-bearing deposit account held at a bank or other financial institution
CDA certificate of deposit (CD) is a product offered by banks and credit unions that provides an interest rate premium in exchange for the customer agreeing to leave a lump-sum deposit untouched for a predetermined period of time
ESCROWA contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transacting parties
MONEYMARKETA deposit account that pays interest based on current interest rates in the money markets
OTHERDEPOSITUse when none of the listed enums apply
Investment account types

The accountType field for investment accounts may be set to any of the following:

Account typeDescription
401AAn employer-sponsored money-purchase retirement plan that allows dollar or percentage-based contributions from the employer, the employee, or both
401KAn employer-sponsored defined-contribution pension account defined in subsection 401(k) of the Internal Revenue Code
403BA U.S. tax-advantaged retirement savings plan available for public education organizations, some non-profit employers (only Internal Revenue Code 501(c)(3) organizations), cooperative hospital service organizations, and self-employed ministers in the United States
529A tax-advantaged savings plan designed to help pay for education
BROKERAGEPRODUCTInvestment management offered by a licensed brokerage firm that places trades on behalf of the customer, utilizing any number of investment options
COVERDELLA trust or custodial account set up in the United States solely for paying qualified education expenses for the designated beneficiary of the account
DIGITALASSETAn account containing digital assets
DEFINEDBENEFITAn employer-sponsored retirement plan where employee benefits are computed using a formula that considers several factors, such as length of employment and salary history
ESOPAn employee stock ownership plan (ESOP) is an employee benefit plan that gives workers ownership interest in the company
GUARDIANAn account of a child in the parent's name, with legal title to the assets in the account, as well as all capital gains and tax liabilities produced from the account belonging to the parent
INSTITUTIONALTRUSTAn institutional trust account
IRAAn individual retirement account (IRA) is a tax-advantaged account that individuals use to save and invest for retirement
KEOGHA tax-deferred pension plan available to self-employed individuals or unincorporated businesses for retirement purposes
NONQUALIFIEDPLANA type of tax-deferred employer-sponsored retirement plan that falls outside of ERISA guidelines
OTHERINVESTMENTUse when none of the listed enums apply
ROLLOVERAn account containing investments rolled over from an employee-sponsored account
ROTHAn individual retirement account that offers tax-free growth and tax-free withdrawals in retirement
SARSEPA simplified employee pension (SEP) plan set up before 1997 that includes a salary reduction arrangement
TAXABLEA taxable investment account
TDATreasuryDirect Account
TRUSTA type of financial account that is opened by an individual and managed by a designated trustee for the benefit of a third party in accordance with agreed-upon terms
TERMLife insurance that provides coverage at a fixed rate of payments for a limited period of time
UGMAUniform Gifts to Minors Act account
UTMAUniform Transfers to Minors Act account
Loan account types

The accountType field for loan accounts may be set to any of the following:

Account typeDescription
AUTOLOANA type of loan used to finance a car purchase
HOMEEQUITYLOANA type of loan in which the borrower uses the equity of his or her home as collateral
INSTALLMENTA type of agreement or contract involving a loan that is repaid over time with a set number of scheduled payments
LOANThe lending of money by one or more individuals, organizations, or other entities to other individuals, organizations etc.
MILITARYLOANA military loan
MORTGAGEA type of loan you can use to buy or refinance a home
PERSONALLOANA type of debt that is not protected by a guarantor, or collateralized by a lien on specific assets of the borrower
SMBLOANA small/medium business loan
STUDENTLOANA type of loan designed to help students pay for post-secondary education and the associated fees, such as tuition, books and supplies, and living expenses
Line of credit account types

The accountType field for line of credit accounts may be set to any of the following:

Account typeDescription
LINEOFCREDITA credit facility extended by a bank or other financial institution to a government, business or individual customer that enables the customer to draw on the facility when the customer needs funds
CHARGEAn account to which goods and services may be charged on credit
CREDITCARDAllows cardholders to borrow funds with which to pay for goods and services with merchants that accept cards for payment
HOMELINEOFCREDITA loan in which the lender agrees to lend a maximum amount within an agreed period, where the collateral is the borrower's equity in their house

Transaction objects

Deposit transaction

A transaction on a deposit account type

transactionId
requiredstringrequired, string
Long term persistent identity of the transaction (unique to account). Plaid expects that status: PENDING and status: POSTED transactions have different IDs

Max length: 256
referenceTransactionId
stringstring
For reverse postings, the identity of the transaction being reversed. For the correction transaction, the identity of the reversing post. For credit card posting transactions, the identity of the authorization transaction

Max length: 256
postedTimestamp
stringstring
The date and time that the transaction was posted to the account. This property is required by Plaid when status=POSTED. Plaid expects this property to be omitted when status=PENDING ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339

Format: date-time
transactionTimestamp
requiredstringrequired, string
The date and time that the transaction was added to the server backend systems ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339

Format: date-time
description
requiredstringrequired, string
Description of the transaction
debitCreditMemo
requiredstringrequired, string
The posting type of a transaction. Because the transaction amount is an absolute value, this parameter is required to indicate the transaction direction and sign (+/-):
  • DEBIT: Money is leaving the account. The transaction amount will be exposed with a positive sign (+)
  • CREDIT: Money is entering the account. The transaction amount will be exposed with a negative sign (-)
  • MEMO: The transaction is pending and will be completed at the end of the day. (Plaid handles MEMO transaction the same as DEBIT transactions.)


Possible values: CREDIT, DEBIT, MEMO
category
stringstring
Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable
subCategory
stringstring
Transaction category detail
status
requiredstringrequired, string
The status of a transaction. Plaid consumes solely the PENDING and POSTED enums, and treats MEMO and AUTHORIZATION as if they were PENDING. Plaid expects that pending and posted transactions have different transactionIds.
  • AUTHORIZATION
  • MEMO - A pending transaction to be completed at the end of this day
  • PENDING - A pending transaction
  • POSTED - A posted transaction


Possible values: AUTHORIZATION, MEMO, PENDING, POSTED
amount
requirednumberrequired, number
The amount of money in the account currency. The amount is an absolute value. Plaid relies on the DebitCreditMemo enum to determine the direction (and sign) of the transaction
foreignAmount
numbernumber
The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the foreignCurrency property is also set
foreignCurrency
stringstring
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
payee
stringstring
Payee name

Max length: 255
checkNumber
integerinteger
Check number. Plaid expects this solely if the transaction involves a check
1{
2 "transactionId": "someLongTermUniqueIDString",
3 "referenceTransactionId": "someLongTermUniqueIDString",
4 "postedTimestamp": "2021-07-15T14:46:41.375Z",
5 "transactionTimestamp": "2021-07-15T14:46:41.375Z",
6 "foreignCurrency": "CAD"
7}
Was this helpful?
Investment transaction

A transaction on an investment account. In addition to the required fields in the base Transaction model, Plaid requires the following fields for all transactions on an investment account:

  • fees
  • transactionType

If the transaction involves a security, Plaid additionally requires the following fields:
  • unitPrice
  • units
  • symbol OR both securityId and securityIdType

transactionId
requiredstringrequired, string
Long term persistent identity of the transaction (unique to account). Plaid expects that status: PENDING and status: POSTED transactions have different IDs

Max length: 256
referenceTransactionId
stringstring
For reverse postings, the identity of the transaction being reversed. For the correction transaction, the identity of the reversing post. For credit card posting transactions, the identity of the authorization transaction

Max length: 256
postedTimestamp
stringstring
The date and time that the transaction was posted to the account. This property is required by Plaid when status=POSTED. Plaid expects this property to be omitted when status=PENDING ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339

Format: date-time
transactionTimestamp
requiredstringrequired, string
The date and time that the transaction was added to the server backend systems ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339

Format: date-time
description
requiredstringrequired, string
Description of the transaction
debitCreditMemo
requiredstringrequired, string
The posting type of a transaction. Because the transaction amount is an absolute value, this parameter is required to indicate the transaction direction and sign (+/-):
  • DEBIT: Money is leaving the account. The transaction amount will be exposed with a positive sign (+)
  • CREDIT: Money is entering the account. The transaction amount will be exposed with a negative sign (-)
  • MEMO: The transaction is pending and will be completed at the end of the day. (Plaid handles MEMO transaction the same as DEBIT transactions.)


Possible values: CREDIT, DEBIT, MEMO
category
stringstring
Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable
subCategory
stringstring
Transaction category detail
status
requiredstringrequired, string
The status of a transaction. Plaid consumes solely the PENDING and POSTED enums, and treats MEMO and AUTHORIZATION as if they were PENDING. Plaid expects that pending and posted transactions have different transactionIds.
  • AUTHORIZATION
  • MEMO - A pending transaction to be completed at the end of this day
  • PENDING - A pending transaction
  • POSTED - A posted transaction


Possible values: AUTHORIZATION, MEMO, PENDING, POSTED
amount
requirednumberrequired, number
The amount of money in the account currency. The amount is an absolute value. Plaid relies on the DebitCreditMemo enum to determine the direction (and sign) of the transaction
foreignAmount
numbernumber
The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the foreignCurrency property is also set
foreignCurrency
stringstring
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
transactionType
requiredstringrequired, string
The type of an investment transaction. Plaid maps these enums to Plaid investment transaction types. Plaid doesn't map these enums to Plaid-specific transaction subtypes. Plaid maps these enums as follows:
  • ADJUSTMENT - fee
  • ATM - cash
  • CASH - cash
  • CHECK - cash
  • CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.
  • CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.
  • CONTRIBUTION - buy (if transaction involves a security) or cash
  • DEP - cash
  • DEPOSIT - cash
  • DIRECTDEBIT - cash
  • DIRECTDEP - cash
  • DIV - cash
  • DIVIDEND - cash
  • DIVIDENDREINVEST - buy
  • EXPENSE - cash
  • FEE - fee
  • INCOME - cash
  • INTEREST - cash
  • INVEXPENSE - cash
  • JRNLFUND - transfer
  • JRNLSEC - transfer
  • MARGININTEREST - cash
  • OPTIONEXERCISE - transfer
  • OPTIONEXPIRATION - transfer
  • OTHER - cash - (unclassified)
  • PAYMENT - cash
  • POS - cash
  • PURCHASED - buy
  • PURCHASEDTOCOVER - buy
  • PURCHASETOCLOSE - buy
  • PURCHASETOOPEN - buy
  • REINVESTOFINCOME - buy
  • REPEATPMT - cash
  • RETURNOFCAPITAL - cash
  • SOLD - sell
  • SOLDTOCLOSE - sell
  • SOLDTOOPEN - sell
  • SPLIT - transfer
  • SRVCHG - fee
  • TRANSFER - transfer
  • XFER - transfer


Possible values: ADJUSTMENT, ATM, CASH, CHECK, CLOSURE, CLOSUREOPT, CONTRIBUTION, DEP, DEPOSIT, DIRECTDEBIT, DIRECTDEP, DIV, DIVIDEND, DIVIDENDREINVEST, EXPENSE, FEE, INCOME, INTEREST, INVEXPENSE, JRNLFUND, JRNLSEC, MARGININTEREST, OPTIONEXERCISE, OPTIONEXPIRATION, OTHER, PAYMENT, POS, PURCHASED, PURCHASEDTOCOVER, PURCHASETOCLOSE, PURCHASETOOPEN, REINVESTOFINCOME, REPEATPMT, RETURNOFCAPITAL, SOLD, SOLDTOCLOSE, SOLDTOOPEN, SPLIT, SRVCHG, TRANSFER, XFER
securityId
stringstring
If you return the securityId for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return securityId for a holding that uses security IDs (not recommended), Plaid uses the unitPrice as the closing price.
This field, along with securityIdType are required unless symbol is provided.
Note: If securityId is provided, securityIdType is required.
securityIdType
stringstring
Plaid consumes solely CUSIP, ISIN, and SEDOL.
This field, along with securityId are required unless symbol is provided.
Note: If securityIdType is provided, securityId is required.


Possible values: CUSIP, ISIN, SEDOL, SICC, VALOR, WKN
securityType
stringstring
The type of a security

Possible values: BOND, DEBT, MUTUALFUND, DIGITALASSET, OPTION, OTHER, STOCK, SWEEP
symbol
stringstring
Ticker / Market symbol This field is required unless both securityId and securityIdType are provided
commission
numbernumber
Plaid expects that your organization includes a value for commission if the commission isn't included in fees
fees
requirednumberrequired, number
Fees applied to the trade. Plaid expects that the fees include the commission, unless your organization separately provides a value for commission
unitPrice
numbernumber
Unit price. Plaid uses this as the price. Plaid falls back to using this as the close price if you don't return securityId for transactions involving securities. Note: This field is required if the transaction involves a security
units
numbernumber
Plaid requires this field for holdings and transactions involving securities. For security-based actions other than stock splits, quantity. Shares for stocks, mutual funds, and others. Face value for bonds. Contracts for options.
Note: This field is required if the transaction involves a security.
unitType
stringstring
The units of an investment transaction

Possible values: CURRENCY, SHARES
fiAttributes
[object][object]
Array of financial institution-specific attributes. Plaid recommends including a value for iscashequivalent property in this array. Plaid accepts isCashEquivalent as the attribute name and a string value of true or false.
name
stringstring
Name of the financial institution-specific attribute
value
stringstring
Value of the financial institution-specific attribute
1{
2 "transactionId": "someLongTermUniqueIDString",
3 "referenceTransactionId": "someLongTermUniqueIDString",
4 "postedTimestamp": "2021-07-15T14:46:41.375Z",
5 "transactionTimestamp": "2021-07-15T14:46:41.375Z",
6 "foreignCurrency": "CAD"
7}
Was this helpful?
Loan transaction

A transaction on a loan account

transactionId
requiredstringrequired, string
Long term persistent identity of the transaction (unique to account). Plaid expects that status: PENDING and status: POSTED transactions have different IDs

Max length: 256
referenceTransactionId
stringstring
For reverse postings, the identity of the transaction being reversed. For the correction transaction, the identity of the reversing post. For credit card posting transactions, the identity of the authorization transaction

Max length: 256
postedTimestamp
stringstring
The date and time that the transaction was posted to the account. This property is required by Plaid when status=POSTED. Plaid expects this property to be omitted when status=PENDING ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339

Format: date-time
transactionTimestamp
requiredstringrequired, string
The date and time that the transaction was added to the server backend systems ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339

Format: date-time
description
requiredstringrequired, string
Description of the transaction
debitCreditMemo
requiredstringrequired, string
The posting type of a transaction. Because the transaction amount is an absolute value, this parameter is required to indicate the transaction direction and sign (+/-):
  • DEBIT: Money is leaving the account. The transaction amount will be exposed with a positive sign (+)
  • CREDIT: Money is entering the account. The transaction amount will be exposed with a negative sign (-)
  • MEMO: The transaction is pending and will be completed at the end of the day. (Plaid handles MEMO transaction the same as DEBIT transactions.)


Possible values: CREDIT, DEBIT, MEMO
category
stringstring
Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable
subCategory
stringstring
Transaction category detail
status
requiredstringrequired, string
The status of a transaction. Plaid consumes solely the PENDING and POSTED enums, and treats MEMO and AUTHORIZATION as if they were PENDING. Plaid expects that pending and posted transactions have different transactionIds.
  • AUTHORIZATION
  • MEMO - A pending transaction to be completed at the end of this day
  • PENDING - A pending transaction
  • POSTED - A posted transaction


Possible values: AUTHORIZATION, MEMO, PENDING, POSTED
amount
requirednumberrequired, number
The amount of money in the account currency. The amount is an absolute value. Plaid relies on the DebitCreditMemo enum to determine the direction (and sign) of the transaction
foreignAmount
numbernumber
The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the foreignCurrency property is also set
foreignCurrency
stringstring
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
transactionType
stringstring
The type of a loan transaction. Plaid passes through all loan transaction types
  • ADJUSTMENT: Adjustment or correction.
  • FEE: Fee charge. For example, a late payment fee.
  • INTEREST: Interest charge.
  • PAYMENT: Required payment that satisfies the minimum payment (e.g. principal + interest for mortgages).
  • LUMP_SUM_PAYMENT: A single payment of money, as opposed to a series of payments made over time.
  • SKIP_PAYMENT: Payment that satisfies deferral of a required payment.
  • DOUBLE_UP_PAYMENT: Additional payment beyond the required payment to reduce the principal.
  • PAYOFF: Payment that satisfies the terms of the mortgage loan and completely pays off the debt.


Possible values: ADJUSTMENT, FEE, INTEREST, PAYMENT, LUMP_SUM_PAYMENT, SKIP_PAYMENT, DOUBLE_UP_PAYMENT, PAYOFF
1{
2 "transactionId": "someLongTermUniqueIDString",
3 "referenceTransactionId": "someLongTermUniqueIDString",
4 "postedTimestamp": "2021-07-15T14:46:41.375Z",
5 "transactionTimestamp": "2021-07-15T14:46:41.375Z",
6 "foreignCurrency": "CAD"
7}
Was this helpful?
Line of credit transaction

A line-of-credit transaction

transactionId
requiredstringrequired, string
Long term persistent identity of the transaction (unique to account). Plaid expects that status: PENDING and status: POSTED transactions have different IDs

Max length: 256
referenceTransactionId
stringstring
For reverse postings, the identity of the transaction being reversed. For the correction transaction, the identity of the reversing post. For credit card posting transactions, the identity of the authorization transaction

Max length: 256
postedTimestamp
stringstring
The date and time that the transaction was posted to the account. This property is required by Plaid when status=POSTED. Plaid expects this property to be omitted when status=PENDING ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339

Format: date-time
transactionTimestamp
requiredstringrequired, string
The date and time that the transaction was added to the server backend systems ISO 8601 date-time in format YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm] according to IETF RFC3339

Format: date-time
description
requiredstringrequired, string
Description of the transaction
debitCreditMemo
requiredstringrequired, string
The posting type of a transaction. Because the transaction amount is an absolute value, this parameter is required to indicate the transaction direction and sign (+/-):
  • DEBIT: Money is leaving the account. The transaction amount will be exposed with a positive sign (+)
  • CREDIT: Money is entering the account. The transaction amount will be exposed with a negative sign (-)
  • MEMO: The transaction is pending and will be completed at the end of the day. (Plaid handles MEMO transaction the same as DEBIT transactions.)


Possible values: CREDIT, DEBIT, MEMO
category
stringstring
Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable
subCategory
stringstring
Transaction category detail
status
requiredstringrequired, string
The status of a transaction. Plaid consumes solely the PENDING and POSTED enums, and treats MEMO and AUTHORIZATION as if they were PENDING. Plaid expects that pending and posted transactions have different transactionIds.
  • AUTHORIZATION
  • MEMO - A pending transaction to be completed at the end of this day
  • PENDING - A pending transaction
  • POSTED - A posted transaction


Possible values: AUTHORIZATION, MEMO, PENDING, POSTED
amount
requirednumberrequired, number
The amount of money in the account currency. The amount is an absolute value. Plaid relies on the DebitCreditMemo enum to determine the direction (and sign) of the transaction
foreignAmount
numbernumber
The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the foreignCurrency property is also set
foreignCurrency
stringstring
ISO 4217 Currency codes

Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL
transactionType
stringstring
The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types

Possible values: ADJUSTMENT, CHECK, FEE, INTEREST, PAYMENT, WITHDRAWAL
checkNumber
integerinteger
Check number. Plaid expects this solely if the transaction involves a check
1{
2 "transactionId": "someLongTermUniqueIDString",
3 "referenceTransactionId": "someLongTermUniqueIDString",
4 "postedTimestamp": "2021-07-15T14:46:41.375Z",
5 "transactionTimestamp": "2021-07-15T14:46:41.375Z",
6 "foreignCurrency": "CAD"
7}
Was this helpful?

Transaction types

Investment transaction types

Plaid maps these enums to Plaid investment transaction types investment transaction types. but not to Plaid-specific transaction subtypes.

Transaction typeInvestment transaction type
ADJUSTMENTfee
ATMcash
CASHcash
CHECKcash
CLOSUREPlaid recommends against using this value, rather specifying the closure type with any of the following: SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION
CLOSUREOPTPlaid recommends against using this value, rather specifying the closure type with any of the following: SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION
CONTRIBUTIONbuy (if transaction involves a security) or cash
DEPcash
DEPOSITcash
DIRECTDEBITcash
DIRECTDEPcash
DIVcash
DIVIDENDcash
DIVIDENDREINVESTbuy
EXPENSEcash
FEEfee
INCOMEcash
INTERESTcash
INVEXPENSEcash
JRNLFUNDtransfer
JRNLSECtransfer
MARGININTERESTcash
OPTIONEXERCISEtransfer
OPTIONEXPIRATIONtransfer
OTHERcash (unclassified)
PAYMENTcash
POScash
PURCHASEDbuy
PURCHASEDTOCOVERbuy
PURCHASETOCLOSEbuy
PURCHASETOOPENbuy
REINVESTOFINCOMEbuy
REPEATPMTcash
RETURNOFCAPITALcash
SOLDsell
RETURNOFCAPITALcash
SOLDsell
SOLDTOCLOSEsell
SOLDTOOPENsell
SPLITtransfer
SRVCHGfee
TRANSFERtransfer
XFERtransfer
Loan transaction types
Account typeDescription
ADJUSTMENTAdjustment or correction
FEEFee charge. For example, a late payment fee
INTERESTInterest charge
PAYMENTRequired payment that satisfies the minimum payment (e.g. principal + interest for mortgages)
LUMP_SUM_PAYMENTA single payment of money, as opposed to a series of payments made over time
SKIP_PAYMENTPayment that satisfies deferral of a required payment
DOUBLE_UP_PAYMENTAdditional payment beyond the required payment to reduce the principal
PAYOFFPayment that satisfies the terms of the mortgage loan and completely pays off the debt