Plaid Link API

Plaid Link API is a tool designed to simplify the process of connecting users' financial accounts to third-party applications. By providing a secure and seamless way for users to input their account credentials, Plaid Link API enables developers to access real-time financial data and perform transactions on behalf of their users. This API streamlines the integration of financial services into applications, making it easier for users to manage their finances and for developers to implement financial features without having to build their own infrastructure for data aggregation and security. Overall, Plaid Link API revolutionizes the way financial data is accessed and utilized in the digital age.

OpenAPI Specification

plaid-link--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 link/'
  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:
  /link/profile/eligibility/check:
    x-hidden-from-docs: true
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      tags:
        - Plaid
      summary: Plaid Check profile eligibility
      externalDocs:
        url: /api/link/#profileeligibilitycheck
      operationId: linkProfileEligibilityCheck
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkProfileEligibilityCheckResponse'
              examples:
                example-1:
                  value:
                    profile_matches: true
                    request_id: XQVgFigpGHXkb0b
      description: >-
        The `/link/profile/eligibility/check` endpoint can be used to check
        whether a user with the

        supplied phone number has a saved profile that satisfies
        customer-defined eligibility

        requirements.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkProfileEligibilityCheckRequest'
        description: ''
  /link/token/create:
    x-plaid-business-unit-context: BUSINESS_UNIT_UNDETERMINED
    post:
      tags:
        - Plaid
      summary: Plaid Create Link Token
      externalDocs:
        url: /api/tokens/#linktokencreate
      operationId: linkTokenCreate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkTokenCreateResponse'
              examples:
                example-1:
                  value:
                    link_token: link-sandbox-af1a0311-da53-4636-b754-dd15cc058176
                    expiration: '2020-03-27T12:56:34Z'
                    request_id: XQVgFigpGHXkb0b
      description: >-
        The `/link/token/create` endpoint creates a `link_token`, which is
        required as a parameter when initializing Link. Once Link has been
        initialized, it returns a `public_token`, which can then be exchanged
        for an `access_token` via `/item/public_token/exchange` as part of the
        main Link flow.


        A `link_token` generated by `/link/token/create` is also used to
        initialize other Link flows, such as the update mode flow for tokens
        with expired credentials, or the Payment Initiation (Europe) flow.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkTokenCreateRequest'
        description: ''
  /link/token/get:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      tags:
        - Plaid
      summary: Plaid Get Link Token
      externalDocs:
        url: /api/tokens/#linktokenget
      operationId: linkTokenGet
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkTokenGetResponse'
              examples:
                example-1:
                  value:
                    created_at: '2020-12-02T21:14:54Z'
                    expiration: '2020-12-03T01:14:54Z'
                    link_token: link-sandbox-33792986-2b9c-4b80-b1f2-518caaac6183
                    metadata:
                      account_filters:
                        depository:
                          account_subtypes:
                            - checking
                            - savings
                      client_name: Insert Client name here
                      country_codes:
                        - US
                      initial_products:
                        - auth
                      language: en
                      redirect_uri:
                      webhook: https://www.example.com/webhook
                    request_id: u0ydFs493XjyTYn
      description: >-
        The `/link/token/get` endpoint gets information about a
        previously-created `link_token` using the

        `/link/token/create` endpoint. It can be useful for debugging purposes.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkTokenGetRequest'
        description: ''
  /link/oauth/correlation_id/exchange:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      tags:
        - Plaid
      summary: Plaid Exchange the Link Correlation Id for a Link Token
      externalDocs:
        url: /api/oauth/#linkcorrelationid
      operationId: linkOauthCorrelationIdExchange
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkOAuthCorrelationIdExchangeResponse'
              examples:
                example-1:
                  value:
                    link_token: link-sandbox-33792986-2b9c-4b80-b1f2-518caaac6183
                    request_id: u0ydFs493XjyTYn
      description: >-
        Exchange an OAuth `link_correlation_id` for the corresponding
        `link_token`. The `link_correlation_id` is only available for
        'payment_initiation' products and is provided to the client via the
        OAuth `redirect_uri` as a query parameter.

        The `link_correlation_id` is ephemeral and expires in a brief period,
        after which it can no longer be exchanged for the 'link_token'.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkOAuthCorrelationIdExchangeRequest'
        description: ''
components:
  schemas:
    LinkProfileEligibilityCheckResponse:
      type: object
      x-hidden-from-docs: true
      additionalProperties: true
      description: >-
        LinkProfileEligibilityCheckResponse defines the response schema for
        `/link/profile/eligibility/check`
      properties:
        profile_matches:
          type: boolean
          description: >-
            Indicates whether Plaid has a profile matching the customer's
            eligibility requirements for this user
        request_id:
          $ref: '#/components/schemas/RequestID'
      required:
        - profile_matches
        - request_id
    LinkTokenCreateResponse:
      type: object
      additionalProperties: true
      description: >-
        LinkTokenCreateResponse defines the response schema for
        `/link/token/create`
      properties:
        link_token:
          type: string
          description: >-
            A `link_token`, which can be supplied to Link in order to initialize
            it and receive a `public_token`, which can be exchanged for an
            `access_token`.
        expiration:
          type: string
          format: date-time
          description: >-
            The expiration date for the `link_token`, in [ISO
            8601](https://wikipedia.org/wiki/ISO_8601) format. A `link_token`
            created to generate a `public_token` that will be exchanged for a
            new `access_token` expires after 4 hours. A `link_token` created for
            an existing Item (such as when updating an existing `access_token`
            by launching Link in update mode) expires after 30 minutes.
        request_id:
          $ref: '#/components/schemas/RequestID'
        hosted_link_url:
          type: string
          description: >-
            A URL of a Plaid-hosted Link flow that will use the Link token
            returned by this request. Only present if the client is enabled for
            Hosted Link.
      required:
        - link_token
        - expiration
        - request_id
    LinkTokenGetResponse:
      type: object
      additionalProperties: true
      description: LinkTokenGetResponse defines the response schema for `/link/token/get`
      properties:
        link_token:
          type: string
          description: >-
            A `link_token`, which can be supplied to Link in order to initialize
            it and receive a `public_token`, which can be exchanged for an
            `access_token`.
        created_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            The creation timestamp for the `link_token`, in [ISO
            8601](https://wikipedia.org/wiki/ISO_8601) format.
        expiration:
          type: string
          format: date-time
          nullable: true
          description: >-
            The expiration timestamp for the `link_token`, in [ISO
            8601](https://wikipedia.org/wiki/ISO_8601) format.
        link_sessions:
          type: array
          description: >-
            Information about Link sessions created using this `link_token`.
            This field will only be present if your client is enabled for
            Backend Handoff. Session data will be provided for up to six hours
            after the session has ended.
          items:
            $ref: '#/components/schemas/LinkTokenGetSessionsResponse'
        metadata:
          $ref: '#/components/schemas/LinkTokenGetMetadataResponse'
        request_id:
          $ref: '#/components/schemas/RequestID'
      required:
        - link_token
        - created_at
        - expiration
        - metadata
        - request_id
    LinkOAuthCorrelationIdExchangeResponse:
      type: object
      additionalProperties: true
      description: >-
        LinkOAuthCorrelationIdExchangeResponse defines the response schema for
        `/link/oauth/correlation_id/exchange`
      properties:
        link_token:
          type: string
          description: >-
            The `link_token` associated to the given `link_correlation_id`,
            which can be used to re-initialize Link.
        request_id:
          $ref: '#/components/schemas/RequestID'
      required:
        - link_token
        - request_id