> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-docs-event-stream-action-templates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# MfaPushChallengePush

> Describes all the properties and methods available to customize the Universal Login `mfa-push-challenge-push` screen.

The MfaPushChallengePush class implements the `mfa-push-challenge-push` screen functionality. This screen is shown when a user needs to confirm a push notification during MFA.

<Frame>
  <img style={{maxHeight:"400px"}} src="https://mintcdn.com/docs-dev-docs-event-stream-action-templates/ZqABYvyPOuGZRvBz/docs/images/ja-jp/cdy7uua7fh8z/6n6fftBZDpoT5FdmipebK6/3a777c3c9a87a6f6cf53cf96aab67c8d/Screenshot_2025-02-20_at_22.13.55.png?fit=max&auto=format&n=ZqABYvyPOuGZRvBz&q=85&s=16613008fec54f3ecf1eb197cae442ef" alt="ACUL MFA Push Challenge Push" width="438" height="670" data-path="docs/images/ja-jp/cdy7uua7fh8z/6n6fftBZDpoT5FdmipebK6/3a777c3c9a87a6f6cf53cf96aab67c8d/Screenshot_2025-02-20_at_22.13.55.png" />
</Frame>

## Constructors

Create an instance of MFA Push Challenge Push screen manager:

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

const mfaPushChallengePush = new MfaPushChallengePush();
await mfaPushChallengePush.continue();
```

## Properties

<ParamField body="branding" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/BrandingMembers">BrandingMembers</a></span>}>
  Provides branding-related configurations, such as branding theme and settings.
</ParamField>

<ParamField body="client" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/ClientMembers">ClientMembers</a></span>}>
  Provides client-related configurations, such as `id`, `name`, and `logoUrl`, for the `mfa-push-challenge-push` screen.
</ParamField>

<ParamField body="organization" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/OrganizationMembers">OrganizationMembers</a></span>}>
  Provides information about the user's Organization, such as `id` and `name`.
</ParamField>

<ParamField body="prompt" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/PromptMembers">PromptMembers</a></span>}>
  Contains data about the current prompt in the authentication flow.
</ParamField>

<ParamField body="screen" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/ScreenMembersOnMfaPushChallengePush">ScreenMembersOnMfaPushChallengePush</a></span>}>
  Contains details specific to the `mfa-push-challenge-push` screen, including its configuration and context.
</ParamField>

<ParamField body="tenant" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/TenantMembers">TenantMembers</a></span>}>
  Contains data related to the tenant, such as `id` and associated metadata.
</ParamField>

<ParamField body="transaction" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/TransactionMembers">TransactionMembers</a></span>}>
  Provides transaction-specific data for the `mfa-push-challenge-push` screen, such as active identifiers and flow states.
</ParamField>

<ParamField body="untrustedData" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/UntrustedDataMembersOnMfaPushChallengePush">UntrustedDataMembersOnMfaPushChallengePush</a></span>}>
  Handles untrusted data passed to the SDK, such as user input during MFA push challenge.
</ParamField>

<ParamField body="user" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/UserMembers">UserMembers</a></span>}>
  Details of the active user, including `username`, `email`, and `roles`.
</ParamField>

## Methods

<ParamField body="changeLanguage" type="Promise<void>">
  This method changes the display language of the Universal Login page.

  ```typescript Example theme={null}
  import MfaPushChallengePush from '@auth0/auth0-acul-js/mfa-push-challenge-push';
  const mfaPushChallengePush = new MfaPushChallengePush();
  mfaPushChallengePush.changeLanguage({
    language: 'fr',
  });
  ```

  **Method Parameters**

  <Expandable title="Parameters">
    <ParamField body="options">
      [LanguageChangeOptions](/docs/libraries/acul/js-sdk/Screens/interfaces/LanguageChangeOptions).
    </ParamField>

    <ParamField body="language" type="string" required>
      The locale code for the desired language (for example, `'en'`, `'fr'`, `'es'`).
    </ParamField>

    <ParamField body="persist?" type="&#x22;session&#x22;">
      When set to `'session'`, the selected language persists for the duration of the session.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="continue" type="Promise<void>">
  This method continues with the push notification challenge.

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

  const mfaPushChallengePush = new MfaPushChallengePush();
  await mfaPushChallengePush.continue();
  ```

  **Method Parameters**

  <Expandable title="Parameters">
    <ParamField body="options">
      [WithRememberOptions](/docs/libraries/acul/js-sdk/Screens/interfaces/WithRememberOptions).
    </ParamField>

    <ParamField body="rememberDevice?" type="boolean">
      Indicates whether to remember the device.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="enterCodeManually" type="Promise<void>">
  This method switches to entering the verification code manually.

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

  const mfaPushChallengePush = new MfaPushChallengePush();
  await mfaPushChallengePush.enterCodeManually();
  ```
</ParamField>

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

<ParamField body="pollingManager" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/MfaPushPollingControl">MfaPushPollingControl</a></span>}>
  This method starts and manages polling for an MFA push challenge.

  Creates a polling session that repeatedly checks the MFA push challenge endpoint at the specified interval until the challenge is approved or an error occurs. When the approval condition is met, the provided [onCompleted](/docs/libraries/acul/js-sdk/Screens/type-aliases/MfaPollingOptions#oncompleted) callback is invoked and polling stops automatically.

  Use the returned [MfaPushPollingControl](/docs/libraries/acul/js-sdk/Screens/interfaces/MfaPushPollingControl) to start, stop, or check the status of the polling process at any time.

  Returns an [MfaPushPollingControl](/docs/libraries/acul/js-sdk/Screens/interfaces/MfaPushPollingControl) instance exposing:

  * `startPolling()` — Starts or resumes polling.
  * `stopPolling()` — Cancels polling immediately.
  * `isRunning()` — Indicates whether polling is currently active.

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

  const mfaPushChallengePush = new MfaPushChallengePush();

  // Start polling every 5 seconds until the push challenge is approved
  const control = mfaPushChallengePush.pollingManager({
    intervalMs: 5000,
    onCompleted: () => mfaPushChallengePush.continue(),
    onError: (error) => console.error('Polling error:', error),
  });

  // Later, cancel polling if needed
  control.stopPolling();
  ```

  **Remarks**

  * HTTP 429 (rate limit) responses are handled internally: polling automatically waits until the rate limit resets before retrying.
  * Safe to call `startPolling()` multiple times; it has no effect if already running.

  **Method Parameters**

  <Expandable title="Parameters">
    <ParamField body="options">
      [MfaPollingOptions](/docs/libraries/acul/js-sdk/Screens/type-aliases/MfaPollingOptions).
    </ParamField>

    <ParamField body="intervalMs?" type="number">
      Optional interval, in milliseconds, between consecutive polling requests. If omitted, the SDK's internal default interval is used (typically 5000 ms).
    </ParamField>

    <ParamField body="onCompleted()?" type="() => void">
      Optional callback executed once the MFA push challenge is successfully approved and polling completes. Called exactly once, after which polling stops automatically.
    </ParamField>

    <ParamField body="onError()?" type="(error) => void">
      Optional callback invoked if an error occurs while polling. Receives an `ULError` object containing `status` (HTTP status code) and `responseText` (raw response body).
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="resendPushNotification" type="Promise<void>">
  This method resends the push notification.

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

  const mfaPushChallengePush = new MfaPushChallengePush();
  await mfaPushChallengePush.resendPushNotification();
  ```

  **Method Parameters**

  <Expandable title="Parameters">
    <ParamField body="options">
      [WithRememberOptions](/docs/libraries/acul/js-sdk/Screens/interfaces/WithRememberOptions).
    </ParamField>

    <ParamField body="rememberDevice?" type="boolean">
      Indicates whether to remember the device.
    </ParamField>
  </Expandable>
</ParamField>

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

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

  const mfaPushChallengePush = new MfaPushChallengePush();
  await mfaPushChallengePush.tryAnotherMethod();
  ```
</ParamField>
