Plaid Accounts API

Plaid Accounts API is a financial technology tool that enables developers to securely access and retrieve detailed information about a user's banking and financial accounts. By integrating with Plaid's API, developers can streamline the process of verifying account ownership, account balances, transaction history, and other essential financial data. This enables developers to build innovative new financial applications, services, and experiences that can help users better manage their money and make more informed financial decisions. Plaid Accounts API offers a robust and reliable solution for connecting with various financial institutions and retrieving accurate and up-to-date account information in a secure and efficient manner.

OpenAPI Specification

plaid-accounts--openapi-original.yml Raw ↑
openapi: 3.0.0
servers:
  - description: Production
    url: https://production.plaid.com
  - description: Development
    url: https://development.plaid.com
  - description: Sandbox
    url: https://sandbox.plaid.com
info:
  title: 'Plaid accounts/'
  version: 2020-09-14_1.517.0
  description: Needs description.
  contact:
    name: Plaid Developer Team
    url: https://plaid.com
  termsOfService: https://plaid.com/legal/
tags:
  - name: Plaid
security:
  - clientId: []
    secret: []
    plaidVersion: []
paths:
  /accounts/get:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      tags:
        - Plaid
      summary: Plaid Retrieve accounts
      externalDocs:
        url: /api/accounts/#accountsget
      operationId: accountsGet
      description: >-
        The `/accounts/get` endpoint can be used to retrieve a list of accounts
        associated with any linked Item. Plaid will only return active bank
        accounts — that is, accounts that are not closed and are capable of
        carrying a balance.

        For items that went through the updated account selection pane, this
        endpoint only returns accounts that were permissioned by the user when
        they initially created the Item. If a user creates a new account after
        the initial link, you can capture this event through the
        [`NEW_ACCOUNTS_AVAILABLE`](https://plaid.com/docs/api/items/#new_accounts_available)
        webhook and then use Link's [update
        mode](https://plaid.com/docs/link/update-mode/) to request that the user
        share this new account with you.


        `/accounts/get` is free to use and retrieves cached information, rather
        than extracting fresh information from the institution. The balance
        returned will reflect the balance at the time of the last successful
        Item update. If the Item is enabled for a regularly updating product,
        such as Transactions, Investments, or Liabilities, the balance will
        typically update about once a day, as long as the Item is healthy. If
        the Item is enabled only for products that do not frequently update,
        such as Auth or Identity, balance data may be much older.


        For realtime balance information, use the paid endpoint
        `/accounts/balance/get` instead.
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsGetResponse'
              examples:
                example-1:
                  value:
                    accounts:
                      - account_id: blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo
                        balances:
                          available: 100
                          current: 110
                          iso_currency_code: USD
                          limit:
                          unofficial_currency_code:
                        mask: '0000'
                        name: Plaid Checking
                        official_name: Plaid Gold Standard 0% Interest Checking
                        persistent_account_id: >-
                          8cfb8beb89b774ee43b090625f0d61d0814322b43bff984eaf60386e
                        subtype: checking
                        type: depository
                      - account_id: 6PdjjRP6LmugpBy5NgQvUqpRXMWxzktg3rwrk
                        balances:
                          available:
                          current: 23631.9805
                          iso_currency_code: USD
                          limit:
                          unofficial_currency_code:
                        mask: '6666'
                        name: Plaid 401k
                        official_name:
                        subtype: 401k
                        type: investment
                      - account_id: XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58
                        balances:
                          available:
                          current: 65262
                          iso_currency_code: USD
                          limit:
                          unofficial_currency_code:
                        mask: '7777'
                        name: Plaid Student Loan
                        official_name:
                        subtype: student
                        type: loan
                    item:
                      available_products:
                        - balance
                        - identity
                        - payment_initiation
                        - transactions
                      billed_products:
                        - assets
                        - auth
                      consent_expiration_time:
                      error:
                      institution_id: ins_117650
                      item_id: DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    request_id: bkVE1BHWMAZ9Rnr
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountsGetRequest'
            examples:
              example-1:
                value:
                  client_id: string
                  secret: string
                  access_token: string
                  options:
                    account_ids:
                      - string
  /accounts/balance/get:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      tags:
        - Plaid
      summary: Plaid Retrieve real-time balance data
      externalDocs:
        url: /api/products/balance/#accountsbalanceget
      operationId: accountsBalanceGet
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountsGetResponse'
              examples:
                example-1:
                  value:
                    accounts:
                      - account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
                        balances:
                          available: 100
                          current: 110
                          iso_currency_code: USD
                          limit:
                          unofficial_currency_code:
                        mask: '0000'
                        name: Plaid Checking
                        official_name: Plaid Gold Standard 0% Interest Checking
                        persistent_account_id: >-
                          8cfb8beb89b774ee43b090625f0d61d0814322b43bff984eaf60386e
                        subtype: checking
                        type: depository
                      - account_id: dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK
                        balances:
                          available:
                          current: 410
                          iso_currency_code: USD
                          limit: 2000
                          unofficial_currency_code:
                        mask: '3333'
                        name: Plaid Credit Card
                        official_name: Plaid Diamond 12.5% APR Interest Credit Card
                        subtype: credit card
                        type: credit
                      - account_id: Pp1Vpkl9w8sajvK6oEEKtr7vZxBnGpf7LxxLE
                        balances:
                          available:
                          current: 65262
                          iso_currency_code: USD
                          limit:
                          unofficial_currency_code:
                        mask: '7777'
                        name: Plaid Student Loan
                        official_name:
                        subtype: student
                        type: loan
                    item:
                      available_products:
                        - balance
                        - identity
                        - investments
                      billed_products:
                        - assets
                        - auth
                        - liabilities
                        - transactions
                      consent_expiration_time:
                      error:
                      institution_id: ins_3
                      item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
                      update_type: background
                      webhook: https://www.genericwebhookurl.com/webhook
                    request_id: qk5Bxes3gDfv4F2
      description: >-
        The `/accounts/balance/get` endpoint returns the real-time balance for
        each of an Item's accounts. While other endpoints, such as
        `/accounts/get`, return a balance object, only `/accounts/balance/get`
        forces the available and current balance fields to be refreshed rather
        than cached. This endpoint can be used for existing Items that were
        added via any of Plaid’s other products. This endpoint can be used as
        long as Link has been initialized with any other product, `balance`
        itself is not a product that can be used to initialize Link. As this
        endpoint triggers a synchronous request for fresh data, latency may be
        higher than for other Plaid endpoints (typically less than 10 seconds,
        but occasionally up to 30 seconds or more); if you encounter errors, you
        may find it necessary to adjust your timeout period when making
        requests.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountsBalanceGetRequest'
            examples:
              example-1:
                value:
                  access_token: string
                  secret: string
                  client_id: string
                  options:
                    account_ids:
                      - string
components:
  schemas:
    AccountsGetResponse:
      type: object
      additionalProperties: true
      description: >-
        AccountsGetResponse defines the response schema for `/accounts/get` and
        `/accounts/balance/get`.
      properties:
        accounts:
          type: array
          description: >-
            An array of financial institution accounts associated with the Item.

            If `/accounts/balance/get` was called, each account will include
            real-time balance information.
          items:
            $ref: '#/components/schemas/AccountBase'
        item:
          $ref: '#/components/schemas/Item'
        payment_risk_assessment:
          $ref: '#/components/schemas/AccountsBalanceGetResponsePaymentRiskAssessment'
        request_id:
          $ref: '#/components/schemas/RequestID'
      required:
        - accounts
        - item
        - request_id
    PlaidError:
      description: >-
        Errors are identified by `error_code` and categorized by `error_type`.
        Use these in preference to HTTP status codes to identify and handle
        specific errors. HTTP status codes are set and provide the broadest
        categorization of errors: 4xx codes are for developer- or user-related
        errors, and 5xx codes are for Plaid-related errors, and the status will
        be 2xx in non-error cases. An Item with a non-`null` error object will
        only be part of an API response when calling `/item/get` to view Item
        status. Otherwise, error fields will be `null` if no error has occurred;
        if an error has occurred, an error code will be returned instead.
      type: object
      additionalProperties: true
      title: Error
      nullable: true
      properties:
        error_type:
          $ref: '#/components/schemas/PlaidErrorType'
        error_code:
          description: The particular error code. Safe for programmatic use.
          type: string
        error_message:
          description: >-
            A developer-friendly representation of the error code. This may
            change over time and is not safe for programmatic use.
          type: string
        display_message:
          description: >-
            A user-friendly representation of the error code. `null` if the
            error is not related to user action.


            This may change over time and is not safe for programmatic use.
          type: string
          nullable: true
        request_id:
          type: string
          description: >-
            A unique ID identifying the request, to be used for troubleshooting
            purposes. This field will be omitted in errors provided by webhooks.
        causes:
          type: array
          description: >-
            In the Assets product, a request can pertain to more than one Item.
            If an error is returned for such a request, `causes` will return an
            array of errors containing a breakdown of these errors on the
            individual Item level, if any can be identified.


            `causes` will only be provided for the `error_type`
            `ASSET_REPORT_ERROR`. `causes` will also not be populated inside an
            error nested within a `warning` object.
          items: {}
        status:
          type: integer
          description: >-
            The HTTP status code associated with the error. This will only be
            returned in the response body when the error information is provided
            via a webhook.
          nullable: true
        documentation_url:
          type: string
          description: >-
            The URL of a Plaid documentation page with more information about
            the error
        suggested_action:
          type: string
          nullable: true
          description: Suggested steps for resolving the error
      required:
        - error_type
        - error_code
        - error_message
        - display_message