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.
- Copy the webhook URL from BankBridge settings.
- Make sure your site has a valid SSL certificate. Plaid's webhook docs (opens in a new tab) say HTTPS endpoints need one.
- Make sure no login wall, maintenance mode or firewall rule blocks POST requests to it.
- 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:
- The JWT header
algmust beES256. - Fetch the public key with
/webhook_verification_key/getusing thekid, and cache it. - Verify the signature.
- Reject the webhook if
iatis more than 5 minutes old. - Compare the
request_body_sha256claim 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?#
| Type | Code | What it means | What to do |
|---|---|---|---|
| ITEM | ERROR | The connection is in an error state | Ask the user to reconnect (update mode) |
| ITEM | PENDING_DISCONNECT | Connection will be cut in about 7 days (US/CA) | Ask the user to reconnect before then |
| ITEM | PENDING_EXPIRATION | Consent expires in 7 days (UK/EU) | Ask the user to reconnect |
| ITEM | USER_PERMISSION_REVOKED | The user revoked access | Stop using the Item; remove it |
| ITEM | LOGIN_REPAIRED | The Item fixed itself | Clear any reconnect prompt |
| ITEM | NEW_ACCOUNTS_AVAILABLE | Plaid found a new account | Optionally offer to add it |
| TRANSACTIONS | SYNC_UPDATES_AVAILABLE | New transaction data is ready | Call /transactions/sync |
| TRANSFER | TRANSFER_EVENTS_UPDATE | A transfer changed status | Sync transfer events |
| TRANSFER | RECURRING_NEW_TRANSFER | A recurring transfer created a payment | Record it |
| TRANSFER | RECURRING_TRANSFER_SKIPPED | A scheduled payment failed its checks | Contact 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, Webhooks (opens in a new tab)
- Plaid, Webhook verification (opens in a new tab)
- Plaid, Items API (opens in a new tab)
- Plaid, Transactions (opens in a new tab)
- Plaid, Recurring transfers (opens in a new tab)
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?