POST /processor/signal/evaluate

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

/signal/evaluate is used with Rulesets that are configured on the end customer Dashboard can can be used with either the Signal Transaction Scores product 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 if Signal Transaction Scores is being added to an existing Item for the first time, or when using a Balance-only ruleset. This is because Plaid must communicate directly with the institution to request data.

Servers

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Request body fields

Name Type Required Description
device Object No

Details about the end user's device. These fields are optional, but strongly recommended to increase the accuracy of results when using Signal Transaction Scores. When using a Balance-only Ruleset, these fields are ignored if the Signal Addendum has been signed; if it has not been signed, using these fields will result in an error.

device.ip_address String No

The IP address of the device that initiated the transaction

device.user_agent String No

The user agent of the device that initiated the transaction (e.g. "Mozilla/5.0")

default_payment_method String No

The default ACH or non-ACH payment method to complete the transaction. 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

client_id String No

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.

processor_token String Yes

The processor token obtained from the Plaid integration partner. Processor tokens are in the format: processor-<environment>-<identifier>

user Object No

Details about the end user initiating the transaction (i.e., the account holder). These fields are optional, but strongly recommended to increase the accuracy of results when using Signal Transaction Scores. When using a Balance-only ruleset, if the Signal Addendum has been signed, these fields are ignored; if the Addendum has not been signed, using these fields will result in an error.

user.name Object No

The user's legal name

user.name.family_name String No

The user's family name / surname

user.name.prefix String No

The user's name prefix (e.g. "Mr.")

user.name.given_name String No

The user's given name. If the user has a one-word name, it should be provided in this field.

user.name.middle_name String No

The user's middle name

user.name.suffix String No

The user's name suffix (e.g. "II")

user.email_address String No

The user's email address.

user.address Object No

Data about the components comprising an address.

user.address.region String No

The region or state Example: "NC"

user.address.postal_code String No

The postal code

user.address.country String No

The ISO 3166-1 alpha-2 country code

user.address.street String No

The full street address Example: "564 Main Street, APT 15"

user.address.city String No

The full city name

user.phone_number String No

The user's phone number, in E.164 format: +{countrycode}{number}. For example: "+14151234567"

amount Number Yes

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

ruleset_key String No

The key of the ruleset to use for this transaction. You can configure a ruleset using the Plaid Dashboard, under Signal->Rules. If not provided, for customers who began using Signal Transaction Scores before October 15, 2025, by default, no ruleset will be used; for customers who began using Signal Transaction Scores after that date, or for Balance customers, the default ruleset will be used. For more details, or to opt out of using a ruleset, see Signal Rules.

client_transaction_id String Yes

The unique ID that you would like to use to refer to this transaction. For your convenience mapping your internal data, you could use your internal ID/identifier for this transaction. The max length for this field is 36 characters.

user_present Boolean No

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).

is_recurring Boolean No

true if the ACH transaction is a recurring transaction; false otherwise

secret String No

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.

client_user_id String No

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.

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.