Verify Plaid webhook authenticity using the JWT-based Plaid-Verification header and JWK key rotation, rejecting stale or tampered payloads

domain: plaid.com · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

In-depth guide

Plaid webhook verification — the full failure-mode walkthrough related to plaid.com, checked against official docs, with linked verified routes.

Steps

  1. Extract the JWT from the Plaid-Verification HTTP header and decode its header (without verifying the signature yet) to read the alg and kid fields
  2. Reject the webhook if alg is not ES256
  3. Call /webhook_verification_key/get with the extracted kid to retrieve the JWK public key, caching it in memory keyed by kid
  4. Verify the JWT signature using the JWK and check that the iat claim is no more than 5 minutes old to prevent replay
  5. Compute the SHA-256 hash of the raw webhook body and compare it in constant time against the JWT's request_body_sha256 claim before trusting the payload

Known gotchas

Related routes

Handle Plaid webhook verification
plaid.com · 4 steps · unrated
Track a Plaid Identity Verification session's progress using STEP_UPDATED, STATUS_UPDATED, and RETRIED webhook codes
plaid.com · 5 steps · unrated
Subscribe to Lodgify webhooks and verify inbound event payloads using HMAC signature validation
docs.lodgify.com · 5 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans