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

# MfaSmsChallenge

This class provides methods to handle the mfa-sms-challenge screen.

```ts Example theme={null}
import MfaSmsChallenge from '@auth0/auth0-acul-js/mfa-sms-challenge';

const mfaSmsChallenge = new MfaSmsChallenge();
await mfaSmsChallenge.continueMfaSmsChallenge({
  code: '123456',
  rememberDevice: true,
});
```

## Constructors

<ParamField body="MfaSmsChallenge" type="Constructor">
  Creates an instance of MfaSmsChallenge screen manager
</ParamField>

## Properties

<ParamField body="branding" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/BrandingMembers">BrandingMembers</a></span>} />

<ParamField body="client" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/ClientMembers">ClientMembers</a></span>} />

<ParamField body="organization" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/OrganizationMembers">OrganizationMembers</a></span>} />

<ParamField body="prompt" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/PromptMembers">PromptMembers</a></span>} />

<ParamField body="screen" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/ScreenMembersOnMfaSmsChallenge">ScreenMembersOnMfaSmsChallenge</a></span>} />

<ParamField body="tenant" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/TenantMembers">TenantMembers</a></span>} />

<ParamField body="transaction" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/TransactionMembers">TransactionMembers</a></span>} />

<ParamField body="untrustedData" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/UntrustedDataMembersOnMfaSmsChallenge">UntrustedDataMembersOnMfaSmsChallenge</a></span>} />

<ParamField body="user" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/UserMembers">UserMembers</a></span>} />

<ParamField body="screenIdentifier" type="string" />

## Methods

<ParamField body="continueMfaSmsChallenge" type="Promise<void>">
  Submits the MFA SMS challenge with the provided code and rememberDevice option.

  ```typescript Example theme={null}
  import MfaSmsChallenge from '@auth0/auth0-acul-js/mfa-sms-challenge';

  const mfaSmsChallenge = new MfaSmsChallenge();
  await mfaSmsChallenge.continueMfaSmsChallenge({
    code: '123456',
    rememberDevice: true,
  });
  ```

  <Expandable title="Parameters">
    <ParamField body="payload" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/MfaSmsChallengeOptions">MfaSmsChallengeOptions</a></span>}>
      **Properties**

      <ParamField body="code" type="string" />

      <ParamField body="rememberDevice?" type="boolean" />
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="getACall" type="Promise<void>">
  Submits the action to switch to voice call verification.

  ```typescript Example theme={null}
  import MfaSmsChallenge from '@auth0/auth0-acul-js/mfa-sms-challenge';

  const mfaSmsChallenge = new MfaSmsChallenge();
  await mfaSmsChallenge.getACall();
  ```

  <Expandable title="Parameters">
    <ParamField body="payload?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/CustomOptions">CustomOptions</a></span>}>
      Optional payload.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="getErrors" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/Error">Error</a>[]</span>}>
  Retrieves the array of transaction errors from the context, or an empty array if none exist.

  An array of error objects from the transaction context.
</ParamField>

<ParamField body="pickSms" type="Promise<void>">
  Submits the action to pick a different SMS configuration, if available.

  ```typescript Example theme={null}
  import MfaSmsChallenge from '@auth0/auth0-acul-js/mfa-sms-challenge';

  const mfaSmsChallenge = new MfaSmsChallenge();
  await mfaSmsChallenge.pickSms();
  ```

  <Expandable title="Parameters">
    <ParamField body="payload?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/CustomOptions">CustomOptions</a></span>}>
      Optional payload.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="resendCode" type="Promise<void>">
  Submits the action to resend the SMS code.

  ```typescript Example theme={null}
  import MfaSmsChallenge from '@auth0/auth0-acul-js/mfa-sms-challenge';

  const mfaSmsChallenge = new MfaSmsChallenge();
  await mfaSmsChallenge.resendCode();
  ```

  <Expandable title="Parameters">
    <ParamField body="payload?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/CustomOptions">CustomOptions</a></span>}>
      Optional payload.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="resendManager" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/ResendControl">ResendControl</a></span>}>
  **`Utility Feature`**

  Gets resend functionality with timeout management for this screen

  ResendControl object with startResend method

  ```typescript Example theme={null}
  import MfaSmsChallenge from '@auth0/auth0-acul-js/mfa-sms-challenge';

  const mfaSmsChallenge = new MfaSmsChallenge();
  const { startResend } = mfaSmsChallenge.resendManager({
    timeoutSeconds: 15,
    onStatusChange: (remainingSeconds, isDisabled) => {
      console.log(`Resend available in ${remainingSeconds}s, disabled: ${isDisabled}`);
    },
    onTimeout: () => {
      console.log('Resend is now available');
    }
  });

  // Call startResend when user clicks resend button
  startResend();
  ```

  <Expandable title="Parameters">
    <ParamField body="options?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/StartResendOptions">StartResendOptions</a></span>}>
      Configuration options for resend functionality

      **Properties**

      <ParamField body="onStatusChange?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/type-aliases/OnStatusChangeCallback">OnStatusChangeCallback</a></span>} />

      <ParamField body="onTimeout" type="void" />

      <ParamField body="timeoutSeconds?" type="number" />
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="tryAnotherMethod" type="Promise<void>">
  Submits the action to try another MFA method.

  ```typescript Example theme={null}
  import MfaSmsChallenge from '@auth0/auth0-acul-js/mfa-sms-challenge';

  const mfaSmsChallenge = new MfaSmsChallenge();
  await mfaSmsChallenge.tryAnotherMethod();
  ```

  <Expandable title="Parameters">
    <ParamField body="payload?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/CustomOptions">CustomOptions</a></span>}>
      Optional payload.
    </ParamField>
  </Expandable>
</ParamField>
