v51

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

Report whether you initiated an ACH transaction

After you call /processor/signal/evaluate, Plaid will normally infer the outcome from your Signal Rules. However, if you are not using Signal Rules, if the Signal Rules outcome was REVIEW, or if you take a different action than the one determined by the Signal Rules, you will need to call /processor/signal/decision/report. This helps improve Signal Transaction Score accuracy for your account and is necessary for proper functioning of the rule performance and rule tuning capabilities in the Dashboard. If your effective decision changes after calling /processor/signal/decision/report (for example, you indicated that you accepted a transaction, but later on, your payment processor rejected it, so it was never initiated), call /processor/signal/decision/report again for the transaction to correct Plaid's records.

If you are using Plaid Transfer as your payment processor, you also do not need to call /processor/signal/decision/report, as Plaid can infer outcomes from your Transfer activity.

If using a Balance-only ruleset, this endpoint will not impact scores (Balance does not use scores), but is necessary to view accurate transaction outcomes and tune rule logic in the Dashboard.

post/processor/signal/decision/report

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.

processor_tokenstring required

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

client_transaction_idstring required

Must be the same as the client_transaction_id supplied when calling /processor/signal/evaluate

initiatedboolean required

true if the ACH transaction was initiated, false otherwise.

This field must be returned as a boolean. If formatted incorrectly, this will result in an INVALID_FIELD error.

days_funds_on_holdinteger nullable

The actual number of days (hold time) since the ACH debit transaction that you wait before making funds available to your customers. The holding time could affect the ACH return rate.

For example, use 0 if you make funds available to your customers instantly or the same day following the debit transaction, or 1 if you make funds available the next day following the debit initialization.

decision_outcome'APPROVE' | 'REVIEW' | 'REJECT' | 'TAKE_OTHER_RISK_MEASURES' | 'NOT_EVALUATED' nullable

The payment decision from the risk assessment.

APPROVE: approve the transaction without requiring further actions from your customers. For example, use this field if you are placing a standard hold for all the approved transactions before making funds available to your customers. You should also use this field if you decide to accelerate the fund availability for your customers.

REVIEW: the transaction requires manual review

REJECT: reject the transaction

TAKE_OTHER_RISK_MEASURES: for example, placing a longer hold on funds than those approved transactions or introducing customer frictions such as step-up verification/authentication

NOT_EVALUATED: if only logging the results without using them

payment_method'SAME_DAY_ACH' | 'NEXT_DAY_ACH' | 'STANDARD_ACH' | 'MULTIPLE_PAYMENT_METHODS' | 'null' nullable

The payment method to complete the transaction after the risk assessment. It may be different from the default payment method.

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.

amount_instantly_availablenumber double nullable

The amount (in USD) made available to your customers instantly following the debit transaction. It could be a partial amount of the requested transaction (example: 102.05).

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.