plaid

Fetch recurring transaction streams

The /transactions/recurring/get endpoint allows developers to receive a summary of the recurring outflow and inflow streams (expenses and deposits) from a user's checking, savings or credit card accounts. Additionally, Plaid provides key insights about each recurring stream including the category, merchant, last amount, and more. Developers can use these insights to build tools and experiences that help their users better manage cash flow, monitor subscriptions, reduce spend, and stay on track with bill payments.

This endpoint is offered as an add-on to Transactions. To request access to this endpoint, submit a product access request or contact your Plaid account manager.

This endpoint can only be called on an Item that has already been initialized with Transactions (either during Link, by specifying it in /link/token/create; or after Link, by calling /transactions/get or /transactions/sync).

When using Recurring Transactions, for best results, make sure to use the days_requested parameter to request at least 180 days of history when initializing Items with Transactions. Once all historical transactions have been fetched, call /transactions/recurring/get to receive the Recurring Transactions streams and subscribe to the RECURRING_TRANSACTIONS_UPDATE webhook. To know when historical transactions have been fetched, if you are using /transactions/sync listen for the SYNC_UPDATES_AVAILABLE webhook and check that the historical_update_complete field in the payload is true. If using /transactions/get, listen for the HISTORICAL_UPDATE webhook.

After the initial call, you can call the /transactions/recurring/get endpoint at any point in the future to retrieve the latest summary of recurring streams. Listen to the RECURRING_TRANSACTIONS_UPDATE webhook to be notified when new updates are available.

post/transactions/recurring/get

Request body

client_idstring

Your Plaid API client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.

access_tokenstring required

The access token associated with the Item for which data is being requested.

secretstring

Your Plaid API secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.

account_idsstring[]

An optional list of account_ids to retrieve for the Item. Retrieves all active accounts on item if no account_ids are provided.

Note: An error will be returned if a provided account_id is not associated with the Item.

Response

OK

updated_datetimestring date-time required

Timestamp in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ) indicating the last time transaction streams for the given account were updated on

personal_finance_category_version'v1' | 'v2'

Indicates which version of the personal finance category taxonomy is being used. View PFCv2 and PFCv1 taxonomies.

If you enabled Transactions or Enrich before December 3, 2025 you will receive the v1 taxonomy by default and may request v2 by explicitly setting this field to v2 in the request.

If you enabled Transactions or Enrich on or after December 3, 2025, you may only receive the v2 taxonomy.

request_idstring required

A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.

Changes

Changed in 14 of the 52 revisions of this API.64032

    • added the new ASSETS_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new CRA_MONITORING_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new CREDIT_PROFILE_REPORT_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new ENCOMPASS_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new ENRICH_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new FRAUD_INSIGHTS_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new FREDDIE_MAC_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new LINK_DELIVERY_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new PROFILE_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new RECURRING_TRANSACTIONS_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new STATEMENTS_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new TRANSFER_RECURRING_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new TRANSFER_REFUND_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • added the new IDEMPOTENCY_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new BASE_REPORT_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    This revision also has 8 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • 465584b48c99164See the full diff
    • request property options/personal_finance_category_version was restricted to a list of enum values

      request-property-became-enum

    • added the new v1 enum value to the inflow_streams/items/personal_finance_category/version response property for the response status 200

      response-property-enum-value-added

    • added the new v1 enum value to the outflow_streams/items/personal_finance_category/version response property for the response status 200

      response-property-enum-value-added

    • added the new v1 enum value to the personal_finance_category_version response property for the response status 200

      response-property-enum-value-added

    • added the new v2 enum value to the inflow_streams/items/personal_finance_category/version response property for the response status 200

      response-property-enum-value-added

    • added the new v2 enum value to the outflow_streams/items/personal_finance_category/version response property for the response status 200

      response-property-enum-value-added

    • added the new v2 enum value to the personal_finance_category_version response property for the response status 200

      response-property-enum-value-added

    • added the new v1 enum value to the request property options/personal_finance_category_version

      request-property-enum-value-added

    • added the new v2 enum value to the request property options/personal_finance_category_version

      request-property-enum-value-added

    • added the optional property provided_account_subtypes to the response with the default status

      response-optional-property-added

    • added the optional property required_account_subtypes to the response with the default status

      response-optional-property-added

    This revision also has 4 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • removed the IDENTITY_ERROR enum value from the error_type response property for the response status default

      response-property-enum-value-removed

    • added the new IDENTITY_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new USER_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    This revision also has 4 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • added the new SIGNAL_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new optional request property options/personal_finance_category_version

      new-optional-request-property

    • added the optional property inflow_streams/items/personal_finance_category/version to the response with the 200 status

      response-optional-property-added

    • added the optional property outflow_streams/items/personal_finance_category/version to the response with the 200 status

      response-optional-property-added

    • added the optional property personal_finance_category_version to the response with the 200 status

      response-optional-property-added

    • the response property inflow_streams/items/category became nullable for the status 200

      response-property-became-nullable

    • the response property inflow_streams/items/category_id became nullable for the status 200

      response-property-became-nullable

    • the response property outflow_streams/items/category became nullable for the status 200

      response-property-became-nullable

    • the response property outflow_streams/items/category_id became nullable for the status 200

      response-property-became-nullable

  • 09cbc844491324See the full diff
    • added the new CHECK_REPORT_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • added the new CONSUMER_REPORT_ERROR enum value to the error_type response property for the response status default

      response-property-enum-value-added

    • response property inflow_streams/items/is_user_modified deprecated

      response-property-deprecated

    • response property inflow_streams/items/last_user_modified_datetime deprecated

      response-property-deprecated

    • response property outflow_streams/items/is_user_modified deprecated

      response-property-deprecated

    • response property outflow_streams/items/last_user_modified_datetime deprecated

      response-property-deprecated

    This revision also has 6 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog