After linking a user's bank account via Plaid Link and obtaining an access_token and account_id, POST /signal/evaluate before creating any ACH debit transfer; include the access_token, account_id, client_transaction_id (your idempotency key), amount, and user identity fields
Parse the evaluate response: scores.customer_initiated_return_risk.score (0–99) and scores.bank_initiated_return_risk.score indicate likelihood of a return; recommended_action (PROCEED, CAUTION, BLOCK) provides a suggested decision
Map your internal risk thresholds to the Signal scores; a typical implementation PROCEEDs below a customer_initiated score threshold, CAUTIONs (adds a hold) in a middle band, and BLOCKs above a high-risk threshold
If you proceed with a transfer, call POST /signal/decision/report immediately after originating the ACH to report your decision and the actual transfer ID; this feedback loop improves Signal model accuracy for your portfolio
Call POST /signal/return/report when an ACH return is received; include the client_transaction_id and the NACHA return code — this closes the feedback loop and is required by Plaid's Signal terms of service
Combine Signal scores with your own velocity rules (e.g., count of debits in last 30 days) for a layered risk decision; do not rely on Signal as the sole control
Known gotchas
Signal evaluate must be called before creating the transfer; calling it after origination provides no risk benefit and does not satisfy the Plaid terms requiring pre-origination evaluation
The recommended_action is advisory; Plaid does not block the transfer on your behalf — you must implement the blocking logic in your application based on the scores
Signal scores degrade in accuracy if /signal/return/report is not filed consistently; incomplete return reporting skews the model and will cause both false positives and false negatives over time
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp