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/current | Get the ID of the customer within the authorization scope |
/accounts/{accountId}/contact | Get account contact information |
/accounts | Search and view customer accounts |
/accounts/{accountId} | Get account balances, liabilities, and other information |
/accounts/{accountId}/statements | Get account statements |
/accounts/{accountId}/statements/{statmentId} | Get account statement PDF |
/accounts/{accountId}/transactions | List all account transactions |
/accounts/{accountId}/payment-networks | Get 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 errordebugMessage
: 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.
Note:
- If you use OIDC authentication (recommended) you do not need to implement this endpoint as Plaid identifies the customer using the OIDC
id_token
response. - If you use OAuth2 authentication, Plaid uses this endpoint as an alternate method of customer identification.
200 OK
Response fields and example
customerId
256
1{2 "customerId": "someLongTermUniqueIDString"3}
Was this helpful?
Error responses
HTTP status code | FDX error code | Example message | Example debug message |
---|---|---|---|
404 | 601 | Customer not found | A customer with the provided customer ID could not be found |
500 | 500 | Internal server error | Provider custom developer-level error details for troubleshooting |
500 | 501 | Subsystem unavailable | A system required to process the request was not available. Request was not processed |
503 | 503 | Scheduled maintenance | System 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.
accountId
GET /accounts
endpoint response. Plaid expects the ID to be a different value from the account number. path
200 OK
Contact information for the account.
holders
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.1
relationship
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
1
addresses
1
line1
64
line2
64
line3
64
city
64
region
64
postalCode
16
country
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
1
type
HOME
, BUSINESS
, CELL
, FAX
country
3
number
15
\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 code | FDX error code | Example message | Example debug message |
---|---|---|---|
401 | 602 | Customer not authorized | Authenticated customer does not have the authorization to perform this action |
404 | 601 | Customer not found | A customer with the provided customer ID could not be found |
404 | 701 | Account not found | An account with the provided account ID could not be found |
409 | 705 | Account is closed | Operation is not supported by the closed account |
422 | 704 | Account type not supported | The account type does not support the selected action |
500 | 500 | Internal server error | Provider custom developer-level error details for troubleshooting |
500 | 501 | Subsystem unavailable | A system required to process the request was not available. Request was not processed |
503 | 503 | Scheduled maintenance | System 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
accountsoffset
nextOffset
in the response to indicate the last page. query
limit
nextOffset
field that your organization returned in the latest response, until your organization omits nextOffset
in the response to indicate the last page. query
200 OK
Response fields and example
page
nextoffset
, for paginated result sets. The nextOffset
ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the offset
parameter in a new request to get the next page in the response array.nextOffset
accounts
Note: Each object in the accounts array is expected to contain at least one account type.
1
1{2 "page": {3 "nextOffset": "25"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 code | FDX error code | Example message | Example debug message |
---|---|---|---|
404 | 601 | Customer not found | A customer with the provided customer ID could not be found |
500 | 500 | Internal server error | Provider custom developer-level error details for troubleshooting |
500 | 501 | Subsystem unavailable | A system required to process the request was not available. Request was not processed |
503 | 503 | Scheduled maintenance | System is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery |
/accounts/{accountId}
Get account balances and liabilities
Get account balances, liabilities, and other information. Plaid uses this endpoint to:
- Get account balances for deposit accounts. For example,
CHECKING
orSAVINGS
. For more information about how Plaid uses this information, see Plaid Balance API. - Get account liabilities for
STUDENTLOAN
,MORTGAGE
, andCREDITCARD
loan accounts. For more information about how Plaid uses this information, see Plaid Liabilities API. - Get balances and holdings for investment accounts. For more information about how Plaid uses this information, see Plaid Investments API.
See the response schema below for a full list of possible parameters for each account type.accounts/{accountId}
accountId
GET /accounts
endpoint response. Plaid expects the ID to be a different value from the account number. path
200 OK
A 200 response will return one of the following type of accounts:
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.
depositAccount
accountId
256
accountNumberDisplay
productName
nickname
status
CLOSED
, DELINQUENT
, NEGATIVECURRENTBALANCE
, OPEN
, PAID
, PENDINGCLOSE
, PENDINGOPEN
, RESTRICTED
currency
currencyCode
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
accounts/{accountId}
endpoint for a subset of the possible account types described in the FDX specification.CHECKING
, SAVINGS
, CD
, COMMERCIALDEPOSIT
, ESCROW
, MONEYMARKET
, OTHERDEPOSIT
currentBalance
availableBalance
1{2 "depositAccount": {3 "accountId": "someLongTermUniqueIDString",4 "accountNumberDisplay": "4321",5 "productName": "string",6 "nickname": "string",7 "status": "CLOSED",8 "currency": {9 "currencyCode": "AED"10 },11 "accountType": "CHECKING",12 "currentBalance": 0,13 "availableBalance": 014 }15}
Was this helpful?
Error responses
HTTP status code | FDX error code | Example message | Example debug message |
---|---|---|---|
401 | 602 | Customer not authorized | Authenticated customer does not have the authorization to perform this action |
404 | 701 | Account not found | An account with the provided account ID could not be found |
409 | 705 | Account is closed | Operation is not supported by the closed account |
422 | 704 | Account type not supported | The account type does not support the selected action |
500 | 500 | Internal server error | Provider custom developer-level error details for troubleshooting |
500 | 501 | Subsystem unavailable | A system required to process the request was not available. Request was not processed |
503 | 503 | Scheduled maintenance | System 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.
Example: GET /accounts/{accountId}/statements?startTime=value1&endTime=value2
accountId
GET /accounts
endpoint response. Plaid expects the ID to be a different value from the account number. path
startTime
postedTimestamp
.date
10
query
endTime
postedTimestamp
.date
10
query
offset
nextOffset
in the response to indicate the last page. query
limit
nextOffset
field that your organization returned in the latest response, until your organization omits nextOffset
in the response to indicate the last page. query
200 OK
Response fields and example
page
nextoffset
, for paginated result sets. The nextOffset
ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the offset
parameter in a new request to get the next page in the response array.nextOffset
statements
accountId
accountId
in Account entity256
statementId
256
statementDate
date
10
description
links
Note: Plaid only accepts one link object in this array.
href
uri-reference
action
GET
, POST
, PATCH
, DELETE
, PUT
rel
types
application/pdf
) content type.application/pdf
, image/gif
, image/jpeg
, image/tiff
, image/png
, application/json
status
1{2 "page": {3 "nextOffset": "2",4 "total": 35 },6 "statements": [7 {8 "accountId": "10001",9 "statementId": "20001",10 "links": [11 {12 "href": "/accounts/1111/statements?offSet=2&limit=10"13 }14 ]15 }16 ]17}
Was this helpful?
/accounts/{accountId}/statements/{statementId}
Get account statement
Get account statement PDF.
accounts/{accountId}/statements/{statementId}accountId
GET /accounts
endpoint response. Plaid expects the ID to be a different value from the account number. path
statementId
GET /accounts/{accountId}/statements
endpoint response. path
200 OK
A 200 response will return a PDF account statement.
/accounts/{accountId}/transactions
List all account transactions
List all account transactions. Plaid always queries this endpoint 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 for the following account types only:
- Loan
- Investment
- Deposit
- Line of credit (LOC)
accountId
GET /accounts
endpoint response. Plaid expects the ID to be a different value from the account number. path
startTime
postedTimestamp
.date
10
query
endTime
postedTimestamp
.date
10
query
offset
nextOffset
in the response to indicate the last page. query
limit
nextOffset
field that your organization returned in the latest response, until your organization omits nextOffset
in the response to indicate the last page. query
200 OK
Response fields and example
page
nextoffset
, for paginated result sets. The nextOffset
ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the offset
parameter in a new request to get the next page in the response array.nextOffset
transactions
transactionType
is dependent on the account type. Plaid consumes the following types of transactions: investment, deposit, loan, and line of creditPlaid expects your organization to return an empty array if this information isn't available.
1{2 "page": {3 "nextOffset": "2"4 },5 "transactions": [6 {7 "depositTransaction": {8 "checkNumber": 1234,9 "payee": "ACME llc",10 "transactionId": "depositTransaction000000001",11 "postedTimestamp": "2022-04-06T00:00:00.000Z",12 "transactionTimestamp": "2022-04-05T00:00:00.000Z",13 "description": "check for latest ACME invoice",14 "debitCreditMemo": "DEBIT",15 "status": "PENDING",16 "amount": 40017 }18 },19 {20 "depositTransaction": {21 "transactionId": "depositTransaction000000002",22 "postedTimestamp": "2022-04-07T00:00:00.000Z",23 "transactionTimestamp": "2022-04-07T00:00:00.000Z",24 "description": "reconciliation/adjustment of bank statement error",25 "debitCreditMemo": "DEBIT",26 "status": "POSTED",27 "amount": 0.828 }29 }30 ]31}
Was this helpful?
Error responses
HTTP status code | FDX error code | Example message | Example debug message |
---|---|---|---|
401 | 602 | Customer not authorized | Authenticated customer does not have the authorization to perform this action |
404 | 701 | Account not found | An account with the provided account ID could not be found |
409 | 705 | Account is closed | Operation is not supported by the closed account |
422 | 704 | Account type not supported | The account type does not support the selected action |
500 | 500 | Internal server error | Provider custom developer-level error details for troubleshooting |
500 | 501 | Subsystem unavailable | A system required to process the request was not available. Request was not processed |
503 | 503 | Scheduled maintenance | System 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-networksaccountId
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. path
offset
nextOffset
in the response to indicate the last page. query
limit
nextOffset
field that your organization returned in the latest response, until your organization omits nextOffset
in the response to indicate the last page. query
200 OK
Response fields and example
page
nextoffset
, for paginated result sets. The nextOffset
ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the offset
parameter in a new request to get the next page in the response array.nextOffset
paymentNetworks
bankId
identifier
type
US_
refers to the USA, and CA_
refers to Canada.
Value | Description |
---|---|
US_ACH | Automated Clearing House, also called Fed ACH network (mostly small banks) |
US_FEDWIRE | Fedwire Funds Service. |
US_CHIPS | Clearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks) |
CA_ACSS | Automated Clearing House Settlement System |
CA_LVTS | Large-Value Transfer System |
US_ACH
, US_FEDWIRE
, US_CHIPS
, US_RTP
, CA_ACSS
, CA_LVTS
transferIn
Note: Both
transferIn
and transferOut
must be true
in order for the account to support ACH.transferOut
Note: Both
transferIn
and transferOut
must be true
in order for the account to support ACH.1{2 "page": {3 "nextOffset": 254 },5 "paymentNetworks": [6 {7 "bankId": "010088889",8 "identifier": "1111222233335820",9 "type": "US_ACH",10 "transferIn": true,11 "transferOut": true12 }13 ]14}
Was this helpful?
Error responses
HTTP status code | FDX error code | Example message | Example debug message |
---|---|---|---|
401 | 602 | Customer not authorized | Authenticated customer does not have the authorization to perform this action |
404 | 701 | Account not found | An account with the provided account ID could not be found |
409 | 705 | Account is closed | Operation is not supported by the closed account |
500 | 500 | Internal server error | Provider custom developer-level error details for troubleshooting |
500 | 501 | Subsystem unavailable | A system required to process the request was not available. Request was not processed |
503 | 503 | Scheduled maintenance | System 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
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.
depositAccount
accountId
256
accountNumberDisplay
productName
nickname
status
CLOSED
, DELINQUENT
, NEGATIVECURRENTBALANCE
, OPEN
, PAID
, PENDINGCLOSE
, PENDINGOPEN
, RESTRICTED
currency
currencyCode
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
accounts/{accountId}
endpoint for a subset of the possible account types described in the FDX specification.CHECKING
, SAVINGS
, CD
, COMMERCIALDEPOSIT
, ESCROW
, MONEYMARKET
, OTHERDEPOSIT
currentBalance
availableBalance
1{2 "depositAccount": {3 "accountId": "someLongTermUniqueIDString",4 "accountNumberDisplay": "4321",5 "productName": "string",6 "nickname": "string",7 "status": "CLOSED",8 "currency": {9 "currencyCode": "AED"10 },11 "accountType": "CHECKING",12 "currentBalance": 0,13 "availableBalance": 014 }15}
Was this helpful?
Investment account
The type of 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 account types listed below.
investmentAccount
accountId
256
accountNumberDisplay
productName
nickname
status
CLOSED
, DELINQUENT
, NEGATIVECURRENTBALANCE
, OPEN
, PAID
, PENDINGCLOSE
, PENDINGOPEN
, RESTRICTED
currency
currencyCode
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
accounts/{accountId}
endpoint for a subset of the possible account types described in the FDX specification.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
balanceAsOf
ISO 8601 date-time in format
YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]
according to IETF RFC3339date-time
currentValue
holdings
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
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
securityId
are required unless symbol
is provided.
Note: If securityIdType
is provided, securityId
is required.CUSIP
, ISIN
, SEDOL
, SICC
, VALOR
, WKN
holdingName
holdingType
OTHER
and set the holdingSubType
to indicate cash-type holdings (CASH, MONEYMARKET).ANNUITY
, BOND
, CD
, DIGITALASSET
, MUTUALFUND
, OPTION
, OTHER
, STOCK
holdingSubType
CASH
, MONEYMARKET
symbol
securityId
and securityIdType
are provided.purchasedPrice
currentUnitPrice
institution_price
. Plaid falls back to using this as the close price if you don't return securityId
for holdings involving securities.currentUnitPriceDate
date
10
units
Note: This field is required if the transaction involves a security.
marketValue
faceValue
marketValue
.cashAccount
isCashEquivalent
in the fiAttributes
array, then Plaid uses cashAccount
in determining the is_cash_equivalent
status.currency
currencyCode
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
is_cash_equivalent
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.1{}
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
.loanAccount
accountId
256
accountNumberDisplay
productName
nickname
status
CLOSED
, DELINQUENT
, NEGATIVECURRENTBALANCE
, OPEN
, PAID
, PENDINGCLOSE
, PENDINGOPEN
, RESTRICTED
currency
currencyCode
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
accounts/{accountId}
endpoint for a subset of the possible account types described in the FDX specification.AUTOLOAN
, COMMERCIALLOAN
, HOMEEQUITYLOAN
, INSTALLMENT
, LOAN
, MILITARYLOAN
, MORTGAGE
, PERSONALLOAN
, SMBLOAN
, STUDENTLOAN
accountNumber
principalBalance
escrowBalance
originalPrincipal
originatingDate
date
10
loanTerm
nextPaymentAmount
nextPaymentDate
date
10
lastPaymentAmount
lastPaymentDate
date
10
maturityDate
date
10
interestPaidYearToDate
interestRate
interestRateType
FIXED
, VARIABLE
1{2 "loanAccount": {3 "accountId": "someLongTermUniqueIDString",4 "accountNumberDisplay": "4321",5 "productName": "string",6 "nickname": "string",7 "status": "CLOSED",8 "currency": {9 "currencyCode": "AED"10 },11 "accountType": "AUTOLOAN",12 "accountNumber": "string",13 "principalBalance": 0,14 "escrowBalance": 0,15 "originalPrincipal": 0,16 "originatingDate": "2021-07-15",17 "loanTerm": 0,18 "nextPaymentAmount": 0,19 "nextPaymentDate": "2021-07-15",20 "lastPaymentAmount": 0,21 "lastPaymentDate": "2021-07-15",22 "maturityDate": "2021-07-15",23 "interestPaidYearToDate": 0,24 "interestRate": 0,25 "interestRateType": "FIXED"26 }27}
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
"currentBalance": 192.00
.locAccount
accountId
256
accountNumberDisplay
productName
nickname
status
CLOSED
, DELINQUENT
, NEGATIVECURRENTBALANCE
, OPEN
, PAID
, PENDINGCLOSE
, PENDINGOPEN
, RESTRICTED
currency
currencyCode
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
accounts/{accountId}
endpoint for a subset of the possible account types described in the FDX specification.LINEOFCREDIT
, CHARGE
, COMMERCIALLINEOFCREDIT
, CREDITCARD
, HOMELINEOFCREDIT
creditLine
availableCredit
CHARGE
nextPaymentAmount
nextPaymentDate
date
10
principalBalance
currentBalance
minimumPaymentAmount
lastPaymentAmount
lastPaymentDate
date
10
pastDueAmount
lastStmtBalance
lastStmtDate
date
10
purchasesApr
advancesApr
1{2 "locAccount": {3 "accountId": "loc_01_creditcard",4 "accountNumberDisplay": "8200",5 "productName": "First Plaidypus Credit Card",6 "nickname": "my travel rewards card",7 "status": "OPEN",8 "currency": {9 "currencyCode": "USD"10 },11 "minimumPaymentAmount": 100,12 "lastPaymentAmount": 400,13 "lastPaymentDate": "2022-03-30",14 "pastDueAmount": 0,15 "lastStmtBalance": 400,16 "lastStmtDate": "2022-03-25",17 "purchasesApr": 10.25,18 "advancesApr": 15.75,19 "currentBalance": 375,20 "availableCredit": 625,21 "accountType": "CREDITCARD"22 }23}
Was this helpful?
Account descriptors
Deposit account descriptor
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.
depositAccount
accountId
256
accountNumberDisplay
productName
nickname
status
CLOSED
, DELINQUENT
, NEGATIVECURRENTBALANCE
, OPEN
, PAID
, PENDINGCLOSE
, PENDINGOPEN
, RESTRICTED
currency
currencyCode
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
accounts/{accountId}
endpoint for a subset of the possible account types described in the FDX specification.CHECKING
, SAVINGS
, CD
, COMMERCIALDEPOSIT
, ESCROW
, MONEYMARKET
, OTHERDEPOSIT
1{2 "depositAccount": {3 "accountId": "depositAccount0000001",4 "accountType": "CHECKING",5 "accountNumberDisplay": "5820",6 "productName": "Checking",7 "nickname": "Main Checking",8 "status": "OPEN",9 "currency": {10 "currencyCode": "USD"11 }12 }13}
Was this helpful?
Investment account descriptor
The type of 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 account types listed below.
investmentAccount
accountId
256
accountNumberDisplay
productName
nickname
status
CLOSED
, DELINQUENT
, NEGATIVECURRENTBALANCE
, OPEN
, PAID
, PENDINGCLOSE
, PENDINGOPEN
, RESTRICTED
currency
currencyCode
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
accounts/{accountId}
endpoint for a subset of the possible account types described in the FDX specification.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 "investmentAccount": {3 "accountId": "investmentAccount0000001",4 "accountType": "TAXABLE",5 "accountNumberDisplay": "1050",6 "productName": "Brokerage Account",7 "nickname": "First plaidypus Brokerage",8 "status": "OPEN",9 "currency": {10 "currencyCode": "USD"11 }12 }13}
Was this helpful?
Loan account descriptor
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
.loanAccount
accountId
256
accountNumberDisplay
productName
nickname
status
CLOSED
, DELINQUENT
, NEGATIVECURRENTBALANCE
, OPEN
, PAID
, PENDINGCLOSE
, PENDINGOPEN
, RESTRICTED
currency
currencyCode
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
accounts/{accountId}
endpoint for a subset of the possible account types described in the FDX specification.AUTOLOAN
, COMMERCIALLOAN
, HOMEEQUITYLOAN
, INSTALLMENT
, LOAN
, MILITARYLOAN
, MORTGAGE
, PERSONALLOAN
, SMBLOAN
, STUDENTLOAN
accountNumber
principalBalance
escrowBalance
originalPrincipal
originatingDate
date
10
loanTerm
nextPaymentAmount
nextPaymentDate
date
10
lastPaymentAmount
lastPaymentDate
date
10
maturityDate
date
10
interestPaidYearToDate
interestRate
interestRateType
FIXED
, VARIABLE
1{2 "loanAccount": {3 "accountId": "loanAccount0000001",4 "accountType": "LOAN",5 "accountNumberDisplay": "4704",6 "productName": "Loan",7 "nickname": "Primary Loan",8 "status": "OPEN",9 "currency": {10 "currencyCode": "USD"11 }12 }13}
Was this helpful?
Line of credit account descriptor
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
"currentBalance": 192.00
.locAccount
accountId
256
accountNumberDisplay
productName
nickname
status
CLOSED
, DELINQUENT
, NEGATIVECURRENTBALANCE
, OPEN
, PAID
, PENDINGCLOSE
, PENDINGOPEN
, RESTRICTED
currency
currencyCode
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
accounts/{accountId}
endpoint for a subset of the possible account types described in the FDX specification.LINEOFCREDIT
, CHARGE
, COMMERCIALLINEOFCREDIT
, CREDITCARD
, HOMELINEOFCREDIT
creditLine
availableCredit
CHARGE
nextPaymentAmount
nextPaymentDate
date
10
principalBalance
currentBalance
minimumPaymentAmount
lastPaymentAmount
lastPaymentDate
date
10
pastDueAmount
lastStmtBalance
lastStmtDate
date
10
purchasesApr
advancesApr
1{2 "locAccount": {3 "accountId": "loc_01_creditcard",4 "accountNumberDisplay": "8200",5 "productName": "First Plaidypus Credit Card",6 "nickname": "my travel rewards card",7 "status": "OPEN",8 "currency": {9 "currencyCode": "USD"10 },11 "accountType": "CREDITCARD"12 }13}
Was this helpful?
Account statuses
See the table below for help in selecting the appropriate account status.
Status | Description |
---|---|
CLOSED | An account that is closed or no longer exists |
DELINQUENT | An account with unpaid payments that are past due |
NEGATIVECURRENTBALANCE | An account with a current negative balance |
PAID | An account that is paid in full |
PENDINGCLOSE | An account that is in the process of being closed |
PENDINGOPEN | An account that is in the process of being opened |
RESTRICTED | An account with restricted access |
Account types
Deposit account types
The accountType
field for deposit accounts may be set to any of the following:
Account type | Description |
---|---|
CHECKING | An interest-bearing deposit account held at a bank or other financial institution |
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 |
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 |
Investment account types
The accountType
field for investment accounts may be set to any of the following:
Account type | Description |
---|---|
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 |
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 |
ESOP | An employee stock ownership plan (ESOP) is an employee benefit plan that gives workers ownership interest in the company |
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 |
Loan account types
The accountType
field for loan accounts may be set to any of the following:
Account type | Description |
---|---|
AUTOLOAN | A type of loan used to finance a car purchase |
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 |
Line of credit account types
The accountType
field for line of credit accounts may be set to any of the following:
Account type | Description |
---|---|
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 |
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 |
Transactions
Transaction objects
Deposit transaction
Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example 101.99
.
transactionId
status: PENDING
and status: POSTED
transactions have different IDs.256
referenceTransactionId
256
postedTimestamp
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 RFC3339date-time
transactionTimestamp
ISO 8601 date-time in format
YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]
according to IETF RFC3339date-time
description
debitCreditMemo
DEBIT
or CREDIT
for this enum. Plaid expects that your organization indicates the MEMO
(i.e., pending) status using the status
field in the transaction response rather than this field. If your organization sends MEMO
in this DebitCreditMemo
enum, Plaid handles this value the same as it handles DEBIT
. DEBIT
: An amount leaves the account CREDIT
: An amount enters the account MEMO
: A pending transaction to be completed at the end of this day.CREDIT
, DEBIT
, MEMO
category
subCategory
status
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 dayPENDING
- A pending transactionPOSTED
- A posted transaction
AUTHORIZATION
, MEMO
, PENDING
, POSTED
amount
DebitCreditMemo
enum to determine the direction (and sign) of the transaction.foreignAmount
foreignCurrency
property is also set.foreignCurrency
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
255
checkNumber
1{2 "transactionId": "depositTransaction000000001",3 "transactionTimestamp": "2022-04-05T00:00:00.000Z",4 "description": "check for latest ACME invoice",5 "debitCreditMemo": "DEBIT",6 "status": "PENDING",7 "amount": 400,8 "payee": "Acme LLC",9 "checkNumber": 5744810}
Was this helpful?
Investment transaction
Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example 101.99
.
transactionId
status: PENDING
and status: POSTED
transactions have different IDs.256
referenceTransactionId
256
postedTimestamp
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 RFC3339date-time
transactionTimestamp
ISO 8601 date-time in format
YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]
according to IETF RFC3339date-time
description
debitCreditMemo
DEBIT
or CREDIT
for this enum. Plaid expects that your organization indicates the MEMO
(i.e., pending) status using the status
field in the transaction response rather than this field. If your organization sends MEMO
in this DebitCreditMemo
enum, Plaid handles this value the same as it handles DEBIT
. DEBIT
: An amount leaves the account CREDIT
: An amount enters the account MEMO
: A pending transaction to be completed at the end of this day.CREDIT
, DEBIT
, MEMO
category
subCategory
status
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 dayPENDING
- A pending transactionPOSTED
- A posted transaction
AUTHORIZATION
, MEMO
, PENDING
, POSTED
amount
DebitCreditMemo
enum to determine the direction (and sign) of the transaction.foreignAmount
foreignCurrency
property is also set.foreignCurrency
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
- 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
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
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
securityId
are required unless symbol
is provided.
Note: If securityIdType
is provided, securityId
is required.CUSIP
, ISIN
, SEDOL
, SICC
, VALOR
, WKN
securityType
BOND
, DEBT
, DIGITALASSET
, MUTUALFUND
, OPTION
, OTHER
, STOCK
, SWEEP
symbol
This field is required unless both
securityId
and securityIdType
are provided.commission
fees
.fees
fees
include the commission, unless your organization separately provides a value for commission
.unitPrice
securityId
for transactions involving securities.Note: This field is required if the transaction involves a security.
units
Note: This field is required if the transaction involves a security.
unitType
CURRENCY
, SHARES
fiAttributes
is_cash_equivalent
property in this array. Plaid accepts isCashEquivalent
as the attribute name and a string value of true
or false
.1{2 "transactionId": "investmentTransaction000000001",3 "transactionTimestamp": "2022-04-05T00:00:00.000Z",4 "description": "latest ACME investment invoice",5 "debitCreditMemo": "DEBIT",6 "status": "PENDING",7 "amount": 400,8 "securityId": "APW881",9 "securityIdType": "CMC",10 "securityType": "DEBT",11 "symbol": "MSFT",12 "commission": 0.1,13 "unitPrice": 15.3,14 "units": 1000,15 "unitType": "SHARES",16 "fiAttributes": [17 {18 "name": "Vanguard",19 "value": 8020 }21 ]22}
Was this helpful?
Loan transaction
Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example 101.99
.
transactionId
status: PENDING
and status: POSTED
transactions have different IDs.256
referenceTransactionId
256
postedTimestamp
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 RFC3339date-time
transactionTimestamp
ISO 8601 date-time in format
YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]
according to IETF RFC3339date-time
description
debitCreditMemo
DEBIT
or CREDIT
for this enum. Plaid expects that your organization indicates the MEMO
(i.e., pending) status using the status
field in the transaction response rather than this field. If your organization sends MEMO
in this DebitCreditMemo
enum, Plaid handles this value the same as it handles DEBIT
. DEBIT
: An amount leaves the account CREDIT
: An amount enters the account MEMO
: A pending transaction to be completed at the end of this day.CREDIT
, DEBIT
, MEMO
category
subCategory
status
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 dayPENDING
- A pending transactionPOSTED
- A posted transaction
AUTHORIZATION
, MEMO
, PENDING
, POSTED
amount
DebitCreditMemo
enum to determine the direction (and sign) of the transaction.foreignAmount
foreignCurrency
property is also set.foreignCurrency
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
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.
ADJUSTMENT
, FEE
, INTEREST
, PAYMENT
, LUMP_SUM_PAYMENT
, SKIP_PAYMENT
, DOUBLE_UP_PAYMENT
, PAYOFF
1{2 "transactionId": "loanTransaction000000001",3 "transactionTimestamp": "2022-04-05T00:00:00.000Z",4 "description": "latest ACME invoice",5 "debitCreditMemo": "CREDIT",6 "status": "PENDING",7 "amount": 4008}
Was this helpful?
Line of credit transaction
Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example 101.99
.
transactionId
status: PENDING
and status: POSTED
transactions have different IDs.256
referenceTransactionId
256
postedTimestamp
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 RFC3339date-time
transactionTimestamp
ISO 8601 date-time in format
YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]
according to IETF RFC3339date-time
description
debitCreditMemo
DEBIT
or CREDIT
for this enum. Plaid expects that your organization indicates the MEMO
(i.e., pending) status using the status
field in the transaction response rather than this field. If your organization sends MEMO
in this DebitCreditMemo
enum, Plaid handles this value the same as it handles DEBIT
. DEBIT
: An amount leaves the account CREDIT
: An amount enters the account MEMO
: A pending transaction to be completed at the end of this day.CREDIT
, DEBIT
, MEMO
category
subCategory
status
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 dayPENDING
- A pending transactionPOSTED
- A posted transaction
AUTHORIZATION
, MEMO
, PENDING
, POSTED
amount
DebitCreditMemo
enum to determine the direction (and sign) of the transaction.foreignAmount
foreignCurrency
property is also set.foreignCurrency
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
ADJUSTMENT
, CHECK
, FEE
, INTEREST
, PAYMENT
, WITHDRAWAL
checkNumber
1{2 "transactionId": "locTransaction000000001",3 "transactionTimestamp": "2022-04-05T00:00:00.000Z",4 "description": "credit for latest ACME invoice",5 "debitCreditMemo": "DEBIT",6 "status": "PENDING",7 "amount": 4008}
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 type | Investment transaction type |
---|---|
ADJUSTMENT | fee |
ATM | cash |
CASH | cash |
CHECK | cash |
CLOSURE | Plaid recommends against using this value, rather specifying the closure type with any of the following: SOLDTOCLOSE , PURCHASETOCLOSE , OPTIONEXERCISE or OPTIONEXPIRATION |
CLOSUREOPT | Plaid recommends against using this value, rather specifying the closure type with any of the following: SOLDTOCLOSE , PURCHASETOCLOSE , OPTIONEXERCISE or OPTIONEXPIRATION |
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 |
RETURNOFCAPITAL | cash |
SOLD | sell |
SOLDTOCLOSE | sell |
SOLDTOOPEN | sell |
SPLIT | transfer |
SRVCHG | fee |
TRANSFER | transfer |
XFER | transfer |
Loan transaction types
Account type | Description |
---|---|
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 |