Plaid logo
Core Exchange
ALL DOCS

Reference

  • API reference
  • Changelog
Core Exchange
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about Core Exchange. Try asking questions like:
    Note: Bill isn't perfect. He's just a robot platypus that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Bill any PII -- he's scared of intimacy. All chats with Bill are subject to Plaid's Privacy Policy.
    Plaid.comGet Started
    Open nav

    Core Exchange v6.0 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
    /accountsSearch and view customer accounts
    /accounts/{accountId}Get account balances, liabilities, and other information
    /accounts/{accountId}/asset-transfer-networksGet asset transfer networks supported by an account
    /accounts/{accountId}/contactGet account contact information
    /accounts/{accountId}/payment-networksGet payment networks supported by an account
    /accounts/{accountId}/statementsGet account statements
    /accounts/{accountId}/statements/{statementId}Get account statement PDF
    /accounts/{accountId}/transactionsList all account transactions

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

    {
      "code": 705,
      "message": "Account is closed",
      "debugMessage": "Operation is not supported by the closed account"
    }

    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 or method takes an empty request body.
    curl -X GET 'https://api.your-org.com/fdx/v5/customers/current' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <access_token>'
    200 OK
    /customers/current

    Response fields

    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
    Response Object
    {
      "customerId": "someLongTermUniqueIDString"
    }
    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

    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.

    Parameter type: 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.

    Parameter type: query
    curl -X GET 'https://api.your-org.com/fdx/v5/accounts?offset=15&limit=50' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <access_token>'
    200 OK
    /accounts

    Response fields

    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, commercialAccount, depositAccount, investmentAccount, locAccount, loanAccount, and insuranceAccount.

    Min items: 1
    Response Object
    {
      "page": {
        "nextOffset": "B47D80MVP23T"
      },
      "accounts": [
        {
          "accountCategory": "DEPOSIT_ACCOUNT",
          "accountId": "depositAccount0000001",
          "accountType": "CHECKING",
          "accountNumberDisplay": "5820",
          "productName": "Checking",
          "nickname": "Main Checking",
          "status": "OPEN",
          "currency": {
            "currencyCode": "USD"
          }
        },
        {
          "accountCategory": "LOAN_ACCOUNT",
          "accountId": "loanAccount0000001",
          "accountType": "LOAN",
          "accountNumberDisplay": "4704",
          "productName": "Loan",
          "nickname": "Primary Loan",
          "status": "OPEN",
          "currency": {
            "currencyCode": "USD"
          }
        },
        {
          "accountCategory": "LOC_ACCOUNT",
          "accountId": "locAccount0000001",
          "accountType": "LINEOFCREDIT",
          "accountNumberDisplay": "8200",
          "productName": "Line of Credit",
          "nickname": "First plaidypus LOC",
          "status": "OPEN",
          "currency": {
            "currencyCode": "USD"
          }
        },
        {
          "accountCategory": "INVESTMENT_ACCOUNT",
          "accountId": "investmentAccount0000001",
          "accountType": "TAXABLE",
          "accountNumberDisplay": "1050",
          "productName": "Brokerage Account",
          "nickname": "First plaidypus Brokerage",
          "status": "OPEN",
          "currency": {
            "currencyCode": "USD"
          }
        }
      ]
    }
    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 calls this endpoint for deposit, investment, loan, and line of credit accounts. 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.

    See Plaid Balance API, Plaid Liabilities API, and Plaid Investments API for more information on how Plaid uses this information.

    Info: Plaid does not call /accounts/{accountId} for annuity accounts, commercial accounts, or insurance accounts. These account categories are discoverable-only. The accounts appear in GET /accounts, but Plaid does not consume downstream data (balances, transactions, Auth) for these categories.

    /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
    Parameter type: path
    curl -X GET 'https://api.your-org.com/fdx/v5/accounts/{accountId}' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <access_token>'
    200 OK

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

    • Deposit account
    • Investment account
    • Line of credit account
    • Loan account
    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}/asset-transfer-networks

    Get asset transfer details for this account

    Get asset transfer networks supported by an account. For example, Automated Customer Account Transfer Service (ACATS). For more information about how Plaid uses this information, see the Plaid Investments Move API.

    /accounts/{accountId}/asset-transfer-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
    Parameter type: 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.

    Parameter type: 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.

    Parameter type: query
    curl -X GET 'https://api.your-org.com/fdx/v5/accounts/{accountId}/asset-transfer-networks?limit=25' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <access_token>'
    200 OK
    /accounts/{accountId}/asset-transfer-networks

    Response fields

    assetTransferNetworks
    required[object]required, [object]

    A paginated array of asset transfer networks for the account

    identifier
    requiredstringrequired, string

    The number used to identify the account within the asset transfer network. If identifierType is ACCOUNT_NUMBER, this is the account number; if identifierType is TOKENIZED_ACCOUNT_NUMBER, this is a tokenized account number

    identifierType
    stringstring

    The type of identifier used to identify the account in the payment network

    Possible values: ACCOUNT_NUMBER, TOKENIZED_ACCOUNT_NUMBER
    institutionName
    stringstring

    The name of the institution holding the account

    institutionId
    requiredstringrequired, string

    Institution identifier used by the asset transfer network, e.g., the Depository Trust and Clearing Corporation code for the institution holding the account

    type
    requiredstringrequired, string

    The type of asset transfer

    Possible values: CA_ATON, US_ACATS, US_DTC
    jointAccount
    booleanboolean

    Whether this account has joint owners

    Response Object
    {
      "assetTransferNetworks": [
        {
          "identifier": "23348817826",
          "identifierType": "ACCOUNT_NUMBER",
          "institutionName": "First Plaidypus Bank",
          "institutionId": "FPB",
          "type": "US_ACATS",
          "jointAccount": true
        }
      ]
    }
    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
    =*=*=*=

    /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
    Parameter type: path
    curl -X GET 'https://api.your-org.com/fdx/v5/accounts/{accountId}/contact' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <access_token>'
    200 OK

    Details used to verify an account

    Properties

    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, PRIMARY_BORROWER, PRIMARY_JOINT, PRIMARY_JOINT_TENANTS, SECONDARY, SECONDARY_BORROWER, SECONDARY_JOINT, SECONDARY_JOINT_TENANTS, 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, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, 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, ME, MF, 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, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, 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, such as '+1' for United States and Canada, see List_of_country_calling_codes

    Max length: 3
    number
    requiredstringrequired, string

    Telephone subscriber number defined by ITU-T recommendation E.164

    Max length: 15
    Pattern: \d+
    API Object
    {
      "holders": [
        {
          "relationship": "SECONDARY",
          "name": {
            "first": "Ernest",
            "middle": "Miller",
            "last": "Hemingway",
            "suffix": "IV"
          }
        },
        {
          "relationship": "PRIMARY_JOINT",
          "name": {
            "first": "Maya",
            "last": "Angelou",
            "middle": "Annie"
          }
        }
      ],
      "emails": [
        "ernest.m.hemingway@domain.tld",
        "m.angelou@domain.tld"
      ],
      "addresses": [
        {
          "line1": "1850 N Clark St",
          "line2": "Apartment 103",
          "city": "Chicago",
          "region": "IL",
          "postalCode": "60614",
          "country": "US"
        },
        {
          "line1": "2014 N Main St",
          "city": "San Francisco",
          "region": "CA",
          "postalCode": "94105",
          "country": "US"
        }
      ],
      "telephones": [
        {
          "type": "HOME",
          "country": "1",
          "number": "3127771926"
        },
        {
          "type": "CELL",
          "country": "53",
          "number": "45915607"
        },
        {
          "type": "HOME",
          "country": "1",
          "number": "4157771926"
        }
      ]
    }
    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}/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
    Parameter type: 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.

    Parameter type: 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.

    Parameter type: query
    curl -X GET 'https://api.your-org.com/fdx/v5/accounts/{accountId}/payment-networks?offset=50' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <access_token>'
    200 OK
    /accounts/{accountId}/payment-networks

    Response fields

    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_FEDNOW: Federal Reserve Instant Payment System

    NOTE: US_FEDWIRE and US_RTP are not supported payment network types.

    Possible values: CA_ACSS, CA_LVTS, US_ACH, US_CHIPS, US_FEDNOW, US_FEDWIRE, US_RTP
    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

    Response Object
    {
      "page": {
        "nextOffset": "B47D80MVP23T"
      },
      "paymentNetworks": [
        {
          "bankId": "010088889",
          "identifier": "1111222233335820",
          "type": "US_ACH",
          "transferIn": true,
          "transferOut": true
        }
      ]
    }
    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
    =*=*=*=

    /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
    Parameter type: 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.

    Parameter type: 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.

    Parameter type: query
    startTime
    stringstring

    Start time for use in retrieval of elements (ISO 8601). When used with the /transactions endpoint, Plaid filters by the postedTimestamp.

    Format: date
    Max length: 10
    Parameter type: query
    endTime
    stringstring

    End time for use in retrieval of elements (ISO 8601). When used with the /transactions endpoint, Plaid filters by the postedTimestamp.

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

    Response fields

    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
    Response Object
    {
      "page": {
        "nextOffset": "B47D80MVP23T",
        "total": 3
      },
      "statements": [
        {
          "accountId": "10001",
          "statementId": "20001",
          "statementDate": "2024-01-15",
          "description": "January 2024 Monthly Statement",
          "links": [
            {
              "href": "/accounts/10001/statements/20001",
              "rel": "self",
              "action": "GET",
              "types": [
                "application/pdf"
              ]
            },
            {
              "href": "/accounts/10001/statements/20001/download",
              "rel": "download",
              "action": "GET",
              "types": [
                "application/pdf"
              ]
            }
          ],
          "status": "AVAILABLE"
        },
        {
          "accountId": "10001",
          "statementId": "20002",
          "statementDate": "2024-02-15",
          "description": "February 2024 Monthly Statement",
          "links": [
            {
              "href": "/accounts/10001/statements/20002",
              "rel": "self",
              "action": "GET",
              "types": [
                "application/pdf"
              ]
            }
          ],
          "status": "PROCESSING"
        }
      ]
    }
    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
    Parameter type: path
    statementId
    stringstring

    Statement identifier, found in the GET /accounts/{accountId}/statements endpoint response

    Max length: 256
    Parameter type: path
    curl -X GET 'https://api.your-org.com/fdx/v5/accounts/{accountId}/statements/{statementId}' \
    -H 'Content-Type: application/json' \
    -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
    Parameter type: 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.

    Parameter type: 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.

    Parameter type: query
    startTime
    stringstring

    Start time for use in retrieval of elements (ISO 8601). When used with the /transactions endpoint, Plaid filters by the postedTimestamp.

    Format: date
    Max length: 10
    Parameter type: query
    endTime
    stringstring

    End time for use in retrieval of elements (ISO 8601). When used with the /transactions endpoint, Plaid filters by the postedTimestamp.

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

    Response fields

    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

    Response Object
    {
      "page": {
        "nextOffset": "B47D80MVP23T"
      },
      "transactions": [
        {
          "accountCategory": "DEPOSIT_ACCOUNT",
          "checkNumber": 1234,
          "payee": "ACME LLC",
          "transactionId": "depositTransaction000000001",
          "postedTimestamp": "2022-04-06T00:00:00.000Z",
          "transactionTimestamp": "2022-04-05T00:00:00.000Z",
          "description": "check for latest ACME invoice",
          "debitCreditMemo": "DEBIT",
          "status": "PENDING",
          "amount": 400
        },
        {
          "accountCategory": "DEPOSIT_ACCOUNT",
          "transactionId": "depositTransaction000000002",
          "postedTimestamp": "2022-04-07T00:00:00.000Z",
          "transactionTimestamp": "2022-04-07T00:00:00.000Z",
          "description": "reconciliation/adjustment of bank statement error",
          "debitCreditMemo": "DEBIT",
          "status": "POSTED",
          "amount": 0.8
        },
        {
          "accountCategory": "DEPOSIT_ACCOUNT",
          "transactionId": "depositTransaction000000003",
          "postedTimestamp": "2022-04-08T00:00:00.000Z",
          "transactionTimestamp": "2022-04-08T00:00:00.000Z",
          "description": "ATM cash deposit location #1234",
          "debitCreditMemo": "CREDIT",
          "status": "POSTED",
          "amount": 101.8
        }
      ]
    }
    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

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

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: DEPOSIT_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

    A currency object containing an ISO 4217 currency code.

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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, 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

    API Object
    {
      "accountCategory": "DEPOSIT_ACCOUNT",
      "accountId": "someLongTermUniqueIDString",
      "accountNumberDisplay": "4321",
      "productName": "Premier Account",
      "status": "OPEN",
      "currency": {
        "currencyCode": "CAD"
      },
      "accountType": "SAVINGS",
      "currentBalance": 1832.11,
      "availableBalance": 1832.11
    }
    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

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: INVESTMENT_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

    A currency object containing an ISO 4217 currency code.

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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, COVERDELL, DIGITALASSET, DEFINEDBENEFIT, DEFERREDPROFITSHARINGPLAN, ESOP, GUARDIAN, INDIVIDUALPENSIONPLAN, INSTITUTIONALTRUST, INVESTMENTACCOUNT, IRA, KEOGH, LIFEINCOMEFUND, LOCKEDINRETIREMENTACCOUNT, LOCKEDINRETIREMENTINCOMEFUND, LOCKEDINRETIREMENTSAVINGSPLAN, NONQUALIFEDPLAN, NONQUALIFIEDPLAN, OTHERINVESTMENT, PRESCRIBEDREGISTEREDRETIREMENTINCOMEFUND, REGISTEREDPENSIONPLAN, REGISTEREDDISABILITYSAVINGSPLAN, REGISTEREDEDUCATIONSAVINGSPLAN, REGISTEREDRETIREMENTINCOMEFUND, REGISTEREDRETIREMENTSAVINGSPLAN, RESTRICTEDLIFEINCOMEFUND, RESTRICTEDLOCKEDINSAVINGSPLAN, ROLLOVER, ROTH, SARSEP, SPECIFIEDPENSIONPLAN, TAXABLE, TAXFREESAVINGSACCOUNT, TDA, TRUST, TERM, UGMA, UTMA, VARIABLEANNUITY
    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 RFC 3339

    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

    securityIds
    [object][object]

    Array of security identifiers

    id
    stringstring

    Value for a unique identifier

    Max length: 256
    idType
    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: CINS, CMC, CME, CUSIP, ISIN, ITSA, NASDAQ, 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 institution_price. 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 RFC 3339

    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 is_cash_equivalent status.

    currency
    objectobject

    Currency information if it is different from Account entity

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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 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.

    name
    stringstring

    Name of the financial institution-specific attribute

    value
    stringstring

    Value of the financial institution-specific attribute

    API Object
    {
      "accountCategory": "INVESTMENT_ACCOUNT",
      "accountId": "someLongTermUniqueIDString",
      "accountNumberDisplay": "4321",
      "productName": "Premier Account",
      "status": "OPEN",
      "currency": {
        "currencyCode": "CAD"
      },
      "accountType": "ROTH",
      "availableCashBalance": 8302.18,
      "balanceAsOf": "2021-07-15T14:46:41.375Z",
      "currentValue": 3702.19,
      "holdings": [
        {
          "securityIds": [
            {
              "id": "123456789",
              "idType": "CUSIP"
            }
          ],
          "holdingName": "Apple Inc.",
          "holdingType": "STOCK",
          "holdingSubType": "CASH",
          "symbol": "AAPL",
          "purchasedPrice": 150,
          "currentUnitPrice": 175,
          "currentUnitPriceDate": "2023-10-01",
          "units": 1,
          "marketValue": 1750,
          "cashAccount": true,
          "currency": {
            "currencyCode": "USD"
          },
          "fiAttributes": [
            {
              "name": "isCashEquivalent",
              "value": "false"
            }
          ]
        }
      ]
    }
    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

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: LOAN_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

    A currency object containing an ISO 4217 currency code.

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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, 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 RFC 3339

    Format: date
    Max length: 10
    loanTerm
    integerinteger

    Term of loan in months

    nextPaymentAmount
    numbernumber

    Amount of next payment. May differ from minimumPaymentAmount if the customer pays more than their minimum or out of cycle

    nextPaymentDate
    stringstring

    Due date of next payment. May differ from statementAmountDueDate if the customer pays out of cycle ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC 3339

    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 RFC 3339

    Format: date
    Max length: 10
    maturityDate
    stringstring

    Maturity date

    ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC 3339

    Format: date
    Max length: 10
    interestPaidYearToDate
    numbernumber

    Interest paid year to date

    interestRate
    requirednumberrequired, number

    The interest rate for the account, expressed as a number between 0 and 100. For example, 4 represents 4.00%, and 7.99 represents 7.99%.

    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
    API Object
    {
      "accountCategory": "LOAN_ACCOUNT",
      "accountId": "someLongTermUniqueIDString",
      "accountNumberDisplay": "4321",
      "productName": "Premier Account",
      "status": "OPEN",
      "currency": {
        "currencyCode": "CAD"
      },
      "accountType": "HOMEEQUITYLOAN",
      "accountNumber": "loanAccount0000001",
      "principalBalance": 580303.95,
      "escrowBalance": 3400.61,
      "originalPrincipal": 650400,
      "originatingDate": "2021-07-15",
      "loanTerm": 360,
      "nextPaymentAmount": 2483.12,
      "nextPaymentDate": "2021-07-15",
      "lastPaymentAmount": 2483.12,
      "lastPaymentDate": "2021-07-15",
      "maturityDate": "2021-07-15",
      "interestPaidYearToDate": 403.04,
      "interestRate": 6.99,
      "interestRateType": "FIXED"
    }
    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

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: LOC_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

    A currency object containing an ISO 4217 currency code.

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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, CREDITCARD, HOMELINEOFCREDIT
    creditLine
    numbernumber

    Credit limit

    availableCredit
    numbernumber

    Available credit. Required for all accountTypes except for CHARGE

    nextPaymentAmount
    numbernumber

    Amount of next payment. May differ from minimumPaymentAmount if the customer pays more than their minimum or out of cycle

    nextPaymentDate
    stringstring

    Due date of next payment. May differ from statementAmountDueDate if the customer pays out of cycle ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC 3339

    Format: date
    Max length: 10
    principalBalance
    numbernumber

    Principal balance

    currentBalance
    requirednumberrequired, number

    Current balance of line of credit

    minimumPaymentAmount
    numbernumber

    Minimum payment amount, which is due at the date specified in nextPaymentDate

    lastPaymentAmount
    numbernumber

    Amount of last payment

    lastPaymentDate
    stringstring

    Last payment date

    ISO 8601 full-date in format 'YYYY-MM-DD' according to IETF RFC 3339

    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 RFC 3339

    Format: date
    Max length: 10
    purchasesApr
    numbernumber

    Annual percentage rate for purchases

    advancesApr
    numbernumber

    Annual percentage rate for cash advances

    API Object
    {
      "accountCategory": "LOC_ACCOUNT",
      "accountId": "someLongTermUniqueIDString",
      "accountNumberDisplay": "4321",
      "productName": "Premier Account",
      "status": "OPEN",
      "currency": {
        "currencyCode": "CAD"
      },
      "accountType": "CREDITCARD",
      "creditLine": 10000,
      "availableCredit": 8302.73,
      "nextPaymentAmount": 1832.11,
      "nextPaymentDate": "2021-07-15",
      "principalBalance": 132.28,
      "currentBalance": 892.1,
      "minimumPaymentAmount": 190.32,
      "lastPaymentAmount": 2852.91,
      "lastPaymentDate": "2021-07-15",
      "pastDueAmount": 0,
      "lastStmtBalance": 5393.81,
      "lastStmtDate": "2021-07-15",
      "purchasesApr": 0,
      "advancesApr": 0
    }

    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.

    Note: Annuity accounts are discoverable-only. Plaid does not consume downstream data (balances, transactions, Auth) for annuity accounts.

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: ANNUITY_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

    A currency object containing an ISO 4217 currency code.

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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
    API Object
    {
      "accountCategory": "ANNUITY_ACCOUNT",
      "accountId": "someLongTermUniqueIDString",
      "accountNumberDisplay": "4321",
      "productName": "Premier Account",
      "status": "OPEN",
      "currency": {
        "currencyCode": "CAD"
      },
      "accountType": "FIXEDANNUITY"
    }
    Commercial account descriptor

    A commercial account. For example, a business deposit account. The accountType field for commercial accounts may be set to any of the account types listed below.

    Note: Commercial accounts are discoverable-only. Plaid does not consume downstream data (balances, transactions, Auth) for commercial accounts.

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: COMMERCIAL_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

    A currency object containing an ISO 4217 currency code.

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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: COMMERCIALDEPOSIT, COMMERCIALINVESTMENT, COMMERCIALLOAN, COMMERCIALLINEOFCREDIT
    API Object
    {
      "accountCategory": "COMMERCIAL_ACCOUNT",
      "accountId": "someLongTermUniqueIDString",
      "accountNumberDisplay": "4321",
      "productName": "Premier Account",
      "status": "OPEN",
      "currency": {
        "currencyCode": "CAD"
      },
      "accountType": "COMMERCIALLOAN"
    }
    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.

    Consumption scope:

    • Balances: Plaid returns balances for all deposit account types.
    • Auth: Plaid only consumes CHECKING and SAVINGS by default for Auth. The following types are not Auth-eligible unless allowlisted: CD, MONEYMARKET, ESCROW, HIGHINTERESTSAVINGSACCOUNT, FIRSTHOMESAVINGSACCOUNT, OTHERDEPOSIT.
    • Transactions: Plaid consumes transactions only for accounts mapped to depository (CHECKING, SAVINGS, CD, MONEYMARKET). Other deposit types mapped to other/other return balances only (no Auth, no transactions).

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: DEPOSIT_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

    A currency object containing an ISO 4217 currency code.

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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, ESCROW, MONEYMARKET, OTHERDEPOSIT
    API Object
    {
      "accountCategory": "DEPOSIT_ACCOUNT",
      "accountId": "someLongTermUniqueIDString",
      "accountNumberDisplay": "4321",
      "productName": "Premier Account",
      "status": "OPEN",
      "currency": {
        "currencyCode": "CAD"
      },
      "accountType": "SAVINGS"
    }
    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.

    Note: Insurance accounts are discoverable-only. Plaid does not consume downstream data (balances, transactions, Auth) for insurance accounts.

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: INSURANCE_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

    A currency object containing an ISO 4217 currency code.

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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
    API Object
    {
      "accountCategory": "INSURANCE_ACCOUNT",
      "accountId": "someLongTermUniqueIDString",
      "accountNumberDisplay": "4321",
      "productName": "Premier Account",
      "status": "OPEN",
      "currency": {
        "currencyCode": "CAD"
      },
      "accountType": "WHOLELIFE"
    }
    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.

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: INVESTMENT_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

    A currency object containing an ISO 4217 currency code.

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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, COVERDELL, DIGITALASSET, DEFINEDBENEFIT, DEFERREDPROFITSHARINGPLAN, ESOP, GUARDIAN, INDIVIDUALPENSIONPLAN, INSTITUTIONALTRUST, INVESTMENTACCOUNT, IRA, KEOGH, LIFEINCOMEFUND, LOCKEDINRETIREMENTACCOUNT, LOCKEDINRETIREMENTINCOMEFUND, LOCKEDINRETIREMENTSAVINGSPLAN, NONQUALIFEDPLAN, NONQUALIFIEDPLAN, OTHERINVESTMENT, PRESCRIBEDREGISTEREDRETIREMENTINCOMEFUND, REGISTEREDPENSIONPLAN, REGISTEREDDISABILITYSAVINGSPLAN, REGISTEREDEDUCATIONSAVINGSPLAN, REGISTEREDRETIREMENTINCOMEFUND, REGISTEREDRETIREMENTSAVINGSPLAN, RESTRICTEDLIFEINCOMEFUND, RESTRICTEDLOCKEDINSAVINGSPLAN, ROLLOVER, ROTH, SARSEP, SPECIFIEDPENSIONPLAN, TAXABLE, TAXFREESAVINGSACCOUNT, TDA, TRUST, TERM, UGMA, UTMA, VARIABLEANNUITY
    API Object
    {
      "accountCategory": "INVESTMENT_ACCOUNT",
      "accountId": "someLongTermUniqueIDString",
      "accountNumberDisplay": "4321",
      "productName": "Premier Account",
      "status": "OPEN",
      "currency": {
        "currencyCode": "CAD"
      },
      "accountType": "ROTH"
    }
    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.

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: LOAN_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

    A currency object containing an ISO 4217 currency code.

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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, HOMEEQUITYLOAN, INSTALLMENT, LOAN, MILITARYLOAN, MORTGAGE, PERSONALLOAN, SMBLOAN, STUDENTLOAN
    API Object
    {
      "accountCategory": "LOAN_ACCOUNT",
      "accountId": "someLongTermUniqueIDString",
      "accountNumberDisplay": "4321",
      "productName": "Premier Account",
      "status": "OPEN",
      "currency": {
        "currencyCode": "CAD"
      },
      "accountType": "HOMEEQUITYLOAN"
    }
    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.

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: LOC_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

    A currency object containing an ISO 4217 currency code.

    currencyCode
    requiredstringrequired, string

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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, CREDITCARD, HOMELINEOFCREDIT
    API Object
    {
      "accountCategory": "LOC_ACCOUNT",
      "accountId": "someLongTermUniqueIDString",
      "accountNumberDisplay": "4321",
      "productName": "Premier Account",
      "status": "OPEN",
      "currency": {
        "currencyCode": "CAD"
      },
      "accountType": "CREDITCARD"
    }

    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

    Annuity account types

    Discoverable-only: Annuity accounts are discoverable-only. Plaid does not consume downstream data (balances, transactions, Auth) for this account category. These accounts appear in the GET /accounts response for discovery purposes only.

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

    Account typeDescription
    ANNUITYA form of insurance or investment entitling the investor to a series of annual sums
    FIXEDANNUITYA type of insurance contract that promises to pay the buyer a specific, guaranteed interest rate on their contributions to the account
    VARIABLEANNUITYA 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
    Commercial account types

    Discoverable-only: Commercial accounts are discoverable-only. Plaid does not consume downstream data (balances, transactions, Auth) for this account category. These accounts appear in the GET /accounts response for discovery purposes only.

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

    Account typeDescription
    COMMERCIALDEPOSITA deposit account for commercial customers, for example a business trust account
    COMMERCIALLOANA preset borrowing limit that can be used at any time
    COMMERCIALLINEOFCREDITAn account with a preset borrowing limit that can be used at any time
    COMMERCIALINVESTMENTInvestment Account for Commercial Customers. e.g. Commercial Brokerage Account
    Deposit account types

    Plaid consumption scope:

    • Balances: Plaid returns balances for all deposit account types.
    • Auth: Plaid only consumes CHECKING and SAVINGS accounts for Auth by default. The following account types are not Auth-consumed unless explicitly allowlisted: CD, MONEYMARKET, ESCROW, OTHERDEPOSIT. Accounts that map to other/other (such as ESCROW and OTHERDEPOSIT) return balances only and are never eligible for Auth.
    • Transactions: Plaid extracts transactions only for accounts mapped to the depository type (CHECKING, SAVINGS, MONEYMARKET, CD). Accounts mapped to other/other do not return transactions.

    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
    Insurance account types

    Discoverable-only: Insurance accounts are discoverable-only. Plaid does not consume downstream data (balances, transactions, Auth) for this account category. These accounts appear in the GET /accounts response for discovery purposes only.

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

    Account typeDescription
    LONGTERMDISABILITYInsurance that replaces a portion of the policyholder's income due to a disability for an extended period of time, usually more than a year
    SHORTTERMDISABILITYInsurance that replaces a portion of the policyholder's income due to a disability for a short period of time, usually less than a year
    UNIVERSALLIFEA 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
    WHOLELIFELife insurance which is guaranteed to remain in force for the insured's entire lifetime, provided required premiums are paid, or to the maturity date
    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

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: DEPOSIT_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 RFC 3339

    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 RFC 3339

    Format: date-time
    description
    requiredstringrequired, string

    Description of the transaction, such as information about a merchant's name or place of business in a manner that is user friendly and accessible to the customer

    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 specifying the standard of the transaction category. For example, "MCC"

    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

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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

    API Object
    {
      "accountCategory": "DEPOSIT_ACCOUNT",
      "transactionId": "78RJ3311PLU34300E",
      "transactionTimestamp": "2024-07-15T14:46:41.375+02:00",
      "description": "ATM deposit",
      "debitCreditMemo": "DEBIT",
      "status": "PENDING",
      "amount": 38.9
    }
    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

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: INVESTMENT_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 RFC 3339

    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 RFC 3339

    Format: date-time
    description
    requiredstringrequired, string

    Description of the transaction, such as information about a merchant's name or place of business in a manner that is user friendly and accessible to the customer

    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 specifying the standard of the transaction category. For example, "MCC"

    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

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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: CINS, CMC, CME, CUSIP, ISIN, ITSA, NASDAQ, 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 is_cash_equivalent 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

    API Object
    {
      "accountCategory": "INVESTMENT_ACCOUNT",
      "transactionId": "78RJ3311PLU34300E",
      "transactionTimestamp": "2024-07-15T14:46:41.375+02:00",
      "description": "Share purchase",
      "debitCreditMemo": "DEBIT",
      "status": "PENDING",
      "amount": 428.08,
      "fees": 4.28,
      "transactionType": "PURCHASED"
    }
    Loan transaction

    A transaction on a loan account

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: 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 RFC 3339

    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 RFC 3339

    Format: date-time
    description
    requiredstringrequired, string

    Description of the transaction, such as information about a merchant's name or place of business in a manner that is user friendly and accessible to the customer

    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 specifying the standard of the transaction category. For example, "MCC"

    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

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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
    API Object
    {
      "accountCategory": "LOAN_ACCOUNT",
      "transactionId": "78RJ3311PLU34300E",
      "transactionTimestamp": "2024-07-15T14:46:41.375+02:00",
      "description": "Monthly loan payment-minimum due",
      "debitCreditMemo": "CREDIT",
      "status": "POSTED",
      "amount": 1638.83
    }
    Line of credit transaction

    A line-of-credit transaction

    Properties

    accountCategory
    requiredstringrequired, string

    The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.

    Possible values: LOC_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 RFC 3339

    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 RFC 3339

    Format: date-time
    description
    requiredstringrequired, string

    Description of the transaction, such as information about a merchant's name or place of business in a manner that is user friendly and accessible to the customer

    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 specifying the standard of the transaction category. For example, "MCC"

    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

    Currency, fund and precious metal codes as of Jan. 1, 2023 per ISO 4217 Currency Code Maintenance

    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, BYN, 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, 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, MRU, 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, SLE, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, 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, PURCHASE
    checkNumber
    integerinteger

    Check number. Plaid expects this solely if the transaction involves a check

    API Object
    {
      "accountCategory": "LOC_ACCOUNT",
      "transactionId": "78RJ3311PLU34300E",
      "transactionTimestamp": "2024-07-15T14:46:41.375+02:00",
      "description": "Recurring payment",
      "debitCreditMemo": "MEMO",
      "status": "AUTHORIZATION",
      "amount": 38.9
    }

    Transaction types

    Investment transaction types

    Plaid maps these enums to Plaid 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