v51

latestOpenAPI 3.0.0raw.githubusercontent.com2026-07-313352,3122.9 MB
plaid

Evaluate a planned ACH transaction

Use /signal/evaluate to evaluate a planned ACH transaction to get a return risk assessment and additional risk signals.

Before using /signal/evaluate, you must first create a ruleset in the Dashboard under Signal->Rules.

/signal/evaluate can be used with either Signal Transaction Scores or the Balance product. Which product is used will be determined by the ruleset_key that you provide. For more details, see Signal Rules.

Note: This request may have higher latency when using a Balance-only ruleset. This is because Plaid must communicate directly with the institution to request data. Balance-only rulesets may have latency of up to 30 seconds or more; if you encounter errors, you may find it necessary to adjust your timeout period when making requests.

post/signal/evaluate

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.

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.

access_tokenstring required

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

account_idstring required

The Plaid account_id of the account that is the funding source for the proposed transaction. The account_id is returned in the /accounts/get endpoint as well as the onSuccess callback metadata.

This will return an INVALID_ACCOUNT_ID error if the account has been removed at the bank or if the account_id is no longer valid.

client_transaction_idstring required

The unique ID that you would like to use to refer to this evaluation attempt - for example, a payment attempt ID. You will use this later to debug this evaluation, and/or report an ACH return, etc. The max length for this field is 36 characters. The client_transaction_id also functions as an idempotency key; calling /signal/evaluate with a previously used client_transaction_id will return the results of the previous evaluation rather than triggering a fresh evaluation.

amountnumber double required

The transaction amount, in USD (e.g. 102.05)

user_presentboolean nullable

true if the end user is present while initiating the ACH transfer and the endpoint is being called; false otherwise (for example, when the ACH transfer is scheduled and the end user is not present, or you call this endpoint after the ACH transfer but before submitting the Nacha file for ACH processing). When using a Balance-only ruleset, this field is ignored. This field is not currently used as part of Signal Transaction Score evaluations, but may be used in the future.

client_user_idstring

A unique ID that identifies the end user in your system. This ID is used to correlate requests by a user with multiple Items. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.

is_recurringboolean nullable

Use true if the ACH transaction is a part of recurring schedule (for example, a monthly repayment); false otherwise. When using a Balance-only ruleset, this field is ignored.

default_payment_methodstring nullable

The default ACH payment method to complete the transaction. When using a Balance-only ruleset, this field is ignored. SAME_DAY_ACH: Same Day ACH by Nacha. The debit transaction is processed and settled on the same day. STANDARD_ACH: Standard ACH by Nacha. MULTIPLE_PAYMENT_METHODS: If there is no default debit rail or there are multiple payment methods. Possible values: SAME_DAY_ACH, STANDARD_ACH, MULTIPLE_PAYMENT_METHODS

risk_profile_keystring nullable

Specifying risk_profile_key is deprecated. Please provide ruleset instead.

ruleset_keystring nullable

The key of the ruleset to use for evaluating this transaction. You can create a ruleset using the Plaid Dashboard, under Signal->Rules. If not provided, for all new customers as of October 15, 2025, the default ruleset will be used. For existing Signal Transaction Scores customers as of October 15, 2025, by default, no ruleset will be used if the ruleset_key is not provided. For more information, or to opt out of using rulesets, see Signal Rules.

Response

OK

request_idstring required

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