> ## 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.

# MfaPhoneChallenge

MfaPhoneChallenge

```ts Example theme={null}
const mfaPhoneChallenge = new MfaPhoneChallenge();
// Request code via SMS
await mfaPhoneChallenge.continue({ type: 'sms' });
// Request code via Voice Call
await mfaPhoneChallenge.continue({ type: 'voice' });
```

## Constructors

<ParamField body="MfaPhoneChallenge" type="Constructor">
  Initializes a new instance of the `MfaPhoneChallenge` class.
  It sets up the screen-specific data by creating an instance of `ScreenOverride`.
</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/ScreenMembersOnMfaPhoneChallenge">ScreenMembersOnMfaPhoneChallenge</a></span>}>
  Holds the specific screen data for the MFA Phone Challenge.
</ParamField>

<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/UntrustedDataMembers">UntrustedDataMembers</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">
  The unique identifier for this screen.
</ParamField>

## Methods

<ParamField body="continue" type="Promise<void>">
  Submits the user's choice of receiving the MFA code via SMS or voice call.
  It uses the phone number provided in the screen context.

  A promise that resolves upon successful submission.

  #### Throws

  Throws an error if the phone number is not available in the screen context or if the submission fails.

  ```typescript Example theme={null}
  const mfaPhoneChallenge = new MfaPhoneChallenge();
  // Request code via SMS
  await mfaPhoneChallenge.continue({ type: 'sms' });
  // Request code via Voice Call
  await mfaPhoneChallenge.continue({ type: 'voice' });
  ```

  <Expandable title="Parameters">
    <ParamField body="payload" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/MfaPhoneChallengeContinueOptions">MfaPhoneChallengeContinueOptions</a></span>}>
      Options containing the delivery type ('sms' or 'voice').

      **Properties**

      <ParamField body="type" type="&#x22;sms&#x22; | &#x22;voice&#x22;">
        The type of challenge to perform.

        * `sms`: Send the code via text message.
        * `voice`: Send the code via a voice call.
      </ParamField>
    </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="pickPhone" type="Promise<void>">
  Initiates the process for the user to select a different phone number (if applicable).
  This typically triggers a navigation to a phone selection screen.

  A promise that resolves upon successful submission.

  #### Throws

  Throws an error if the submission fails.

  ```typescript Example theme={null}
  const mfaPhoneChallenge = new MfaPhoneChallenge();
  await mfaPhoneChallenge.pickPhone();
  ```

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

<ParamField body="tryAnotherMethod" type="Promise<void>">
  Allows the user to choose a different MFA method (e.g., OTP, Recovery Code).
  This typically triggers navigation to the authenticator selection screen.

  A promise that resolves upon successful submission.

  #### Throws

  Throws an error if the submission fails.

  ```typescript Example theme={null}
  const mfaPhoneChallenge = new MfaPhoneChallenge();
  await mfaPhoneChallenge.tryAnotherMethod();
  ```

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