Setup
Set up Plaid Link and your OAuth redirect URI
How Plaid Link works in WordPress, how to register an HTTPS OAuth redirect URI in the Plaid Dashboard, the token lifetimes, and Content Security Policy rules.
Last updated by the PluginLoom team
Plaid Link is the window where users pick their bank and log in. To make it work for every bank, including large US banks that use OAuth, you must add your site's redirect URI to the allowlist in the Plaid Dashboard and complete Plaid's OAuth registration steps.
How does the Link flow work?#
Plaid describes the flow in its Link docs (opens in a new tab). Every Plaid integration, BankBridge included, follows these steps.
- Your server calls
/link/token/createand gets a short-livedlink_token. - The page opens Link with that token, using Plaid's script from
https://cdn.plaid.com/link/v2/stable/link-initialize.js. - The user picks a bank, logs in and chooses accounts.
- Link calls
onSuccesswith a temporarypublic_token. - Your server exchanges it at
/item/public_token/exchangefor a permanentaccess_tokenand anitem_id.
| Token | Lifetime | Where it lives |
|---|---|---|
link_token | 4 hours, or 30 minutes in update mode | Created on the server, used once in the browser |
public_token | 30 minutes | Browser, then sent to the server |
access_token | Does not expire; revoke with /item/remove | Server only, stored securely |
Sources: Link (opens in a new tab), Items API (opens in a new tab).
Why do I need a redirect URI?#
Many banks send users to their own website or app to log in, then back to you. Plaid calls this OAuth. Plaid's OAuth guide (opens in a new tab) says OAuth is required for US, EU and UK integrations that connect to banks, and that without it users cannot connect at institutions that require OAuth, "which includes many of the largest banks in the US." Canadian institutions do not currently use OAuth.
How do I register the redirect URI?#
Add the exact URL of the page that hosts your Link button to Plaid's allowlist.
- Decide which page users return to after the bank login. Use the page that opens Link, or a dedicated return page.
- In the Plaid Dashboard, open Allowed redirect URIs on the API page (opens in a new tab) and add that URL.
- Use the same URL in BankBridge's redirect URI setting, so it is sent as
redirect_uriwhen the link token is created. - Test with a Sandbox OAuth institution.
Plaid's rules for redirect URIs:
| Rule | Detail |
|---|---|
| HTTPS | Required. Only Sandbox allows http for localhost |
No # | Hash routing is not supported |
| No query string | Do not add query parameters to the redirect_uri you send |
| Wildcards | Allowed on the Dashboard allowlist for domains you control, never in the redirect_uri itself |
| Custom URI schemes | Not supported |
What else does Plaid require for OAuth banks?#
Plaid lists extra steps before real OAuth connections work. From the OAuth guide (opens in a new tab):
- Get Production access (a paid plan or the Trial plan).
- Complete the registration requirements in the Dashboard compliance center.
- Fill in your application display information. Plaid says some US banks reject apps with an empty profile.
- For US and Canada, sign the latest Master Services Agreement and get your security questionnaire approved.
- Wait for OAuth approval, which you can track on the OAuth institution page.
Chase requires the security questionnaire for Production access unless you are on a Trial plan. Plaid's changelog notes that from May 20, 2026, Trial plan customers get immediate access to all OAuth institutions.
What happens when the user comes back from the bank?#
When the bank sends the user back, the page reopens Link with receivedRedirectUri set to the full URL they returned on, using the same link_token. Plaid says the returned URL must not carry extra query parameters or fragments beyond what the bank added. Plaid says reinitializing is required for webviews and recommended for mobile web. On desktop web it is not required.
Will my security plugin block Link?#
It can. If your site sends a Content Security Policy header, Plaid's web docs (opens in a new tab) say it must allow:
| Directive | Must allow |
|---|---|
default-src, frame-src | https://cdn.plaid.com/ |
script-src | The Link script URL, with 'unsafe-inline' or a nonce |
style-src (and -elem, -attr) | 'unsafe-inline' or a nonce, depending on your policy |
connect-src | https://production.plaid.com/ or https://sandbox.plaid.com |
Plaid also says not to self-host or bundle the Link script. It must load from cdn.plaid.com. Turn off any optimization plugin setting that combines or delays that script.
Sources#
Checked October 23, 2026.
- Plaid, Link overview (opens in a new tab)
- Plaid, Link web SDK (opens in a new tab)
- Plaid, OAuth guide (opens in a new tab)
- Plaid, Items API (opens in a new tab)
- Plaid, Changelog (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?