Many FinTechs already leverage Plaid to aggregate their users’ bank transactions. Tight lets you build directly on top of your Plaid integration, using your API keys.
Through Tight’s Plaid integration, your user’s transactions are pulled into Tight as soon as Plaid makes them available. All of those transactions are then run through Tight’s proprietary algorithms, which leverage the user’s business type, accountant best practices, and the behavior of similar businesses within the Hurdlr app’s 700k+ users.That data can then be instantly leveraged throughout Tight’s APIs, which include expense categorization, tax categorization, financial statements, tax estimates, tax reporting, tax filing, and many other features.You can also quickly and easily embed Tight’s white-labelled UI into your product, which automatically leverages the data from your Plaid integration.
In your Plaid Dashboard, to view your API keys, click on Team Settings -> Keys. Contact us directly at api@tight.com for instructions on how to securely share your Plaid keys.Our API team will confirm once your keys are live in the Tight API, so you can quickly move onto the next step.
If your product does not yet implement Plaid’s Link component, which allows your users to link their bank accounts, the Tight SDK “new implementation” allows you to do so quickly and easily. The steps outlined below will not only render Plaid’s Link UX but also take care of forwarding webhooks to the Tight API so that Tight will automatically ingest/categorize all transactions without any additional labor required from your team:a. Initialize the Tight SDKb. Add the following line of JS to be ran once after Hurdlr.init({...}):
c. When the user successfully links a bank, the successCallback will be invoked, and no additional actions need to be taken. For informative/logging purposes, the successCallback will contain a single integration object representing the new Plaid Item that was linked.d. When the user does not successfully link a bank, the exitCallback will be invoked. Tight takes care of the error handling, however for informative/logging purposes, the exitCallback will contain an error object representing the Plaid Error. This argument will be null if the user exited Plaid Link on their own without error.
As a best practice, to ensure the highest activation rate for your users, Tight recommends invoking the above UX during your product’s onboarding flow. Linking a bank account is very highly correlated with long-term retention rates.
Alternatively, if your product already incorporates Plaid Link, then you can easily connect your Plaid Items to the Tight API via the following “existing implementation” steps:a. In your existing Plaid Link Flow implementation, you will ultimately receive an access_token. To associate that access_token with your user’s Tight account, simply POST that access token to the /plaidAccessToken endpoint:
The above POST call can be repeated for as many institutions as needed by your user.b. When your user links their bank accounts via your Plaid Link flow, you will receive Plaid webhooks on your own server. Once you receive those webhooks on your server, to ensure the data available to you is automatically kept up to date, you should forward those webhooks to the Tight API.Item webhooks and Transaction webhooks from Plaid’s “sandbox” environment should be forwarded directly from your server to https://webhook.sandbox.hurdlr.com/plaid. For the “production” environment, they should be forwarded to https://webhook.prod.hurdlr.com/plaid.Contact us directly at api@tight.com for help in verifying that the webhooks are forwarding correctly.
After your user has linked their accounts in the Embeddable User Interface or after you POST the user’s Plaid access_token to the Tight API, Tight will automatically begin ingesting transactions from the user’s linked accounts. All of Tight’s Expense Tracking features will immediately become available to your user, both in the Embeddable User Interface and via API.Whether you are building your own UX from scratch or have some existing functionality that you are looking to enhance, the Tight API team is here to help. Don’t hesitate to email us at api@tight.com, and we would be glad to help you create and complete the best next steps for your product and vision.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Tight API","colors":{"primary":"#2ab2d1","light":"#2ad17b","dark":"#009c75"},"logo":{"light":"https://mintcdn.com/tight-7c882d74/g3bHUuD81P-TYOyV/logo/light.svg?fit=max\u0026auto=format\u0026n=g3bHUuD81P-TYOyV\u0026q=85\u0026s=7efc18a7fc4dff02d17ed0eb2de01e0c","dark":"https://mintcdn.com/tight-7c882d74/g3bHUuD81P-TYOyV/logo/dark.svg?fit=max\u0026auto=format\u0026n=g3bHUuD81P-TYOyV\u0026q=85\u0026s=59da536242351519afec1ab104b7d80c"},"favicon":"https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/favicon.svg?fit=max\u0026auto=format\u0026n=PBb8Gf8jW9PRt_Fg\u0026q=85\u0026s=1871b49a7fbf78ef4003d250529f1140","navbar":{"primary":{"type":"button","label":"Request Access","href":"https://www.tight.com/#get-started"}},"seo":{"metatags":{"canonical":"https://docs.tight.com"}},"integrations":{"ga4":{"measurementId":"G-64X67ZWYYY"}},"contextual":{"options":["claude","assistant","cursor","vscode","mcp","copy","chatgpt","perplexity","view"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tight-7c882d74","hasAudioNarration":false,"actualSubdomain":"tight-7c882d74","customDomains":["docs.tight.com"],"gitSource":{"type":"github","owner":"tight-embedded","repo":"traxdocs","deployBranch":"dev","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeb30dfd61fde81da2f4fc3","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API Reference","count":484},{"language":"default","tag":"Reference","count":481},{"language":"default","tag":"Company Management","count":177},{"language":"default","tag":"Guides","count":88},{"language":"default","tag":"Embedded UI","count":78},{"language":"default","tag":"Integrations","count":69},{"language":"default","tag":"Products","count":62},{"language":"default","tag":"Invoicing","count":45},{"language":"default","tag":"Banks","count":44},{"language":"default","tag":"Transactions","count":40}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#sidebar:has(~#content-container [data-page-title=\"Playground\"]){display:none}#content-container:has([data-page-title=\"Playground\"]){margin-left:0}#content-area:has([data-page-title=\"Playground\"]) div:has(.chat-assistant-floating-input){display:none}#sidebar-content a{width:auto}#navigation-items{width:100%}"}],"page":{"pagePath":"v5.0/integrations/banking/plaid/integrating-plaid","slug":"/v5.0/integrations/banking/plaid/integrating-plaid","pageMetadata":{"title":"Integrating Plaid","slug":"plaid-integration","excerpt":"","hidden":false,"createdAt":"Tue Sep 21 2021 14:48:21 GMT+0000 (Coordinated Universal Time)","updatedAt":"Mon Apr 07 2025 16:46:15 GMT+0000 (Coordinated Universal Time)","description":null,"href":"/v5.0/integrations/banking/plaid/integrating-plaid","hiddenSetByFrontmatter":true},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Many FinTechs already leverage `,_jsx(_components.a,{href:`https://plaid.com/`,children:`Plaid`}),` to aggregate their users’ bank transactions. Tight lets you build directly on top of your Plaid integration, using your API keys.`]}),`\n`,_jsx(Heading,{level:`2`,id:`1-how-it-works`,children:`1. How it works`}),`\n`,_jsx(_components.p,{children:`Through Tight’s Plaid integration, your user’s transactions are pulled into Tight as soon as Plaid makes them available. All of those transactions are then run through Tight’s proprietary algorithms, which leverage the user’s business type, accountant best practices, and the behavior of similar businesses within the Hurdlr app’s 700k+ users.`}),`\n`,_jsxs(_components.p,{children:[`That data can then be instantly leveraged throughout Tight’s APIs, which include `,_jsx(_components.a,{href:`/v5.0/products/bank-transactions/expenses/business-categorization`,children:`expense categorization`}),`, `,_jsx(_components.a,{href:`/v5.0/products/bank-transactions/expenses/tax-categorization`,children:`tax categorization`}),`, `,_jsx(_components.a,{href:`/v5.0/products/financial-statements`,children:`financial statements`}),`, `,_jsx(_components.a,{href:`/v5.0/products/taxes/tax-estimates/tax-estimates`,children:`tax estimates`}),`, `,_jsx(_components.a,{href:`/v5.0/products/tax/tax-reporting`,children:`tax reporting`}),`, `,_jsx(_components.a,{href:`/v5.0/products/taxes/tax-filing`,children:`tax filing`}),`, and many other features.`]}),`\n`,_jsxs(_components.p,{children:[`You can also quickly and easily embed `,_jsx(_components.a,{href:`/v5.0/getting-started/quickstart/embedded-ui`,children:`Tight’s white-labelled UI`}),` into your product, which automatically leverages the data from your Plaid integration.`]}),`\n`,_jsx(Heading,{level:`2`,id:`2-creating-a-plaid-team`,children:`2. Creating a Plaid Team`}),`\n`,_jsxs(_components.p,{children:[`If you haven’t already done so, you should `,_jsx(_components.a,{href:`https://dashboard.plaid.com/signup`,children:`create a Plaid account`}),`, and then create a Team for your app. Additionally, in your Plaid Dashboard, in the `,_jsx(_components.a,{href:`https://plaid.com/docs/link/customization/#link-customization-settings`,children:`Link Customization Settings`}),`, be sure to enable the `,_jsx(_components.a,{href:`https://plaid.com/docs/link/customization/#account-select`,children:`Account Select`}),` functionality.`]}),`\n`,_jsx(Heading,{level:`2`,id:`3-securely-sharing-your-plaid-keys`,children:`3. Securely sharing your Plaid keys`}),`\n`,_jsxs(_components.p,{children:[`In your Plaid Dashboard, to view your API keys, click on Team Settings -> Keys. Contact us directly at `,_jsx(_components.a,{href:`mailto:api@tight.com`,children:`api@tight.com`}),` for instructions on how to securely share your Plaid keys.`]}),`\n`,_jsx(_components.p,{children:`Our API team will confirm once your keys are live in the Tight API, so you can quickly move onto the next step.`}),`\n`,_jsx(Heading,{level:`2`,id:`4-plaid-link-new-implementation`,children:`4. Plaid Link (new implementation)`}),`\n`,_jsx(_components.p,{children:`If your product does not yet implement Plaid’s Link component, which allows your users to link their bank accounts, the Tight SDK “new implementation” allows you to do so quickly and easily. The steps outlined below will not only render Plaid’s Link UX but also take care of forwarding webhooks to the Tight API so that Tight will automatically ingest/categorize all transactions without any additional labor required from your team:`}),`\n`,_jsxs(_components.p,{children:[`a. `,_jsx(_components.a,{href:`/v5.0/getting-started/quickstart/embedded-ui#2-embedding-hurdlrs-white-labelled-ui-hurdlr-sdk`,children:`Initialize the Tight SDK`})]}),`\n`,_jsxs(_components.p,{children:[`b. Add the following line of JS to be ran once after `,_jsx(_components.code,{children:`Hurdlr.init({...})`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Hurdlr.renderPlaidLink(successCallback, exitCallback);`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`c. When the user successfully links a bank, the `,_jsx(_components.code,{children:`successCallback`}),` will be invoked, and no additional actions need to be taken. For informative/logging purposes, the `,_jsx(_components.code,{children:`successCallback`}),` will contain a single `,_jsxs(_components.a,{href:`/v5.0/integrations/overview`,children:[_jsx(_components.code,{children:`integration`}),` object`]}),` representing the new Plaid Item that was linked.`]}),`\n`,_jsxs(_components.p,{children:[`d. When the user does not successfully link a bank, the `,_jsx(_components.code,{children:`exitCallback`}),` will be invoked. Tight takes care of the error handling, however for informative/logging purposes, the `,_jsx(_components.code,{children:`exitCallback`}),` will contain an `,_jsx(_components.code,{children:`error`}),` object representing the `,_jsx(_components.a,{href:`https://plaid.com/docs/errors/#error-schema`,children:`Plaid Error`}),`. This argument will be `,_jsx(_components.code,{children:`null`}),` if the user exited Plaid Link on their own without error.`]}),`\n`,_jsx(Tip,{children:`As a best practice, to ensure the highest activation rate for your users, Tight recommends invoking the above UX during your product’s onboarding flow. Linking a bank account is very highly correlated with long-term retention rates.`}),`\n`,_jsx(Heading,{level:`2`,id:`5-plaid-link-existing-implementation`,children:`5. Plaid Link (existing implementation)`}),`\n`,_jsx(_components.p,{children:`Alternatively, if your product already incorporates Plaid Link, then you can easily connect your Plaid Items to the Tight API via the following “existing implementation” steps:`}),`\n`,_jsxs(_components.p,{children:[`a. In your existing `,_jsx(_components.a,{href:`https://plaid.com/docs/link/#link-flow-overview`,children:`Plaid Link Flow`}),` implementation, you will ultimately receive an `,_jsx(_components.code,{children:`access_token`}),`. To associate that `,_jsx(_components.code,{children:`access_token`}),` with your user’s Tight account, simply POST that access token to the `,_jsx(_components.a,{href:`/v5.0/integrations/banking/plaid/integrating-plaid`,children:`/plaidAccessToken endpoint`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` --request POST \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` --url https://sandbox.hurdlr.com/rest/v5/banks/plaidAccessToken \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:\" --header 'Authorization: Bearer ${access_token}' \\\\\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` --header 'Content-Type: application/json' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` --data '{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:' \"plaidAccessToken\": \"${plaid_access_token}\"'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` }'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The above POST call can be repeated for as many institutions as needed by your user.`}),`\n`,_jsxs(_components.p,{children:[`b. When your user links their bank accounts via your Plaid Link flow, you will receive `,_jsx(_components.a,{href:`https://plaid.com/docs/api/webhooks/#configuring-webhooks`,children:`Plaid webhooks`}),` on your own server. Once you receive those webhooks on your server, to ensure the data available to you is automatically kept up to date, you should forward those webhooks to the Tight API.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://plaid.com/docs/api/webhooks/#item-webhooks`,children:`Item webhooks`}),` and `,_jsx(_components.a,{href:`https://plaid.com/docs/api/webhooks/#transaction-webhooks`,children:`Transaction webhooks`}),` from Plaid’s “sandbox” environment should be forwarded directly from your server to `,_jsx(_components.code,{children:`https://webhook.sandbox.hurdlr.com/plaid`}),`. For the “production” environment, they should be forwarded to `,_jsx(_components.code,{children:`https://webhook.prod.hurdlr.com/plaid`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Contact us directly at `,_jsx(_components.a,{href:`mailto:api@tight.com`,children:`api@tight.com`}),` for help in verifying that the webhooks are forwarding correctly.`]}),`\n`,_jsx(Heading,{level:`2`,id:`6-next-steps`,children:`6. Next Steps`}),`\n`,_jsxs(_components.p,{children:[`After your user has linked their accounts in the Embeddable User Interface or after you POST the user’s Plaid `,_jsx(_components.code,{children:`access_token`}),` to the Tight API, Tight will automatically begin ingesting transactions from the user’s linked accounts. All of Tight’s `,_jsx(_components.a,{href:`/v5.0/products/bank-transactions-1/expense-tracking`,children:`Expense Tracking`}),` features will immediately become available to your user, both in the Embeddable User Interface and via API.`]}),`\n`,_jsxs(_components.p,{children:[`Whether you are building your own UX from scratch or have some existing functionality that you are looking to enhance, the Tight API team is here to help. Don’t hesitate to email us at `,_jsx(_components.a,{href:`mailto:api@tight.com`,children:`api@tight.com`}),`, and we would be glad to help you create and complete the best next steps for your product and vision.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Integrating Plaid","slug":"plaid-integration","excerpt":"","hidden":false,"createdAt":"Tue Sep 21 2021 14:48:21 GMT+0000 (Coordinated Universal Time)","updatedAt":"Mon Apr 07 2025 16:46:15 GMT+0000 (Coordinated Universal Time)","description":null,"href":"/v5.0/integrations/banking/plaid/integrating-plaid","hiddenSetByFrontmatter":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1. How it works","slug":"1-how-it-works","depth":2,"children":[]},{"title":"2. Creating a Plaid Team","slug":"2-creating-a-plaid-team","depth":2,"children":[]},{"title":"3. Securely sharing your Plaid keys","slug":"3-securely-sharing-your-plaid-keys","depth":2,"children":[]},{"title":"4. Plaid Link (new implementation)","slug":"4-plaid-link-new-implementation","depth":2,"children":[]},{"title":"5. Plaid Link (existing implementation)","slug":"5-plaid-link-existing-implementation","depth":2,"children":[]},{"title":"6. Next Steps","slug":"6-next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"tight-7c882d74","siteName":"Tight API","title":"Integrating Plaid - Tight API","navMaps":{"firstHrefInVersion":{"v6.0":{"href":"/guides/get-started/introduction-to-tight-accounting-api","matchLevel":4},"v5.0":{"href":"/v5.0/integrations/banking/plaid/integrating-plaid","matchLevel":0},"v4.0":{"href":"/v4.0/api-reference/authentication/create-a-tight-account","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T17:40:52.667Z","originalFileLocation":"v5.0/integrations/banking/plaid/integrating-plaid.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Tight API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tight-7c882d74/jFRG6eBf-CGG_9G0/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tight-7c882d74/jFRG6eBf-CGG_9G0/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tight-7c882d74/jFRG6eBf-CGG_9G0/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tight-7c882d74/jFRG6eBf-CGG_9G0/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tight-7c882d74/jFRG6eBf-CGG_9G0/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tight-7c882d74/jFRG6eBf-CGG_9G0/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tight-7c882d74/jFRG6eBf-CGG_9G0/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tight-7c882d74/jFRG6eBf-CGG_9G0/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tight-7c882d74/jFRG6eBf-CGG_9G0/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Integrating Plaid - Tight API\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tight API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tight.com/v5.0/integrations/banking/plaid/integrating-plaid\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tight-7c882d74.mintlify.site/_mintlify/api/og/v2?division=Plaid\u0026amp;title=Integrating+Plaid\u0026amp;theme=ca0c5593681485dcdd2fa8b5\u0026amp;signature=11244a6ade0c1ffa52162219d5bfea507d35006637c9baf7b8c2329b418f6e35\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Integrating Plaid - Tight API\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tight-7c882d74.mintlify.site/_mintlify/api/og/v2?division=Plaid\u0026amp;title=Integrating+Plaid\u0026amp;theme=ca0c5593681485dcdd2fa8b5\u0026amp;signature=11244a6ade0c1ffa52162219d5bfea507d35006637c9baf7b8c2329b418f6e35\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tight-7c882d74/jFRG6eBf-CGG_9G0/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tight API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2ab2d1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tight.com/v5.0/integrations/banking/plaid/integrating-plaid\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v5.0/integrations/banking/plaid/integrating-plaid.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tight.com/#organization\",\"name\":\"Tight API\",\"url\":\"https://docs.tight.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tight-7c882d74/g3bHUuD81P-TYOyV/logo/light.svg?fit=max\u0026auto=format\u0026n=g3bHUuD81P-TYOyV\u0026q=85\u0026s=7efc18a7fc4dff02d17ed0eb2de01e0c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tight.com#website\",\"name\":\"Tight API\",\"url\":\"https://docs.tight.com\",\"publisher\":{\"@id\":\"https://docs.tight.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tight.com/v5.0/integrations/banking/plaid/integrating-plaid#webpage\",\"url\":\"https://docs.tight.com/v5.0/integrations/banking/plaid/integrating-plaid\",\"name\":\"Integrating Plaid\",\"dateModified\":\"2026-11-02T17:40:52.667Z\",\"isPartOf\":{\"@id\":\"https://docs.tight.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tight.com/v5.0/integrations/banking/plaid/integrating-plaid#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tight.com/v5.0/integrations/banking/plaid/integrating-plaid#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Banking\",\"item\":\"https://docs.tight.com/v5.0/integrations/banking/finicity\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integrating Plaid\",\"item\":\"https://docs.tight.com/v5.0/integrations/banking/plaid/integrating-plaid\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.tight.com/v5.0/integrations/banking/plaid/integrating-plaid#article\",\"headline\":\"Integrating Plaid\",\"name\":\"Integrating Plaid\",\"url\":\"https://docs.tight.com/v5.0/integrations/banking/plaid/integrating-plaid\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tight.com/v5.0/integrations/banking/plaid/integrating-plaid#webpage\"},\"dateModified\":\"2026-11-02T17:40:52.667Z\",\"publisher\":{\"@id\":\"https://docs.tight.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tight.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tight API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Tight API","nav":{"global":null,"versions":[{"version":"v6.0","pages":[{"title":"v6.0","href":"/guides/get-started/introduction-to-tight-accounting-api"}]},{"version":"v5.0","tabs":[{"tab":"Guides","icon":"guides","pages":[{"title":"Guides","href":"/v5.0/getting-started/overview"}]},{"tab":"Embedded UI","pages":[{"title":"Embedded UI","href":"/v5.0/embeddable-ui/white-labeled-experience/business-owner-ux"}]},{"tab":"Integrations","pages":[{"group":"Overview","pages":[{"title":"Integrations","hidden":false,"href":"/v5.0/integrations/overview"}]},{"group":"Analytics","pages":[{"group":"Mixpanel","pages":[{"title":"Integrating Mixpanel","hidden":false,"href":"/v5.0/integrations/analytics/mixpanel/integrating-mixpanel"},{"title":"Mixpanel Events","hidden":false,"href":"/v5.0/integrations/analytics/mixpanel/mixpanel-events"}]}]},{"group":"Banking","pages":[{"title":"Finicity","hidden":false,"href":"/v5.0/integrations/banking/finicity"},{"title":"MX","hidden":false,"description":null,"href":"/v5.0/integrations/banking/mx"},{"group":"Plaid","pages":[{"title":"Integrating Plaid","hidden":false,"href":"/v5.0/integrations/banking/plaid/integrating-plaid"},{"title":"Managing Plaid Accounts","hidden":false,"description":null,"href":"/v5.0/integrations/banking/plaid/managing-plaid-accounts"}]},{"title":"Unit","hidden":false,"href":"/v5.0/integrations/banking/unit"}]},{"group":"Commerce","pages":[{"title":"Shopify","hidden":false,"href":"/v5.0/integrations/commerce/shopify"},{"title":"Square","hidden":false,"href":"/v5.0/integrations/commerce/square"},{"title":"Rutter","hidden":false,"href":"/v5.0/integrations/commerce/rutter"}]},{"group":"Customer Service","pages":[{"title":"Front","hidden":false,"href":"/v5.0/integrations/customer-service/front"},{"title":"Intercom","hidden":false,"href":"/v5.0/integrations/customer-service/intercom"}]},{"group":"Payment Processing","pages":[{"title":"Qualpay","hidden":false,"href":"/v5.0/integrations/payment-processing/qualpay"},{"title":"Moov","hidden":false,"href":"/v5.0/integrations/payment-processing/moov"},{"group":"Stripe","pages":[{"title":"Integrating Stripe","hidden":false,"href":"/v5.0/integrations/payment-processing/stripe/integrating-stripe"},{"title":"Connecting Stripe Accounts","hidden":false,"href":"/v5.0/integrations/payment-processing/stripe/connecting-stripe-accounts"}]}]},{"group":"Payroll","pages":[{"title":"Check","hidden":false,"href":"/v5.0/integrations/payroll/check"},{"title":"Gusto Embedded","hidden":false,"href":"/v5.0/integrations/payroll/gusto-embedded"}]},{"group":"Tax","pages":[{"title":"April","hidden":false,"href":"/v5.0/integrations/tax/april"},{"title":"Column Tax","hidden":false,"href":"/v5.0/integrations/tax/column-tax"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/v5.0/api-reference/authentication/create-a-tight-account"}]},{"tab":"Playground","pages":[{"title":"Playground","href":"/v5.0/playground"}]},{"tab":"Releases","pages":[{"title":"Releases","href":"/roadmap/releases"}]},{"tab":"API Status","href":"https://status.tight.com/"}]},{"version":"v4.0","pages":[{"title":"v4.0","href":"/v4.0/api-reference/authentication/create-a-tight-account"}]}]},"basePath":"","title":"Integrating Plaid - Tight API","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}