POST /processor/signal/decision/report

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.

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
decision_outcome String No

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

Valid values:

  • "NOT_EVALUATED"
  • "APPROVE"
  • "TAKE_OTHER_RISK_MEASURES"
  • "REJECT"
  • "REVIEW"
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>

initiated Boolean Yes

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.

client_transaction_id String Yes

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

payment_method String No

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.

Valid values:

  • "NEXT_DAY_ACH"
  • "SAME_DAY_ACH"
  • null
  • "STANDARD_ACH"
  • "MULTIPLE_PAYMENT_METHODS"
days_funds_on_hold Integer No

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.

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.

amount_instantly_available Number No

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

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.