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

# MfaPhoneEnrollment

Class implementing the mfa-phone-enrollment screen functionality.
This screen allows users to enroll using a phone number for MFA.

```ts Example theme={null}
import MfaPhoneEnrollment from '@auth0/auth0-acul-js/mfa-phone-enrollment';
const mfaPhoneEnrollmentManager = new MfaPhoneEnrollment();
async function handlePickCountryCode() {
 try {
   await mfaPhoneEnrollmentManager.pickCountryCode();
   console.log('Country code selection successful.');
 } catch (error) {
   console.error('Error selecting country code:', error);
 }
}
/
  async pickCountryCode(payload?: CustomOptions): Promise<void> {
    const options = {
      state: this.transaction.state,
      telemetry: [MfaPhoneEnrollment.screenIdentifier, 'pickCountryCode'],
    };
    await new FormHandler(options).submitData<CustomOptions>({
      ...payload,
      action: 'pick-country-code',
    });
  }

  /**
Continues the enrollment process with the provided phone number and type (SMS or voice).
@param payload The phone number and type (SMS or voice).
@example
```

## Constructors

<ParamField body="MfaPhoneEnrollment" type="Constructor">
  Creates an instance of the MfaPhoneEnrollment screen.
</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/ScreenMembers">ScreenMembers</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/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" />

## Methods

<ParamField body="continueEnrollment" type="Promise<void>">
  Continues the enrollment process with the provided phone number and type (SMS or voice).

  ```typescript Example theme={null}
  import MfaPhoneEnrollment from '@auth0/auth0-acul-js/mfa-phone-enrollment';
  const mfaPhoneEnrollmentManager = new MfaPhoneEnrollment();
  async function handleContinueEnrollment() {
   try {
     await mfaPhoneEnrollmentManager.continueEnrollment({
       phone: '+1234567890',
       type: 'sms', // or 'voice'
     });
     console.log('Phone enrollment continued successfully.');
   } catch (error) {
     console.error('Error continuing phone enrollment:', error);
   }
  }
  ```

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

      <ParamField body="phone" type="string" />
    </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="pickCountryCode" type="Promise<void>">
  Navigates to the country code selection screen.

  ```typescript Example theme={null}
  import MfaPhoneEnrollment from '@auth0/auth0-acul-js/mfa-phone-enrollment';
  const mfaPhoneEnrollmentManager = new MfaPhoneEnrollment();
  async function handlePickCountryCode() {
   try {
     await mfaPhoneEnrollmentManager.pickCountryCode();
     console.log('Country code selection successful.');
   } catch (error) {
     console.error('Error selecting country code:', error);
   }
  }

  ```

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

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

  ```typescript Example theme={null}
  import MfaPhoneEnrollment from '@auth0/auth0-acul-js/mfa-phone-enrollment';
  const mfaPhoneEnrollmentManager = new MfaPhoneEnrollment();
  async function handleTryAnotherMethod() {
   try {
     await mfaPhoneEnrollmentManager.tryAnotherMethod(); 
     console.log('Switched to another authentication method.');
    } catch (error) { 
   console.error('Error switching authenticator method:', error);
   }
  }
  ```

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