B2B Saas Authentication

/

Mobile SDKs

/

React Native SDK reference

/

Discovery

/

Create Organization via Discovery

Create Organization via discovery

Wraps Stytch's create Organization via discovery endpoint. This method will fail if there is no intermediate session token present.

Intermediate session tokens are generated upon successful calls to primary authenticate methods in the case where MFA is required, such as email magic link authenticate or upon successful calls to discovery authenticate methods, such as email magic link discovery authenticate.

The Member created by this endpoint will automatically be granted the stytch_admin Role. See the RBAC guide for more details on this Role.

If this method succeeds and the Member is not required to complete MFA, the Member will be logged in, granted an active session, and the session data will be persisted on device.

If this method succeeds and MFA is required, the intermediate session token will be persisted on device.

You can listen for successful login events anywhere in the codebase with the stytch.session.onChange() method or useStytchMemberSession hook.

To call this method, Create Organizations must be enabled in the SDK Configuration page of the Stytch dashboard.


Method parameters


session_duration_minutes*int

organization_namestring

organization_slugstring

organization_logo_urlstring

email_jit_provisioningstring

email_invitesstring

email_allowed_domainsarray[strings]

sso_jit_provisioningstring

auth_methodsstring

allowed_auth_methodsarray[strings]

mfa_policystring

Response fields


request_idstring

status_codeint

member_idstring

session_jwtstring

session_tokenstring

intermediate_session_tokenstring

member_authenticatedboolean

mfa_requiredobject

primary_requiredobject

member_sessionobject

memberobject

organizationobject
import React, { useState } from 'react';
import { Text, TouchableOpacity, View } from 'react-native';
import { useStytchB2BClient } from '@stytch/react-native/b2b';

export const CreateOrganization = () => {
  const stytch = useStytchB2BClient();
  const [isCreating, setIsCreating] = useState(false);

  const createOrganization = async () => {
    setIsCreating(true);
    try {
      await stytch.discovery.organizations.create({
        organization_name: 'Example Org Inc.',
        organization_slug: 'example-org',
        session_duration_minutes: 60,
      });
      console.log('Organization created successfully');
    } catch (error) {
      console.error('Error creating organization:', error);
    } finally {
      setIsCreating(false);
    }
  };

  return (
    <View>
      <TouchableOpacity onPress={createOrganization} disabled={isCreating}>
        <Text>{isCreating ? 'Creating...' : 'Create Organization'}</Text>
      </TouchableOpacity>
    </View>
  );
};

RESPONSE

200
{
	"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
	"status_code": 200,
	"member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
	"session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
	"session_jwt": "eyJ...",
	"intermediate_session_token": "",
	"member_authenticated": true,
	"mfa_required": null,
	"primary_required": null,
    "member_session": {...},
    "member": {...},
    "organization": {...}
}