Skip to content
pluginloom

Setup

Plaid webhooks in BankBridge

Set a Plaid webhook URL for WordPress, how Plaid retries and signs webhooks, the Item and Transfer codes that matter, and how to test them in Sandbox.

Last updated by the PluginLoom team

A webhook is a message Plaid sends to your site when something changes, such as a bank login expiring or a transfer settling. Plaid sends webhooks to the URL set in the webhook field when a link token is created, so your BankBridge webhook URL needs to be public, on HTTPS, and fast to answer.

How do I set the webhook URL?#

Use the webhook URL that BankBridge shows in its settings. It must be reachable from the internet.

  1. Copy the webhook URL from BankBridge settings.
  2. Make sure your site has a valid SSL certificate. Plaid's webhook docs (opens in a new tab) say HTTPS endpoints need one.
  3. Make sure no login wall, maintenance mode or firewall rule blocks POST requests to it.
  4. Fire a test webhook in Sandbox (see below) and check that it arrives.

Some webhooks, such as Identity Verification, are set in the Plaid Dashboard instead. You can see delivery logs and response codes in the Dashboard's Logs section.

Which IP addresses send Plaid webhooks?#

Plaid lists four: 52.21.26.131, 52.21.47.157, 52.41.247.19 and 52.88.82.239. Plaid notes these may change, so allowlisting by IP alone can break delivery later. Signature verification is the better check.

How are webhooks verified?#

Plaid signs each webhook with a JWT in the Plaid-Verification header. Plaid's verification guide (opens in a new tab) gives these checks:

  1. The JWT header alg must be ES256.
  2. Fetch the public key with /webhook_verification_key/get using the kid, and cache it.
  3. Verify the signature.
  4. Reject the webhook if iat is more than 5 minutes old.
  5. Compare the request_body_sha256 claim to the SHA-256 of the raw body, byte for byte.

Plaid calls verification optional. We recommend it for any site that takes payments.

What if my site is down?#

Plaid retries. If your endpoint returns a non-2xx response or takes longer than 10 seconds, Plaid retries for up to 24 hours, starting at 30 seconds and multiplying the delay by 4 each time. Most 4xx responses are treated as permanent failures; 408, 425 and 429 are retried. Plaid warns that webhooks are lost if downtime lasts longer than the retry window, so it also recommends polling as a fallback.

Keep the receiving page light. A slow caching or security plugin on that URL can push the response past 10 seconds.

Which webhooks matter most?#

TypeCodeWhat it meansWhat to do
ITEMERRORThe connection is in an error stateAsk the user to reconnect (update mode)
ITEMPENDING_DISCONNECTConnection will be cut in about 7 days (US/CA)Ask the user to reconnect before then
ITEMPENDING_EXPIRATIONConsent expires in 7 days (UK/EU)Ask the user to reconnect
ITEMUSER_PERMISSION_REVOKEDThe user revoked accessStop using the Item; remove it
ITEMLOGIN_REPAIREDThe Item fixed itselfClear any reconnect prompt
ITEMNEW_ACCOUNTS_AVAILABLEPlaid found a new accountOptionally offer to add it
TRANSACTIONSSYNC_UPDATES_AVAILABLENew transaction data is readyCall /transactions/sync
TRANSFERTRANSFER_EVENTS_UPDATEA transfer changed statusSync transfer events
TRANSFERRECURRING_NEW_TRANSFERA recurring transfer created a paymentRecord it
TRANSFERRECURRING_TRANSFER_SKIPPEDA scheduled payment failed its checksContact the payer; Plaid does not retry it

Sources: Items API (opens in a new tab), Transactions (opens in a new tab), Recurring transfers (opens in a new tab).

Can webhooks arrive twice or out of order?#

Yes. Plaid tells developers to handle duplicate and out-of-order webhooks and to make actions idempotent. Plaid also offers /beta/webhook_events/list to fetch the last 7 days of webhooks for reconciliation.

How do I test webhooks?#

Use Sandbox. Webhooks fire normally there, except some Transfer webhooks. Plaid provides /sandbox/item/fire_webhook and /sandbox/transfer/fire_webhook to send test webhooks on demand.

Sources#

Checked October 23, 2026.

Plaid is a trademark of Plaid Inc. BankBridge is an independent plugin and is not affiliated with or endorsed by Plaid.

Was this page helpful?