Skip to main content

onEvent

A function that is called when the Stytch client makes a request. The function expects an argument of an event object, and the event object has type and data objects.
// The AUTHENTICATE_FLOW_COMPLETE event indicates that the user has finished
// the authentication flow, regardless of the authentication product they selected.
// It is returned in addition to product-specific events.
{
  "type": "AUTHENTICATE_FLOW_COMPLETE",
  "data": {}
},
{
  "type": "B2B_ORGANIZATIONS_GET_BY_SLUG",
  "data": {
    "organization": { ...Stytch organization... },
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_DISCOVERY_ORGANIZATIONS_CREATE",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "member_authenticated": true,
    "intermediate_session_token": "",
    "mfa_required": null,
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_DISCOVERY_INTERMEDIATE_SESSION_EXCHANGE",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "member_authenticated": true,
    "intermediate_session_token": "",
    "mfa_required": null,
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_IMPERSONATION_AUTHENTICATE",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization_id": "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
    "organization": { ...Stytch organization... },
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "intermediate_session_token": "",
    "member_session": { ...Stytch member session... },
    "member_authenticated": true,
    "mfa_required": null,
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
}
{
  "type": "B2B_MAGIC_LINK_EMAIL_LOGIN_OR_SIGNUP",
  "data": {
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_MAGIC_LINK_AUTHENTICATE",
  "data": {
    "method_id": "member-email-test-1dd089b3-8904-47ef-b943-987968e549d4",
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "member_authenticated": true,
    "intermediate_session_token": "",
    "mfa_required": null,
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_MAGIC_LINK_EMAIL_DISCOVERY_SEND",
  "data": {
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_MAGIC_LINK_DISCOVERY_AUTHENTICATE",
  "data": {
    "email_address": "sandbox@stytch.com",
    "intermediate_session_token": "SeiGwdj5lKkrEVgcEY3QNJXt6srxS3IK2Nwkar6mXD4=",
    "discovered_organizations": [{ ...Discovered Organization object... }, ...],
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
}

Email OTP

{
  "type": "B2B_OTPS_EMAIL_LOGIN_OR_SIGNUP",
  "data": {
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_OTPS_EMAIL_AUTHENTICATE",
  "data": {
    "method_id": "member-email-test-1dd089b3-8904-47ef-b943-987968e549d4",
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "organization_id": "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "member_authenticated": true,
    "intermediate_session_token": "",
    "mfa_required": null,
    "primary_required": null,
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_OTPS_EMAIL_DISCOVERY_SEND",
  "data": {
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_OTPS_EMAIL_DISCOVERY_AUTHENTICATE",
  "data": {
    "email_address": "sandbox@stytch.com",
    "intermediate_session_token": "SeiGwdj5lKkrEVgcEY3QNJXt6srxS3IK2Nwkar6mXD4=",
    "discovered_organizations": [{ ...Discovered Organization object... }, ...],
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
}

OAuth

{
  "type": "B2B_OAUTH_AUTHENTICATE",
  "data": {
    "provider_subject": "123456789123456789123",
    "provider_type": "Google",
    "provider_values": { ...OAuth provider values... },
    "method_id": "member-email-test-1dd089b3-8904-47ef-b943-987968e549d4",
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "organization_id": "organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931",
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "member_authenticated": true,
    "intermediate_session_token": "",
    "mfa_required": null,
    "primary_required": null,
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_OAUTH_DISCOVERY_AUTHENTICATE",
  "data": {
    "email_address": "sandbox@stytch.com",
    "full_name": "Jane Doe",
    "provider_tenant_id": "",
    "provider_type": "Google",
    "intermediate_session_token": "SeiGwdj5lKkrEVgcEY3QNJXt6srxS3IK2Nwkar6mXD4=",
    "discovered_organizations": [{ ...Discovered Organization object... }, ...],
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
}

Passwords

{
  "type": "B2B_PASSWORD_AUTHENTICATE",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_PASSWORD_RESET_BY_EMAIL_START",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_PASSWORD_RESET_BY_EMAIL",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "member_authenticated": true,
    "intermediate_session_token": "",
    "mfa_required": null,
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_PASSWORD_RESET_BY_SESSION",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "member_authenticated": true,
    "intermediate_session_token": "",
    "mfa_required": null,
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  },
},
{
  "type": "B2B_PASSWORD_DISCOVERY_AUTHENTICATE",
  "data": {
    "email_address": "sandbox@stytch.com",
    "intermediate_session_token": "SeiGwdj5lKkrEVgcEY3QNJXt6srxS3IK2Nwkar6mXD4=",
    "discovered_organizations": [{ ...Discovered Organization object... }, ...],
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_PASSWORD_DISCOVERY_RESET_BY_EMAIL",
  "data": {
    "email_address": "sandbox@stytch.com",
    "intermediate_session_token": "SeiGwdj5lKkrEVgcEY3QNJXt6srxS3IK2Nwkar6mXD4=",
    "discovered_organizations": [{ ...Discovered Organization object... }, ...],
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
}

SSO

{
  "type": "B2B_SSO_START",
  "data": {}
},
{
  "type": "B2B_SSO_AUTHENTICATE",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "member_authenticated": true,
    "intermediate_session_token": "",
    "mfa_required": null,
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_SSO_DISCOVER_CONNECTIONS",
  "data": {
    "connections": [
      {
        "connection_id": "saml-connection-test-51861cbc-d3b9-428b-9761-227f5fb12be9",
        "display_name": "Example SAML Connection",
        "identity_provider": "google-workspace"
      },
      ...
    ]
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
}

SMS OTP

{
  "type": "B2B_SMS_OTP_SEND",
  "data": {
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_SMS_OTP_AUTHENTICATE",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
}

TOTP

{
  "type": "B2B_TOTP_CREATE",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "qr_code": "data:image/png;base64,...",
    "recovery_codes": ["abcd-efgh-1234", "ijkl-mnop-5678", "qrst-uvwx-9012"],
    "secret": "X4YCZUQATXPVO46J2EDTZY55NLTQZDQA",
    "totp_registration_id": "member-totp-test-9ed17883-fdfa-4795-9459-cd64a2bf351f",
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_TOTP_AUTHENTICATE",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
},
{
  "type": "B2B_RECOVERY_CODES_RECOVER",
  "data": {
    "member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
    "member": { ...Stytch member... },
    "organization": { ...Stytch organization... },
    "session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
    "session_jwt": "example_jwt",
    "member_session": { ...Stytch member session... },
    "recovery_codes_remaining": 9,
    "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
    "status_code": 200
  }
}

onError

A function that is called when an error occurs. The function expects an argument of an StytchError object, and the StytchError object has a message property.
// Example of an API related error.
"message": "StytchSDKAPIError: [401] unauthorized_credentials Unauthorized credentials. See https://stytch.com/docs/api/errors/401 for more information. request_id: request-id-test-8e2a9758-713e-49a2-8b62-f9169bbabded",

// Example of a network related error.
"message": "SDKAPIUnreachableError: Failed to send magic link Unable to contact the Stytch servers. Are you online?"

// Example of a schema related error.
"message": "StytchSDKSchemaError: [400] Request does not match expected schema. email: should be string"

// Example of an error with using our SDK.
"message": "StytchSDKUsageError: Invalid call to <METHOD_NAME>"