Plaid logo
Docs
ALL DOCS

Layer

  • Introduction to Layer
  • Add Layer to your app
Plaid logo
Docs
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about the Plaid API. Try asking questions like:
    Note: Bill isn't perfect. He's just a robot platypus that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Bill any PII -- he's scared of intimacy. All chats with Bill are subject to Plaid's Privacy Policy.
    Plaid.com
    Log in
    Get API Keys
    Open nav

    Introduction to Layer

    Onboard users instantly with just a phone number

    Get started with Layer
    API ReferenceRequest Access

    Overview

    Instantly onboard millions of people from the Plaid Network with Layer (US only).

    Given a phone number, we can find out if that person is on the Plaid Network and if they meet your onboarding requirements. Next, we authenticate the device and use real-time risk analysis to securely deliver the fastest user experience. Once they confirm their details and choose which financial account to share, you can verify their identity using your KYC provider and connect their accounts with Plaid.

    The user enters their phone number within your application.
    The user enters their phone number within your application.
    Plaid determines the user is eligible for Layer, so they are prompted to continue with Plaid.
    The user's device is authenticated...
    ...and the user chooses what information to share with your application.
    And we're done! You're now able to retrieve user account data.

    To get started with Layer, contact Sales to request Sandbox access.

    See a live, interactive demo of a Plaid-powered onboarding flow using Layer.

    Integration overview

    If you use Layer with Plaid Check products, see the Plaid Check Layer onboarding guide.

    1. Configure a Layer template via the dashboard. A template is created by default on first visit. You can customize the template's name, set logo and colors to match your brand, and configure eligibility requirements.

    2. Call /session/token/create with the template ID for the Layer template you configured. This will return a link object that contains a link_token.

    3. On your client, create an instance of Link using the link.link_token string returned by /session/token/create. With Layer, you should create the Plaid handler object (i.e. via Plaid.create(...)) as early as possible so Link can pre-load in the background. This ensures the fastest possible experience for your users.

      If you have an existing Android integration that does not use a PlaidHandler or that uses OpenPlaidLink instead of FastOpenPlaidLink, or an existing React Native integration that uses PlaidLink instead of create and open, you will need to update your client-side Link opening code to take advantage of the new faster loading scheme. For details and sample code, see React Native: opening Link and Android: opening Link.

    4. Once you have a user's phone number, pass it to the Plaid handler object: handler.submit({ "phone_number": "+14155550015"}). Link will quickly check if the user is eligible for Layer, and call the Link onEvent callback with either LAYER_READY or LAYER_NOT_AVAILABLE.

    5. When you receive LAYER_READY, it means the user is eligible and you should call handler.open() to immediately present the Layer UI. If you receive LAYER_NOT_AVAILABLE, you may discard the handler object and continue with any non-Layer flow in your app. For example, if your application falls back to a non-Layer product flow, you'd create a new Link Token and handler to present that flow.

    6. Once the end user has completed the Link flow, you will receive an onSuccess callback. Use the received public_token with the /user_account/session/get API in order to retrieve the user's profile information and any linked Items.

    Sample code

    For a walkthrough of integrating Layer, including sample code across multiple platforms, see Add Layer to your app.

    Minimum SDK versions

    If you are developing for the web using the JavaScript SDK, Plaid will automatically provide the latest available SDK, which includes Layer support. If you are developing a native mobile application, Layer requires SDK versions from June 2024 or later. Minimum versions are 5.6.0 (iOS), 4.5.0 (Android), and 11.11.0 (React Native).

    Layer is not compatible with the Hosted Link integration mode.

    Testing Layer

    In order to test out Plaid Layer in Sandbox, use 415-555-0015 as the phone number, and 123456 as the OTP when prompted for the SMS verification code.

    In Production, the authentication step of Layer is dynamic and may authenticate the user via Silent Network Authentication, SMS OTP, or Passkeys (coming soon), depending on the user and the device; authentication checks such as trusted device matching or mobile carrier checks (for SIM swaps, port outs, etc.) are also run in Production.

    Sandbox provides a simplified authentication experience: in Sandbox, users can only be authenticated via OTP, and authentication checks are not run.

    Launch checklist

    Recommended steps to take before launching in Production

    Launch

    Launch checklist

    Recommended steps to take before launching in Production

    Launch
    Was this helpful?
    Developer community
    GitHub
    GitHub
    Stack Overflow
    Stack Overflow
    YouTube
    YouTube
    Discord
    Discord