Plaid Transfer API

Plaid Transfer API is a powerful tool that enables developers to easily integrate ACH (Automated Clearing House) payments into their applications. This API allows users to securely link their bank accounts and initiate transfers with just a few lines of code. With Plaid Transfer API, developers can automate payment processes, streamline financial transactions, and provide a seamless user experience. By leveraging the capabilities of this API, businesses can improve efficiency, reduce manual tasks, and enhance the overall payment experience for their customers.

OpenAPI Specification

plaid-transfer--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 transfer/'
  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:
  /transfer/get:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Retrieve a transfer
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/reading-transfers/#transferget
      operationId: transferGet
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferGetResponse'
              examples:
                example-1:
                  value:
                    transfer:
                      account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      ach_class: ppd
                      amount: '12.34'
                      cancellable: true
                      created: '2020-08-06T17:27:15Z'
                      description: Desc
                      guarantee_decision:
                      guarantee_decision_rationale:
                      failure_reason:
                        ach_return_code: R13
                        description: Invalid ACH routing number
                      id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      authorization_id: c9f90aa1-2949-c799-e2b6-ea05c89bb586
                      metadata:
                        key1: value1
                        key2: value2
                      network: ach
                      origination_account_id: ''
                      originator_client_id:
                      refunds: []
                      status: pending
                      type: credit
                      iso_currency_code: USD
                      standard_return_window: '2020-08-07'
                      unauthorized_return_window: '2020-10-07'
                      expected_settlement_date: '2020-08-04'
                      user:
                        email_address: [email protected]
                        legal_name: Anne Charleston
                        phone_number: 510-555-0128
                        address:
                          street: 123 Main St.
                          city: San Francisco
                          region: CA
                          postal_code: '94053'
                          country: US
                      recurring_transfer_id:
                      credit_funds_source: sweep
                      facilitator_fee: '1.23'
                      network_trace_id:
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        The `/transfer/get` endpoint fetches information about the transfer
        corresponding to the given `transfer_id`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferGetRequest'
            examples: {}
      parameters: []
  /transfer/recurring/get:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Retrieve a recurring transfer
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/recurring-transfers/#transferrecurringget
      operationId: transferRecurringGet
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRecurringGetResponse'
              examples:
                example-1:
                  value:
                    recurring_transfer:
                      recurring_transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      created: '2022-07-05T12:48:37Z'
                      next_origination_date: '2022-10-28'
                      test_clock_id:
                      status: active
                      amount: '12.34'
                      description: payment
                      type: debit
                      ach_class: ppd
                      network: ach
                      origination_account_id: ''
                      account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      iso_currency_code: USD
                      transfer_ids:
                        - 271ef220-dbf8-caeb-a7dc-a2b3e8a80963
                        - c8dbaf75-2abb-e2dc-4171-12448e13b848
                      user:
                        legal_name: Anne Charleston
                        phone_number: 510-555-0128
                        email_address: [email protected]
                        address:
                          street: 123 Main St.
                          city: San Francisco
                          region: CA
                          postal_code: '94053'
                          country: US
                      schedule:
                        start_date: '2022-10-01'
                        end_date: '2023-10-01'
                        interval_unit: week
                        interval_count: 1
                        interval_execution_day: 5
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        The `/transfer/recurring/get` fetches information about the recurring
        transfer corresponding to the given `recurring_transfer_id`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferRecurringGetRequest'
  /transfer/authorization/create:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Create a transfer authorization
      tags:
        - Plaid
      externalDocs:
        url: >-
          /api/products/transfer/initiating-transfers/#transferauthorizationcreate
      operationId: transferAuthorizationCreate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferAuthorizationCreateResponse'
              examples:
                example-1:
                  value:
                    authorization:
                      id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      created: '2020-08-06T17:27:15Z'
                      decision: approved
                      decision_rationale:
                      guarantee_decision:
                      guarantee_decision_rationale:
                      payment_risk:
                      proposed_transfer:
                        ach_class: ppd
                        account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                        funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                        type: credit
                        user:
                          legal_name: Anne Charleston
                          phone_number: 510-555-0128
                          email_address: [email protected]
                          address:
                            street: 123 Main St.
                            city: San Francisco
                            region: CA
                            postal_code: '94053'
                            country: US
                        amount: '12.34'
                        network: ach
                        iso_currency_code: USD
                        origination_account_id: ''
                        originator_client_id:
                        credit_funds_source: sweep
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/transfer/authorization/create` endpoint to authorize a
        transfer. This endpoint must be called prior to calling
        `/transfer/create`.


        There are three possible outcomes to calling this endpoint: If the
        `authorization.decision` in the response is `declined`, the proposed
        transfer has failed the risk check and you cannot proceed with the
        transfer. If the `authorization.decision` is `approved`, and the
        `authorization.rationale_code` is `null`, the transfer has passed the
        risk check and you can proceed to call `/transfer/create`. If the
        `authorization.decision` is `approved` and the
        `authorization.rationale_code` is non-`null`, the risk check could not
        be run: you may proceed with the transfer, but should perform your own
        risk evaluation. For more details, see the response schema.


        In Plaid's Sandbox environment the decisions will be returned as
        follows:

          - To approve a transfer with `null` rationale code, make an authorization request with an `amount` less than the available balance in the account.

          - To approve a transfer with the rationale code `MANUALLY_VERIFIED_ITEM`, create an Item in Link through the [Same Day Micro-deposits flow](https://plaid.com/docs/auth/coverage/testing/#testing-same-day-micro-deposits).

          - To approve a transfer with the rationale code `ITEM_LOGIN_REQUIRED`, [reset the login for an Item](https://plaid.com/docs/sandbox/#item_login_required).

          - To decline a transfer with the rationale code `NSF`, the available balance on the account must be less than the authorization `amount`. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.

          - To decline a transfer with the rationale code `RISK`, the available balance on the account must be exactly $0. See [Create Sandbox test data](https://plaid.com/docs/sandbox/user-custom/) for details on how to customize data in Sandbox.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferAuthorizationCreateRequest'
  /transfer/authorization/cancel:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Cancel a transfer authorization
      tags:
        - Plaid
      externalDocs:
        url: >-
          /api/products/transfer/initiating-transfers/#transferauthorizationcancel
      operationId: transferAuthorizationCancel
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferAuthorizationCancelResponse'
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/transfer/authorization/cancel` endpoint to cancel a transfer
        authorization. A transfer authorization is eligible for cancellation if
        it has not yet been used to create a transfer.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferAuthorizationCancelRequest'
  /transfer/balance/get:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: (Deprecated) Retrieve a balance held with Plaid
      deprecated: true
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/balance/#transferbalanceget
      operationId: transferBalanceGet
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferBalanceGetResponse'
              examples:
                example-1:
                  value:
                    balance:
                      available: '1721.70'
                      type: prefunded_rtp_credits
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        (Deprecated) Use the `/transfer/balance/get` endpoint to view a balance
        held with Plaid.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferBalanceGetRequest'
  /transfer/capabilities/get:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Get RTP eligibility information of a transfer
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/account-linking/#transfercapabilitiesget
      operationId: transferCapabilitiesGet
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferCapabilitiesGetResponse'
              examples:
                example-1:
                  value:
                    institution_supported_networks:
                      rtp:
                        credit: true
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/transfer/capabilities/get` endpoint to determine the RTP
        eligibility information of a transfer. To simulate RTP eligibility in
        Sandbox, log in using the username `user_good` and password `pass_good`
        and use the first two checking and savings accounts in the "First
        Platypus Bank" institution (ending in 0000 or 1111), which will return
        `true`. Any other account will return `false`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferCapabilitiesGetRequest'
  /transfer/configuration/get:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Get transfer product configuration
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/metrics/#transferconfigurationget
      operationId: transferConfigurationGet
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferConfigurationGetResponse'
              examples:
                example-1:
                  value:
                    max_single_transfer_amount: ''
                    max_single_transfer_credit_amount: '1000.00'
                    max_single_transfer_debit_amount: '1000.00'
                    max_daily_credit_amount: '50000.00'
                    max_daily_debit_amount: '50000.00'
                    max_monthly_amount: ''
                    max_monthly_credit_amount: '500000.00'
                    max_monthly_debit_amount: '500000.00'
                    iso_currency_code: USD
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/transfer/configuration/get` endpoint to view your transfer
        product configurations.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferConfigurationGetRequest'
  /transfer/ledger/get:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Retrieve Plaid Ledger balance
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/ledger/#transferledgerget
      operationId: transferLedgerGet
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferLedgerGetResponse'
              examples:
                example-1:
                  value:
                    balance:
                      available: '1721.70'
                      pending: '123.45'
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/transfer/ledger/get` endpoint to view a balance on the ledger
        held with Plaid.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferLedgerGetRequest'
  /transfer/ledger/distribute:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: >-
        Plaid Move available balance between the ledgers of the platform and one of its originators
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/ledger/#transferledgerdistribute
      operationId: transferLedgerDistribute
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferLedgerDistributeResponse'
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/transfer/ledger/distribute` endpoint to move available balance
        between the ledgers of the platform and one of its originators.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferLedgerDistributeRequest'
  /transfer/ledger/deposit:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Deposit funds into a Plaid Ledger balance
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/ledger/#transferledgerdeposit
      operationId: transferLedgerDeposit
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferLedgerDepositResponse'
              examples:
                example-1:
                  value:
                    sweep:
                      id: 8c2fda9a-aa2f-4735-a00f-f4e0d2d2faee
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      created: '2020-08-06T17:27:15Z'
                      amount: '-12.34'
                      iso_currency_code: USD
                      settled:
                      status: pending
                      trigger: manual
                      description: deposit
                      network_trace_id:
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/transfer/ledger/deposit` endpoint to deposit funds into Plaid
        Ledger.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferLedgerDepositRequest'
  /transfer/ledger/withdraw:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Withdraw funds from a Plaid Ledger balance
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/ledger/#transferledgerwithdraw
      operationId: transferLedgerWithdraw
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferLedgerWithdrawResponse'
              examples:
                example-1:
                  value:
                    sweep:
                      id: 8c2fda9a-aa2f-4735-a00f-f4e0d2d2faee
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      created: '2020-08-06T17:27:15Z'
                      amount: '12.34'
                      iso_currency_code: USD
                      settled:
                      status: pending
                      trigger: manual
                      description: withdraw
                      network_trace_id:
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/transfer/ledger/withdraw` endpoint to withdraw funds from a
        Plaid Ledger balance.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferLedgerWithdrawRequest'
  /transfer/originator/funding_account/update:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Update the funding account associated with the originator
      tags:
        - Plaid
      externalDocs:
        url: >-
          /api/products/transfer/platform-payments/#transferoriginatorfunding_accountupdate
      operationId: transferOriginatorFundingAccountUpdate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/TransferOriginatorFundingAccountUpdateResponse
              examples:
                example-1:
                  value:
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/transfer/originator/funding_account/update` endpoint to update
        the funding account associated with the originator.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/TransferOriginatorFundingAccountUpdateRequest
  /transfer/metrics/get:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Get transfer product usage metrics
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/metrics/#transfermetricsget
      operationId: transferMetricsGet
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferMetricsGetResponse'
              examples:
                example-1:
                  value:
                    daily_debit_transfer_volume: '1234.56'
                    daily_credit_transfer_volume: '567.89'
                    monthly_transfer_volume: ''
                    monthly_debit_transfer_volume: '10000.00'
                    monthly_credit_transfer_volume: '2345.67'
                    iso_currency_code: USD
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/transfer/metrics/get` endpoint to view your transfer product
        usage metrics.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferMetricsGetRequest'
  /transfer/create:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Create a transfer
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/initiating-transfers/#transfercreate
      operationId: transferCreate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferCreateResponse'
              examples:
                example-1:
                  value:
                    transfer:
                      id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      authorization_id: c9f90aa1-2949-c799-e2b6-ea05c89bb586
                      ach_class: ppd
                      account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      type: credit
                      user:
                        legal_name: Anne Charleston
                        phone_number: 510-555-0128
                        email_address: [email protected]
                        address:
                          street: 123 Main St.
                          city: San Francisco
                          region: CA
                          postal_code: '94053'
                          country: US
                      amount: '12.34'
                      description: payment
                      created: '2020-08-06T17:27:15Z'
                      refunds: []
                      status: pending
                      network: ach
                      cancellable: true
                      guarantee_decision:
                      guarantee_decision_rationale:
                      failure_reason:
                      metadata:
                        key1: value1
                        key2: value2
                      origination_account_id: ''
                      iso_currency_code: USD
                      standard_return_window: '2023-08-07'
                      unauthorized_return_window: '2023-10-07'
                      expected_settlement_date: '2023-08-04'
                      originator_client_id: 569ed2f36b3a3a021713abc1
                      recurring_transfer_id:
                      credit_funds_source: sweep
                      facilitator_fee: '1.23'
                      network_trace_id:
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: Use the `/transfer/create` endpoint to initiate a new transfer.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferCreateRequest'
  /transfer/recurring/create:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Create a recurring transfer
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/recurring-transfers/#transferrecurringcreate
      operationId: transferRecurringCreate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRecurringCreateResponse'
              examples:
                example-1:
                  value:
                    recurring_transfer:
                      recurring_transfer_id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                      created: '2022-07-05T12:48:37Z'
                      next_origination_date: '2022-10-28'
                      test_clock_id: b33a6eda-5e97-5d64-244a-a9274110151c
                      status: active
                      amount: '12.34'
                      description: payment
                      type: debit
                      ach_class: ppd
                      network: ach
                      origination_account_id: ''
                      account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      iso_currency_code: USD
                      transfer_ids: []
                      user:
                        legal_name: Anne Charleston
                        phone_number: 510-555-0128
                        email_address: [email protected]
                        address:
                          street: 123 Main St.
                          city: San Francisco
                          region: CA
                          postal_code: '94053'
                          country: US
                      schedule:
                        start_date: '2022-10-01'
                        end_date: '2023-10-01'
                        interval_unit: week
                        interval_count: 1
                        interval_execution_day: 5
                    decision: approved
                    decision_rationale:
                    request_id: saKrIBuEB9qJZno
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/transfer/recurring/create` endpoint to initiate a new
        recurring transfer. This capability is not currently supported for
        Transfer UI or Platform Payments (beta) customers.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferRecurringCreateRequest'
  /transfer/list:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid List transfers
      tags:
        - Plaid
      externalDocs:
        url: /api/products/transfer/reading-transfers/#transferlist
      operationId: transferList
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferListResponse'
              examples:
                example-1:
                  value:
                    transfers:
                      - account_id: 3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr
                        funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                        ach_class: ppd
                        amount: '12.34'
                        cancellable: true
                        created: '2019-12-09T17:27:15Z'
                        description: Desc
                        guarantee_decision:
                        guarantee_decision_rationale:
                        failure_reason:
                          ach_return_code: R13
                          description: Invalid ACH routing number
                        id: 460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9
                        authorization_id: c9f90aa1-2949-c799-e2b6-ea05c89bb586
                        metadata:
                          key1: value1
                          key2: value2
                        network: ach
                        origination_account_id: ''
                        originator_client_id:
                        refunds: []
                        status: pending
                        type: credit
                        iso_currency_code: USD
                        standard_return_window: '2020-08-07'
                        unauthorized_return_window: '20

# --- truncated at 32 KB (114 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/plaid/refs/heads/main/openapi/plaid-transfer--openapi-original.yml