> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tight.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Plaid Integration

If you have implemented your own [Plaid Integration](/v5.0/integrations/banking/plaid/integrating-plaid), then you will also want to take advantage of the Tight Embedded experience's `registerPlaidLinkListener` functionality. By registering a listener, the Tight Embedded experience's existing Plaid-related CTAs will invoke the callback function you provide, so that you can route the user to your own Plaid Link-related UI.

To register the listener, simply add the following line of JS to be ran once after `Hurdlr.init({...})`:

```javascript theme={null}
Hurdlr.registerPlaidLinkListener(myPlaidLinkCallback);
```

Whenever a user presses a Plaid Link CTA in Tight's Embedded experience, `myPlaidLinkCallback` will be invoked, with a JSON object as the single argument, containing the following attributes:

| Field            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Format                                                                                                                                                |
| :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |
| type             | Type of Plaid Link CTA that was pressed by your user. If PLAID\_LINK\_RESET then you will need to open [Plaid Link Update Mode](https://plaid.com/docs/link/update-mode/). If PLAID\_LINK\_RELINK, then you will need to [unlink the user's Plaid Item](https://plaid.com/docs/api/items/#itemremove), and ask them to link again. If PLAID\_LINK\_UNLINK, then you will need to [unlink the user's Plaid Item](https://plaid.com/docs/api/items/#itemremove). | Must be one of the following enumerations: `Hurdlr.PLAID_LINK_NEW`, `Hurdlr.PLAID_LINK_RESET`, `Hurdlr.PLAID_LINK_RELINK`, `Hurdlr.PLAID_LINK_UNLINK` |
| errorCode        | Plaid Item Error code. Only populated if type is `Hurdlr.PLAID_LINK_RESET` or `Hurdlr.PLAID_LINK_RELINK`. Useful for debugging purposes.                                                                                                                                                                                                                                                                                                                       | Must be one of [Plaid's Item Errors](https://plaid.com/docs/errors/item/)                                                                             |
| plaidAccessToken | Your user's Plaid access\_token; only populated if type is `Hurdlr.PLAID_LINK_RESET`, `Hurdlr.PLAID_LINK_RELINK`, or `Hurdlr.PLAID_LINK_UNLINK`.                                                                                                                                                                                                                                                                                                               | Any string                                                                                                                                            |
| screen           | Screen in the Hurdlr Embedded experience where the user initiated Plaid Link. Useful for analytics and/or custom routing in your app.                                                                                                                                                                                                                                                                                                                          | Any string                                                                                                                                            |

An example of the arguments passed to `myPlaidLinkCallback` for an item requiring a [Plaid Link Update](https://plaid.com/docs/link/update-mode/) is shown below:

```json theme={null}
{
  type: "PLAID_LINK_RESET", // compare to Hurdlr.PLAID_LINK_RESET
  errorCode: "ITEM_LOGIN_REQUIRED",
  plaidAccessToken: "YOUR_USERS_PLAID_ACCESS_TOKEN",
  screen: "expenseDash"
}
```

Contact us directly at [api@tight.com](mailto:api@tight.com) should you need any help understanding how to use Plaid listeners with the Tight Embedded experience.
