BYOI Plaid is a setting for the full application. It applies to all users of your application. Your users do not need a new permission, and you do not change your bank linking code.
Terms on this page
How BYOI Plaid works
- You add the
BYOI_PLAIDpermission to your application. - The developer registers your Plaid client ID and secret with
registerPlaidIntegration. - Fluz sends a test request to Plaid to validate the credentials. Then Fluz stores them in an encrypted vault.
- BYOI Plaid starts immediately for all users of your application.
- Each new bank link that a user makes through your application uses your Plaid credentials.
createPlaidLinkToken, completePlaidLink, and the other operations in Linking Bank Account via Plaid.
Which credentials each bank link uses
Each bank link always uses the Plaid credentials that created it.
Fluz can also use the bank links that your credentials created. For example, Fluz checks the balance of these bank accounts. For these requests, Fluz uses your Plaid credentials.
Before you start
Environments
Each Fluz environment uses one Plaid environment. Register your credentials in each Fluz environment separately. A registration in one environment does not apply to the other environment.Step 1: Add the BYOI_PLAID permission to your application
- In the developer dashboard, open Your apps.
- Select your application.
- Open the permissions tab that matches the Fluz account of the developer:
- For a consumer account, open the Permissions tab.
- For a business account, open the Business permissions tab.
- Select Link bank accounts through your own Plaid integration. This is the
BYOI_PLAIDpermission in the Update Account Info group. - Save the application.
Step 2: Get an access token for the developer
The Plaid integration operations need a user access token with these properties:- The token belongs to the developer of the application.
- The token includes the
BYOI_PLAIDscope. - The token is a Bearer token. Basic auth is not accepted.
- Send the developer through the OAuth grant flow. See Client-Facing OAuth Grant Flow.
- Log in as the developer and approve the requested permissions. The consent screen includes
BYOI_PLAIDbecause you added it in Step 1. - Exchange the authorization code for tokens. See Exchange an OAuth Code.
- Make sure that the
scopelist in the token response includesBYOI_PLAID.
BYOI_PLAID, the old grant does not include it. Do the OAuth grant flow again.
Send the token in each request:
Step 3: Register your Plaid credentials
Input fields
Response fields
The API never returns your client ID or your secret.
Values of change
Registration rules
- Each application can have one active Plaid integration in each environment.
- Fluz validates the credentials with Plaid before it saves them. If Plaid rejects them, Fluz saves nothing.
- Registration turns on BYOI Plaid for the application. The change starts with the next request of each user.
Read your Plaid integration
null.
Replace your Plaid secret
Use this procedure when you rotate your Plaid secret. Your existing bank links continue to work.- In the Plaid Dashboard, create a new secret for the same client ID.
- Call
registerPlaidIntegrationwith the sameclientIdand the newsecret. - Make sure that
changeisUPDATED. - In the Plaid Dashboard, delete the old secret.
Change your Plaid client ID
Fluz does not replace an active client ID with a different client ID. If you try, Fluz returnsPLAID_INTEGRATION_CLIENT_ID_MISMATCH.
- Call
disablePlaidIntegration. - Call
registerPlaidIntegrationwith the newclientIdandsecret. - Make sure that
changeisCREATED.
Disable BYOI Plaid
change is DISABLED. If no integration was active, change is UNCHANGED.
After you disable BYOI Plaid:
- New bank links use Fluz Plaid.
- Bank links made with your credentials stop working. Fluz cannot get new balances or transactions for them, and the users cannot relink them.
- Fluz does not process Plaid webhooks for bank links made with your credentials.
change value is REACTIVATED, and the old bank links work again.
Link a bank account
When BYOI Plaid is on, the linking flow does not change. Follow Linking Bank Account via Plaid:- Call
createPlaidLinkTokenwith an emptyinput. - Open Plaid Link with the returned
linkToken. - Send the
public_tokenfrom Plaid LinkonSuccesstocompletePlaidLink. - Store the returned
platformItemId.
completePlaidLink returns only the bank accounts that your application can use. See the table in Which credentials each bank link uses.
Relink a disconnected bank link
A bank link can disconnect, for example when a user changes the bank password. Applications with a Plaid integration use two operations to repair a bank link:createPlaidRelinkTokencreates a Plaid update-mode Link token with the credentials that created the bank link.completePlaidRelinkconfirms the repair with Plaid and updates the bank data. It does not need apublicToken.
platformItemId.
-
Create the relink token.
-
Open Plaid Link with the returned
linkToken. The value ofmodeisRELINK. -
When Plaid Link calls
onSuccess, complete the relink. -
If you get
PLAID_ITEM_STILL_DISCONNECTED, Plaid has not finished the repair. Wait a short time, then callcompletePlaidRelinkagain.
createPlaidLinkToken and completePlaidLink with platformItemId), it continues to work. If Plaid rejects the publicToken of that flow, Fluz completes the relink through the bank link automatically.
Webhooks
You do not need a webhook endpoint. When Fluz creates a Link token with your credentials, Fluz sets the Plaid webhook URL to a Fluz URL for your integration. Plaid sends the updates for these bank links to Fluz. Do not change the webhook URL of these bank links, for example with the Plaid/item/webhook/update endpoint. If you change it, Fluz stops receiving updates for the bank link.
Plaid requests made with your credentials
Fluz sends these Plaid requests with your credentials. Plaid charges your Plaid account for them, as specified in your Plaid contract.Errors
Each GraphQL error has a Fluz error code inextensions.code. BYOI Plaid errors also have a specific value in extensions.reason.
Errors from the Plaid integration operations
Errors from bank linking operations
If
createPlaidLinkToken fails after you register, make sure that your client ID has access to Auth, Transactions, Identity, and Signal in the matching Plaid environment. Also make sure that you do not send deviceOs.
Security
- Fluz stores your client ID and secret in an encrypted vault. The API never returns them.
- The API never returns Plaid access tokens, Plaid public tokens, bank account numbers, or routing numbers.
- Only the developer of the application can register, read, or disable its Plaid integration.
Related pages
- Linking Bank Account via Plaid
- Relinking Bank Accounts
- Application Scopes
- Configure OAuth App
- Client-Facing OAuth Grant Flow