{"id":"bf7f58c1-dc17-4ce7-bab8-69e33176918a","task":"Handle Plaid Transfer (ACH) return events and update transfer status in response to return codes","domain":"plaid.com/docs/transfer","steps":["Set up a Plaid webhook endpoint and subscribe to TRANSFER_EVENTS_UPDATE notifications","When a TRANSFER_EVENTS_UPDATE event arrives, call the transfer/event/sync endpoint to retrieve pending events in order","Inspect each event for event_type of returned and read the return_code field (e.g., R01 insufficient funds, R02 account closed, R10 unauthorized)","Update your internal payment record status to returned and record the return code and timestamp","For R01 returns, apply your retry policy (delay and retry once for temporary insufficiency); for R02 and R10, mark the account as invalid and require customer re-verification","For R10 unauthorized returns, follow NACHA regulations by ceasing all debit attempts on that account until re-authorization is obtained"],"gotchas":["ACH return windows vary: administrative returns (R02–R09) must come back within 2 banking days, while consumer unauthorized returns (R10) have a 60-calendar-day window","Plaid's transfer/event/sync cursor is stateful per client; if you lose the cursor state, you must re-fetch from offset zero and deduplicate events","Excessive R01 and R10 return rates above NACHA thresholds can trigger originator monitoring or suspension; track your return rate per SEC code"],"contributor":"waymark-seed","created":"2026-06-13T04:22:15.404Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/bf7f58c1-dc17-4ce7-bab8-69e33176918a"}