Plaid Sandbox API

The Plaid Sandbox API is a tool that allows developers to easily test and experiment with the Plaid platform in a simulated environment. This API enables users to create and access fake financial accounts, transactions, and user profiles, allowing them to simulate real-world scenarios and interactions with the Plaid API. By using the Sandbox API, developers can quickly build and test applications that interact with financial data without the need for live, sensitive information. This API provides a safe and secure way for developers to familiarize themselves with the Plaid platform and streamline the development process.

OpenAPI Specification

plaid-sandbox--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 sandbox/'
  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:
  /sandbox/processor_token/create:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      tags:
        - Plaid
      summary: Plaid Create a test Item and processor token
      externalDocs:
        url: /api/sandbox/#sandboxprocessor_tokencreate
      operationId: sandboxProcessorTokenCreate
      description: >-
        Use the `/sandbox/processor_token/create` endpoint to create a valid
        `processor_token` for an arbitrary institution ID and test credentials.
        The created `processor_token` corresponds to a new Sandbox Item. You can
        then use this `processor_token` with the `/processor/` API endpoints in
        Sandbox. You can also use `/sandbox/processor_token/create` with the
        [`user_custom` test
        username](https://plaid.com/docs/sandbox/user-custom) to generate a test
        account with custom data.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxProcessorTokenCreateResponse'
              examples:
                example-1:
                  value:
                    processor_token: processor-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d
                    request_id: Aim3b
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxProcessorTokenCreateRequest'
  /sandbox/public_token/create:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      tags:
        - Plaid
      summary: Plaid Create a test Item
      externalDocs:
        url: /api/sandbox/#sandboxpublic_tokencreate
      operationId: sandboxPublicTokenCreate
      description: >-
        Use the `/sandbox/public_token/create` endpoint to create a valid
        `public_token`  for an arbitrary institution ID, initial products, and
        test credentials. The created `public_token` maps to a new Sandbox Item.
        You can then call `/item/public_token/exchange` to exchange the
        `public_token` for an `access_token` and perform all API actions.
        `/sandbox/public_token/create` can also be used with the [`user_custom`
        test username](https://plaid.com/docs/sandbox/user-custom) to generate a
        test account with custom data. `/sandbox/public_token/create` cannot be
        used with OAuth institutions.
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxPublicTokenCreateResponse'
              examples:
                example-1:
                  value:
                    public_token: public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d
                    request_id: Aim3b
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      requestBody:
        required: true
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxPublicTokenCreateRequest'
  /sandbox/item/fire_webhook:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      tags:
        - Plaid
      summary: Plaid Fire a test webhook
      externalDocs:
        url: /api/sandbox/#sandboxitemfire_webhook
      operationId: sandboxItemFireWebhook
      description: >-
        The `/sandbox/item/fire_webhook` endpoint is used to test that code
        correctly handles webhooks. This endpoint can trigger the following
        webhooks:


        `DEFAULT_UPDATE`: Transactions update webhook to be fired for a given
        Sandbox Item. If the Item does not support Transactions, a
        `SANDBOX_PRODUCT_NOT_ENABLED` error will result.


        `NEW_ACCOUNTS_AVAILABLE`: Webhook to be fired for a given Sandbox Item
        created with Account Select v2.


        `AUTH_DATA_UPDATE`: Webhook to be fired for a given Sandbox Item created
        with Auth as an enabled product.


        `SMS_MICRODEPOSITS_VERIFICATION`: Fired when a given same day
        micro-deposit item is verified via SMS verification.


        `LOGIN_REPAIRED`: Fired when an Item recovers from the
        `ITEM_LOGIN_REQUIRED` without the user going through update mode in your
        app.


        `RECURRING_TRANSACTIONS_UPDATE`: Recurring Transactions webhook to be
        fired for a given Sandbox Item. If the Item does not support Recurring
        Transactions, a `SANDBOX_PRODUCT_NOT_ENABLED` error will result.


        `SYNC_UPDATES_AVAILABLE`: Transactions webhook to be fired for a given
        Sandbox Item.  If the Item does not support Transactions, a
        `SANDBOX_PRODUCT_NOT_ENABLED` error will result.


        `PRODUCT_READY`: Assets webhook to be fired when a given asset report
        has been successfully generated. If the Item does not support Assets, a
        `SANDBOX_PRODUCT_NOT_ENABLED` error will result.


        `ERROR`: Assets webhook to be fired when asset report generation has
        failed. If the Item does not support Assets, a
        `SANDBOX_PRODUCT_NOT_ENABLED` error will result.


        Note that this endpoint is provided for developer ease-of-use and is not
        required for testing webhooks; webhooks will also fire in Sandbox under
        the same conditions that they would in Production or Development (except
        for webhooks of type `TRANSFER`).
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxItemFireWebhookResponse'
              examples:
                example-1:
                  value:
                    webhook_fired: true
                    request_id: 1vwmF5TBQwiqfwP
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      requestBody:
        required: true
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxItemFireWebhookRequest'
  /sandbox/item/reset_login:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      tags:
        - Plaid
      summary: Plaid Force a Sandbox Item into an error state
      externalDocs:
        url: /api/sandbox/#sandboxitemreset_login
      operationId: sandboxItemResetLogin
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxItemResetLoginResponse'
              examples:
                example-1:
                  value:
                    reset_login: true
                    request_id: m8MDnv9okwxFNBV
      description: >-
        `/sandbox/item/reset_login/` forces an Item into an
        `ITEM_LOGIN_REQUIRED` state in order to simulate an Item whose login is
        no longer valid. This makes it easy to test Link's [update
        mode](https://plaid.com/docs/link/update-mode) flow in the Sandbox
        environment.  After calling `/sandbox/item/reset_login`, You can then
        use Plaid Link update mode to restore the Item to a good state. An
        `ITEM_LOGIN_REQUIRED` webhook will also be fired after a call to this
        endpoint, if one is associated with the Item.



        In the Sandbox, Items will transition to an `ITEM_LOGIN_REQUIRED` error
        state automatically after 30 days, even if this endpoint is not called.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxItemResetLoginRequest'
  /sandbox/item/set_verification_status:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      tags:
        - Plaid
      summary: Plaid Set verification status for Sandbox account
      externalDocs:
        url: /api/sandbox/#sandboxitemset_verification_status
      operationId: sandboxItemSetVerificationStatus
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxItemSetVerificationStatusResponse'
              examples:
                example-1:
                  value:
                    request_id: 1vwmF5TBQwiqfwP
      description: >-
        The `/sandbox/item/set_verification_status` endpoint can be used to
        change the verification status of an Item in in the Sandbox in order to
        simulate the Automated Micro-deposit flow.


        For more information on testing Automated Micro-deposits in Sandbox, see
        [Auth full coverage
        testing](https://plaid.com/docs/auth/coverage/testing#).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxItemSetVerificationStatusRequest'
  /sandbox/bank_transfer/simulate:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Simulate a bank transfer event in Sandbox
      tags:
        - Plaid
      externalDocs:
        url: /bank-transfers/reference/#sandboxbank_transfersimulate
      operationId: sandboxBankTransferSimulate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxBankTransferSimulateResponse'
              examples:
                example-1:
                  value:
                    request_id: LmHYMwBhZUvsM03
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/bank_transfer/simulate` endpoint to simulate a bank
        transfer event in the Sandbox environment.  Note that while an event
        will be simulated and will appear when using endpoints such as
        `/bank_transfer/event/sync` or `/bank_transfer/event/list`, no
        transactions will actually take place and funds will not move between
        accounts, even within the Sandbox.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxBankTransferSimulateRequest'
  /sandbox/transfer/sweep/simulate:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Simulate creating a sweep
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransfersweepsimulate
      operationId: sandboxTransferSweepSimulate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxTransferSweepSimulateResponse'
              examples:
                example-1:
                  value:
                    sweep:
                      id: d5394a4d-0b04-4a02-9f4a-7ca5c0f52f9d
                      funding_account_id: 8945fedc-e703-463d-86b1-dc0607b55460
                      created: '2020-08-06T17:27:15Z'
                      amount: '12.34'
                      iso_currency_code: USD
                      settled: '2020-08-07'
                      network_trace_id:
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/sweep/simulate` endpoint to create a sweep
        and associated events in the Sandbox environment. Upon calling this
        endpoint, all transfers with a sweep status of `swept` will become
        `swept_settled`, all `posted` or `pending` transfers with a sweep status
        of `unswept` will become `swept`, and all `returned` transfers with a
        sweep status of `swept` will become `return_swept`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxTransferSweepSimulateRequest'
  /sandbox/transfer/simulate:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Simulate a transfer event in Sandbox
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransfersimulate
      operationId: sandboxTransferSimulate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxTransferSimulateResponse'
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/simulate` endpoint to simulate a transfer
        event in the Sandbox environment.  Note that while an event will be
        simulated and will appear when using endpoints such as
        `/transfer/event/sync` or `/transfer/event/list`, no transactions will
        actually take place and funds will not move between accounts, even
        within the Sandbox.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxTransferSimulateRequest'
  /sandbox/transfer/refund/simulate:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Simulate a refund event in Sandbox
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransferrefundsimulate
      operationId: sandboxTransferRefundSimulate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxTransferRefundSimulateResponse'
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/refund/simulate` endpoint to simulate a
        refund event in the Sandbox environment.  Note that while an event will
        be simulated and will appear when using endpoints such as
        `/transfer/event/sync` or `/transfer/event/list`, no transactions will
        actually take place and funds will not move between accounts, even
        within the Sandbox.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxTransferRefundSimulateRequest'
  /sandbox/transfer/ledger/simulate_available:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Simulate converting pending balance to available balance
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransferledgersimulate_available
      operationId: sandboxTransferLedgerSimulateAvailable
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/SandboxTransferLedgerSimulateAvailableResponse
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/ledger/simulate_available` endpoint to
        simulate converting pending balance to available balance for all
        originators in the Sandbox environment.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/SandboxTransferLedgerSimulateAvailableRequest
  /sandbox/transfer/ledger/deposit/simulate:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Simulate a ledger deposit event in Sandbox
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransferledgerdepositsimulate
      operationId: sandboxTransferLedgerDepositSimulate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/SandboxTransferLedgerDepositSimulateResponse
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/ledger/deposit/simulate` endpoint to simulate
        a ledger deposit event in the Sandbox environment.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxTransferLedgerDepositSimulateRequest'
  /sandbox/transfer/ledger/withdraw/simulate:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Simulate a ledger withdraw event in Sandbox
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransferledgerwithdrawsimulate
      operationId: sandboxTransferLedgerWithdrawSimulate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/SandboxTransferLedgerWithdrawSimulateResponse
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/ledger/withdraw/simulate` endpoint to
        simulate a ledger withdraw event in the Sandbox environment.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/SandboxTransferLedgerWithdrawSimulateRequest
  /sandbox/transfer/repayment/simulate:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Trigger the creation of a repayment
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransferrepaymentsimulate
      operationId: sandboxTransferRepaymentSimulate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxTransferRepaymentSimulateResponse'
              examples:
                example-1:
                  value:
                    request_id: 4vAbY6XyqqoPQLB
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/repayment/simulate` endpoint to trigger the
        creation of a repayment. As a side effect of calling this route, a
        repayment is created that includes all unreimbursed returns of
        guaranteed transfers. If there are no such returns, an 400 error is
        returned.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxTransferRepaymentSimulateRequest'
  /sandbox/transfer/fire_webhook:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Manually fire a Transfer webhook
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransferfire_webhook
      operationId: sandboxTransferFireWebhook
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxTransferFireWebhookResponse'
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/fire_webhook` endpoint to manually trigger a
        `TRANSFER_EVENTS_UPDATE` webhook in the Sandbox environment.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxTransferFireWebhookRequest'
  /sandbox/transfer/test_clock/create:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Create a test clock
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransfertest_clockcreate
      operationId: sandboxTransferTestClockCreate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxTransferTestClockCreateResponse'
              examples:
                example-1:
                  value:
                    test_clock:
                      test_clock_id: b33a6eda-5e97-5d64-244a-a9274110151c
                      virtual_time: '2006-01-02T15:04:05Z'
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/test_clock/create` endpoint to create a
        `test_clock` in the Sandbox environment.


        A test clock object represents an independent timeline and has a
        `virtual_time` field indicating the current timestamp of the timeline.
        Test clocks are used for testing recurring transfers in Sandbox.


        A test clock can be associated with up to 5 recurring transfers.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxTransferTestClockCreateRequest'
  /sandbox/transfer/test_clock/advance:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Advance a test clock
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransfertest_clockadvance
      operationId: sandboxTransferTestClockAdvance
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxTransferTestClockAdvanceResponse'
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/test_clock/advance` endpoint to advance a
        `test_clock` in the Sandbox environment.


        A test clock object represents an independent timeline and has a
        `virtual_time` field indicating the current timestamp of the timeline. A
        test clock can be advanced by incrementing `virtual_time`, but may never
        go back to a lower `virtual_time`.


        If a test clock is advanced, we will simulate the changes that ought to
        occur during the time that elapsed.


        For example, a client creates a weekly recurring transfer with a test
        clock set at t. When the client advances the test clock by setting
        `virtual_time` = t + 15 days, 2 new originations should be created,
        along with the webhook events.


        The advancement of the test clock from its current `virtual_time` should
        be limited such that there are no more than 20 originations resulting
        from the advance operation on each `recurring_transfer` associated with
        the `test_clock`.


        For example, if the recurring transfer associated with this test clock
        originates once every 4 weeks, you can advance the `virtual_time` up to
        80 weeks on each API call.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxTransferTestClockAdvanceRequest'
  /sandbox/transfer/test_clock/get:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Get a test clock
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransfertest_clockget
      operationId: sandboxTransferTestClockGet
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxTransferTestClockGetResponse'
              examples:
                example-1:
                  value:
                    test_clock:
                      test_clock_id: b33a6eda-5e97-5d64-244a-a9274110151c
                      virtual_time: '2006-01-02T15:04:05Z'
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/test_clock/get` endpoint to get a
        `test_clock` in the Sandbox environment.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxTransferTestClockGetRequest'
  /sandbox/transfer/test_clock/list:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid List test clocks
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxtransfertest_clocklist
      operationId: sandboxTransferTestClockList
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxTransferTestClockListResponse'
              examples:
                example-1:
                  value:
                    test_clocks:
                      - test_clock_id: b33a6eda-5e97-5d64-244a-a9274110151c
                        virtual_time: '2006-01-02T15:04:05Z'
                      - test_clock_id: a33a6eda-5e97-5d64-244a-a9274110152d
                        virtual_time: '2006-02-02T15:04:05Z'
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/transfer/test_clock/list` endpoint to see a list of
        all your test clocks in the Sandbox environment, by ascending
        `virtual_time`. Results are paginated; use the `count` and `offset`
        query parameters to retrieve the desired test clocks.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxTransferTestClockListRequest'
  /sandbox/payment_profile/reset_login:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      deprecated: true
      tags:
        - Plaid
      summary: Plaid Reset the login of a Payment Profile
      externalDocs:
        url: /api/sandbox/#sandboxpayment_profilereset_login
      operationId: sandboxPaymentProfileResetLogin
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxPaymentProfileResetLoginResponse'
              examples:
                example-1:
                  value:
                    reset_login: true
                    request_id: m8MDnv9okwxFNBV
      description: >-
        `/sandbox/payment_profile/reset_login/` forces a Payment Profile into a
        state where the login is no longer valid. This makes it easy to test
        update mode for Payment Profile in the Sandbox environment.

         After calling `/sandbox/payment_profile/reset_login`, calls to the `/transfer/authorization/create` with the Payment Profile will result in a `decision_rationale` `PAYMENT_PROFILE_LOGIN_REQUIRED`. You can then use update mode for Payment Profile to restore it into a good state.

         In order to invoke this endpoint, you must first [create a Payment Profile](https://plaid.com/docs/transfer/add-to-app/#create-a-payment-profile-optional) and [go through the Link flow](https://plaid.com/docs/transfer/add-to-app/#create-a-link-token).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxPaymentProfileResetLoginRequest'
  /sandbox/bank_transfer/fire_webhook:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Manually fire a Bank Transfer webhook
      tags:
        - Plaid
      externalDocs:
        url: /bank-transfers/reference/#sandboxbank_transferfire_webhook
      operationId: sandboxBankTransferFireWebhook
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxBankTransferFireWebhookResponse'
              examples:
                example-1:
                  value:
                    request_id: mdqfuVxeoza6mhu
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaidError'
      description: >-
        Use the `/sandbox/bank_transfer/fire_webhook` endpoint to manually
        trigger a Bank Transfers webhook in the Sandbox environment.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxBankTransferFireWebhookRequest'
  /sandbox/income/fire_webhook:
    x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
    post:
      summary: Plaid Manually fire an Income webhook
      tags:
        - Plaid
      externalDocs:
        url: /api/sandbox/#sandboxincomefire_webhook
      operationId: sandboxIncomeFireWebhook
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxIncomeFireWebhookResponse'
              examples:
                examp

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