/
Contact usSee pricingStart building

    About B2B Saas Authentication

    Introduction
    Stytch B2B Basics
    Integration Approaches
      Full-stack overview
      Frontend (pre-built UI)
      Frontend (headless)
      Backend
    Next.js
      Routing
      Authentication
      Sessions
    Migrations
      Overview
      Reconciling data models
      Migrating user data
      Additional migration considerations
      Zero-downtime deployment
      Defining external IDs for members
      Exporting from Stytch
    Custom Domains
      Overview

    Authentication

    Single Sign On
    • Resources

      • Overview
        External SSO Connections
    • Integration Guides

      • Start here
        Backend integration guide
        Headless integration guide
        Pre-built UI integration guide
    OAuth
    • Resources

      • Overview
        Authentication flows
        Identity providers
        Google One Tap
        Provider setup
    • Integration Guides

      • Start here
        Backend integration
        Headless frontend integration
        Pre-built UI frontend integration
    Connected AppsBeta
      Setting up Connected Apps
      About Remote MCP Servers
    • Resources

      • Integrate with AI agents
        Integrate with a remote MCP server
    Sessions
    • Resources

      • Overview
        JWTs vs Session Tokens
        How to use Stytch JWTs
        Custom Claims
    • Integration Guides

      • Start here
        Backend integration
        Frontend integration
    Email OTP
      Overview
    Magic Links
    • Resources

      • Overview
        Email Security Scanner Protections
    • Integration Guides

      • Start here
        Backend integration
        Headless frontend integration
        Pre-built UI frontend integration
    Multi-Factor Authentication
    • Resources

      • Overview
    • Integration Guides

      • Start here
        Backend integration
        Headless frontend integration
        Pre-built UI frontend integration
    Passwords
      Overview
      Strength policies
    UI components
      Overview
      Implement the Discovery flow
      Implement the Organization flow
    DFP Protected Auth
      Overview
      Setting up DFP Protected Auth
      Handling challenges
    M2M Authentication
      Authenticate an M2M Client
      Rotate client secrets
      Import M2M Clients from Auth0

    Authorization & Provisioning

    RBAC
    • Resources

      • Overview
        Stytch Resources & Roles
        Role assignment
    • Integration Guides

      • Start here
        Backend integration
        Headless frontend integration
    SCIM
    • Resources

      • Overview
        Supported actions
    • Integration Guides

      • Using Okta
        Using Microsoft Entra
    Organizations
      Managing org settings
      JIT Provisioning

    Testing

    E2E testing
    Sandbox values
Get support on SlackVisit our developer forum

Contact us

B2B Saas Authentication

/

Guides

/

About B2B Saas Authentication

/

Migrations

/

Defining external IDs for members

External IDs for members

When a member is created in Stytch, they will be assigned a unique identifier that looks like a UUID. For your convenience, you may choose to additionally assign an "external ID" to a member which can then be used in any place where the Stytch member_id is expected.

Assigning an external ID at creation

When calling the Create Member endpoint, you may pass in an optional external_id parameter. The external_id is a string consisting of alphanumeric, ., _, or - characters with a maximum length of 128 characters. External IDs must be unique across members in a given organization, but may be reused across different organizations in the same project.

You may also set an external ID during a call to the Migrate Password endpoint, but only if the member does not yet exist and is created. If the member already exists, you must use the Update Member endpoint to assign or reassign the external_id.

Assigning an external ID later

If a member has already been created, you may assign it an external_id later with the Update Member endpoint. Similar to creation, pass in an external_id parameter and it will then be assigned to that member. Again, remember that external IDs must be unique within a given organization, but may be reused across different organizations in the same project.

Updating a member's external ID

If you wish to change a member's external ID, you may use the same Update Member endpoint listed above. After this point, you will no longer be able to refer to that member by its old external_id.

Using external IDs

In any endpoint that expects a member_id, you may instead choose to pass in your custom-defined external_id. For clarity, all responses from Stytch will continue to use the Stytch-defined member_id, though external_id will exist as a subfield within the Member object.

Using organization slugs instead of organization IDs

Along with the feature to use external IDs instead of member IDs in the Stytch API, you may also use organization slugs in place of organization IDs. All the existing rules related to setting and changing organization slugs still exist, but this is another feature for those who prefer to use human-readable identifiers instead of generated UUIDs.

Assigning an external ID at creation

Assigning an external ID later

Updating a member's external ID

Using external IDs

Using organization slugs instead of organization IDs