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

# Plaid OAuth 2.0 — Production connector profile – StackOne setup guide

> Set up the OAuth 2.0 — Production connector profile for Plaid in StackOne. One-time admin setup required before your users can link Plaid accounts via Hub.

<Warning>Production secrets are only revealed after Plaid approves your account for Production access. If you have not yet been approved, you cannot use this auth method — use <strong>OAuth 2.0 — Sandbox</strong> instead.</Warning>

<section data-guide-section data-guide-scopes="">
  <h2>1. Create a Plaid account</h2>

  <p>If you do not already have one, sign up first. Sandbox access is granted automatically.</p>

  <Steps>
    <Step title="Sign up">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Go to the <a href="https://dashboard.plaid.com/signup" target="_blank" rel="noopener noreferrer">Plaid Dashboard signup page</a>, create an account, and verify your email.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>2. Apply for Production access</h2>

  <p>Plaid does not grant Production access automatically. You must apply and pass Plaid's risk and security review before your Production secret is enabled and your `client_id` can call real banks.</p>

  <Steps>
    <Step title="Start the Production application">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to the <a href="https://dashboard.plaid.com" target="_blank" rel="noopener noreferrer">Plaid Dashboard</a> and click <strong>Get Production access</strong> in the left sidebar.</p>
      </div>
    </Step>

    <Step title="Complete the questionnaires">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Fill out the company info, use case, security, and compliance questionnaires that Plaid presents. Be specific about which products and country codes you intend to use.</p>
      </div>
    </Step>

    <Step title="Wait for approval">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Approval typically takes several business days but can take longer if Plaid asks follow-up questions. Until you are approved, the Production secret on the Keys page will remain hidden.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>3. Copy your Client ID and Production Secret</h2>

  <p>Once you are approved for Production, the Production row on the Keys page becomes interactive.</p>

  <Steps>
    <Step title="Open the Keys page">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the Plaid Dashboard left sidebar, expand <strong>Developers</strong> and click <strong>Keys</strong>.</p>
      </div>
    </Step>

    <Step title="Copy the Client ID">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Copy the value labeled `client_id` at the top of the page (a 24-character hex string, no prefix) for the <strong>Client ID</strong> field. The same `client_id` works in Sandbox and Production.</p>
      </div>
    </Step>

    <Step title="Reveal and copy the Production Secret">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the <strong>Production</strong> row, click the eye icon next to `secret` to reveal the value. Copy it for the <strong>Secret</strong> field and store it securely.</p>

        <ul>
          <li>Use the <strong>Production</strong> secret here. The Sandbox secret will not authenticate against real banks.</li>
          <li>Treat the Production secret as highly sensitive — it grants access to your real Production account.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>4. Register a Plaid Link redirect URI (depends on your platform)</h2>

  <p>This URI is a page in <strong>your own application</strong> — the page that hosts your Plaid Link integration. It is not a StackOne URL. Unlike connectors where StackOne completes the OAuth handshake, StackOne never receives a browser redirect from Plaid, so the StackOne callback URL you may have used elsewhere does not apply here.<br /><br />Banks that use OAuth (Chase, Capital One, Wells Fargo, and others) send the user back to this page after they authenticate at the bank, and Plaid only permits redirects to URIs registered in advance.</p>

  <Steps>
    <Step title="Check whether your platform needs one">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Whether a redirect URI is required depends entirely on where you run Plaid Link.</p>

        <ul>
          <li><strong>Desktop web</strong> — not needed. Link opens the bank in a pop-up window, and Plaid's OAuth guide states that OAuth flows function properly on web without a redirect URI.</li>
          <li><strong>Mobile web in a webview</strong> — required. Webview browsers opened from Mail, Facebook, Google Maps and similar apps usually block pop-ups, so without a redirect URI those users cannot complete OAuth.</li>
          <li><strong>iOS</strong> — required. You must also host the page as a blank web page and configure an Apple App Association File so the URI works as a universal link. Custom URI schemes are not supported.</li>
          <li><strong>Android</strong> — a redirect URI is not used. Pass `android_package_name` to `/link/token/create` instead and add your package name to <strong>Allowed Android package names</strong> in the Plaid Dashboard. Plaid derives the redirect URI from the package name.</li>
        </ul>
      </div>
    </Step>

    <Step title="Add the URI to the allowlist">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the Plaid Dashboard, navigate to <strong>Developers</strong> > <strong>API</strong>, find <strong>Allowed redirect URIs</strong>, then click <strong>Configure</strong> > <strong>Add New URI</strong> and save.</p>

        <ul>
          <li>Example: `https://your-app.com/plaid/oauth-return`</li>
          <li>Production URIs must use HTTPS. `localhost` over HTTP is accepted in Sandbox only.</li>
          <li>The URI cannot contain query parameters, and it cannot contain a `#` because Plaid does not support hash routing.</li>
          <li>Subdomain wildcards such as `https://*.your-app.com/plaid/oauth-return` are allowed on the allowlist, but never in the `redirect_uri` you pass to `/link/token/create` — that value must match a registered URI exactly.</li>
        </ul>
      </div>
    </Step>

    <Step title="Handle the redirect in your app">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>The page at that URI must reinitialize Plaid Link with the same `link_token` and pass `receivedRedirectUri: window.location.href`. Plaid appends an `oauth_state_id` query parameter that Link needs in order to resume the session.</p>

        <ul>
          <li>Full reference: <a href="https://plaid.com/docs/link/oauth/" target="_blank" rel="noopener noreferrer">Plaid Link OAuth guide</a></li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Plaid</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>Plaid</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0 — Production</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Client ID</strong></li>
          <li><strong>Secret</strong></li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/connect/managing-connectors/linking-accounts">Link Accounts</a> for <strong>Plaid</strong>.
