---
updatedAt: 2026-09-21T10:19:11.000Z
agentTools:
  projectIndex: https://docs.enterprise.appier.com/llms.txt
---

# Multi-Factor Authentication

Add an extra layer of security to protect your account.

Multi-factor authentication (MFA) adds an extra layer of security by requiring a verification code in addition to your password when you log in.

MFA using [email codes](#email-codes) is enabled by default, but we recommend enabling MFA using [authenticator apps](#recommended-authenticator-app) for improved security and sign-in convenience. For a comparison of MFA methods, see [Email codes vs authenticator app.](#email-codes-vs-authenticator-app)

<Image src="https://files.readme.io/f1d2411c63a5da7afb68e6ee423e7722f7e9c9bfdb9c72d54a384c021475a905-mfa-screen.png" align="center" width="80%" />

<br />

***

## Email codes vs authenticator app

<HTMLBlock>{`
<div class="mfa-compare">
  <style>
    .mfa-compare {
      --color-fg-blue: #296AFF;
      --color-fg-blue-hover: #0E4EFF;
      --color-fg-gray: #80849C;
      --color-bg-blue: #EAF1FF;
      --color-fg-green: #00BA77;
      --color-bg-green: #C7FFEB;
      --color-text-high: #000A3A;
      --color-text-med: rgba(0,10,58,0.80);
      --color-text-low: rgba(0,10,58,0.57);
      --color-surface-card: #FAFBFC;
      --color-surface-secondary: #F4F6F9;
      --color-border-general: #D9DAE1;
      --radius-md: 2px;

      max-width: 820px;
      width: 100%;
      margin: 32px auto;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
      color: var(--color-text-high);
    }
    .mfa-compare * { box-sizing: border-box; }

    .mfa-compare .mfa-grid {
      display: grid;
      grid-template-columns: minmax(92px, 0.7fr) 1fr 1fr;
      border: 1px solid var(--color-border-general);
      border-radius: var(--radius-md);
      background: #fff;
    }

    .mfa-compare .mfa-cell {
      padding: 13px 14px;
      display: flex;
      align-items: center;
      gap: 8px;
      border-bottom: 1px solid var(--color-border-general);
      font-size: 14px;
      line-height: 1.4;
    }
    .mfa-compare .mfa-grid > .mfa-cell:nth-last-child(-n+3) {
      border-bottom: none;
    }
    /* corner rounding lives on the cells themselves, since the grid no
       longer clips overflow (the tooltip bubble needs room to escape) */
    .mfa-compare .mfa-grid > .mfa-cell:nth-child(1) { border-top-left-radius: var(--radius-md); }
    .mfa-compare .mfa-grid > .mfa-cell:nth-child(3) { border-top-right-radius: var(--radius-md); }
    .mfa-compare .mfa-grid > .mfa-cell:nth-last-child(3) { border-bottom-left-radius: var(--radius-md); }
    .mfa-compare .mfa-grid > .mfa-cell:nth-last-child(1) { border-bottom-right-radius: var(--radius-md); }

    /* header row */
    .mfa-compare .mfa-head {
      font-weight: 700;
      font-size: 14.5px;
      background: var(--color-surface-secondary);
    }
    .mfa-compare .mfa-head.mfa-email { color: var(--color-fg-gray); }
    .mfa-compare .mfa-head.mfa-app { color: var(--color-fg-green); }
    .mfa-compare .mfa-head-blank { background: var(--color-surface-secondary); }

    /* row label column */
    .mfa-compare .mfa-label {
      color: var(--color-text-med);
      font-weight: 600;
      background: var(--color-surface-card);
    }
    .mfa-compare .mfa-label svg { flex: none; opacity: 0.6; }

    /* value cells */
    .mfa-compare .mfa-val { color: var(--color-text-med); }
    .mfa-compare .mfa-val svg { flex: none; }
    .mfa-compare .mfa-good svg { color: var(--color-fg-green); }
    .mfa-compare .mfa-dash { color: var(--color-text-low); }

    .mfa-compare .mfa-link {
      color: var(--color-fg-blue);
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .mfa-compare .mfa-link:hover { color: var(--color-fg-blue-hover); }

    /* hover/focus tooltip */
    .mfa-compare .mfa-tooltip {
      position: relative;
      display: inline-flex;
      align-items: center;
      margin-left: 2px;
      color: var(--color-text-low);
      cursor: help;
    }
    .mfa-compare .mfa-tooltip svg { display: block; flex: none; opacity: 1; }
    .mfa-compare .mfa-tooltip-bubble {
      position: absolute;
      bottom: calc(100% + 9px);
      left: 50%;
      transform: translateX(-50%);
      width: 224px;
      background: var(--color-text-high);
      color: #fff;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.45;
      padding: 9px 11px;
      border-radius: 8px;
      box-shadow: 0 4px 16px rgba(0,10,58,0.22);
      opacity: 0;
      visibility: hidden;
      transition: opacity .15s ease, visibility .15s ease;
      pointer-events: none;
      z-index: 10;
    }
    .mfa-compare .mfa-tooltip-bubble::after {
      content: "";
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      border: 5px solid transparent;
      border-top-color: var(--color-text-high);
    }
    .mfa-compare .mfa-tooltip:hover .mfa-tooltip-bubble,
    .mfa-compare .mfa-tooltip:focus .mfa-tooltip-bubble,
    .mfa-compare .mfa-tooltip:focus-visible .mfa-tooltip-bubble {
      opacity: 1;
      visibility: visible;
    }

    @media (max-width: 480px) {
      .mfa-compare .mfa-grid { grid-template-columns: minmax(68px, 0.6fr) 1fr 1fr; }
      .mfa-compare .mfa-cell { padding: 11px 9px; font-size: 13px; }
      .mfa-compare .mfa-head { font-size: 13px; }
      .mfa-compare .mfa-tooltip-bubble { width: 180px; left: 0; transform: none; }
      .mfa-compare .mfa-tooltip-bubble::after { left: 14px; transform: none; }
    }
  </style>

  <div class="mfa-grid">
    
    <div class="mfa-cell mfa-head-blank"></div>
    <div class="mfa-cell mfa-head mfa-app">
      <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="7" y="2" width="10" height="20" rx="2"></rect><path d="M11 18h2"></path></svg>
      Authenticator app
    </div>
    <div class="mfa-cell mfa-head mfa-email">
      <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16v16H4z"></path><path d="m4 6 8 7 8-7"></path></svg>
      Email code
    </div>

    
    <div class="mfa-cell mfa-label">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"></path></svg>
      Security
    </div>
    <div class="mfa-cell mfa-val mfa-good">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"></path></svg>
      Code never leaves your device
    </div>
    <div class="mfa-cell mfa-val">
      <svg class="mfa-dash" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path></svg>
      Code travels over email
    </div>

    
    <div class="mfa-cell mfa-label">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg>
      Speed
    </div>
    <div class="mfa-cell mfa-val mfa-good">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"></path></svg>
      Instantly displayed on screen
    </div>
    <div class="mfa-cell mfa-val">
      <svg class="mfa-dash" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path></svg>
      Waits for the email to arrive
    </div>

    
    <div class="mfa-cell mfa-label">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12.55a11 11 0 0 1 14.08 0"></path><path d="M1.42 9a16 16 0 0 1 21.16 0"></path><path d="M8.53 16.11a6 6 0 0 1 6.95 0"></path><circle cx="12" cy="20" r="1"></circle></svg>
      Connectivity
    </div>
    <div class="mfa-cell mfa-val mfa-good">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"></path></svg>
      Works offline, no signal needed
    </div>
    <div class="mfa-cell mfa-val">
      <svg class="mfa-dash" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path></svg>
      Needs an internet connection
    </div>

    
    <div class="mfa-cell mfa-label">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20h9"></path><path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"></path></svg>
      Allowlisting
    </div>
    <div class="mfa-cell mfa-val mfa-good">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"></path></svg>
      Nothing to allowlist
    </div>
    <div class="mfa-cell mfa-val">
      <svg class="mfa-dash" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path></svg>
      <span>May need <a class="mfa-link" href="#allowlist-appiers-authentication-emails">allowlisting</a> by your email admin</span>
    </div>

    
    <div class="mfa-cell mfa-label">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="10" rx="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
      SSO login
      <span class="mfa-tooltip" tabindex="0" aria-label="Signing in with SSO always uses an email code, even if you've set up an authenticator app.">
        <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4M12 8h.01"></path></svg>
        <span class="mfa-tooltip-bubble" role="tooltip">Signing in with SSO (for example, Google or Facebook) always uses an email code, even if you've set up an authenticator app.</span>
      </span>
    </div>
    <div class="mfa-cell mfa-val">
      <svg class="mfa-dash" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path></svg>
      Not supported
    </div>
    <div class="mfa-cell mfa-val mfa-good">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"></path></svg>
      Supported
    </div>

    
    <div class="mfa-cell mfa-label">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1Z"></path></svg>
      Setup
    </div>
    <div class="mfa-cell mfa-val">
      <svg class="mfa-dash" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path></svg>
      Requires a <a class="mfa-link" href="#setting-up-an-authenticator-app">one-time setup</a>
    </div>
    <div class="mfa-cell mfa-val mfa-good">
      <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"></path></svg>
      Enabled by default for all accounts
    </div>
  </div>
</div>
`}</HTMLBlock>

<Callout icon="👍" theme="success">
  [Set up an authenticator app for MFA](https://docs.enterprise.appier.com/docs/account-and-usage-account-security-center#set-up-an-authenticator-app) in the <Anchor target="_blank" href="https://myaccount.appier.com/">Account Security Center</Anchor>.
</Callout>

***

## (Recommended) Authenticator app

Along with email-based codes, you can set up MFA using an authenticator app instead. Authenticator apps provide a time-limited, one-time code, which is more secure than an email-based code.

* [What is an authenticator app?](#what-is-an-authenticator-app)
* [Why use an authenticator app instead of email codes?](#why-use-an-authenticator-app-instead-of-email-codes)
* [What if I change devices?](#what-if-i-change-devices)
* [Setting up an authenticator app](#setting-up-an-authenticator-app)
* [Signing in with an authenticator app code](#signing-in-with-an-authenticator-app-code)

<Callout icon="ℹ️" theme="info">
  ### MFA authenticator app support

  MFA via authenticator app is only supported when signing in with your email and password. If you sign in using SSO (for example, using Google or Facebook), you'll continue to receive verification codes by email only.
</Callout>

### What is an authenticator app?

An authenticator app is an app that generates a new 6-digit security code on a fixed time interval. Instead of waiting for a code by email, you just open the app and enter the code it's displaying.

### Why use an authenticator app instead of email codes?

Authenticator apps provide several benefits over email codes.

* **It's faster and more reliable.** Codes are displayed in the app immediately, and apps still generate codes even when you don't have internet or phone signal.
* **It's simpler.** You don't need to allowlist Appier's authentication emails or manage spam filters. Authenticator apps can be used on your phone, computer, or as a browser extension to fit your needs.
* **It's more secure**. Codes expire after a fixed period of time and never travel over email.

You only need one app, so you can pick whichever is most convenient for you. Some common authenticator apps are listed here.

| App                     | Platform                           |
| ----------------------- | ---------------------------------- |
| Google Authenticator    | Mobile (iOS/Android)               |
| Microsoft Authenticator | Mobile (iOS/Android)               |
| Authy                   | Mobile, Desktop                    |
| 1Password               | Mobile, Desktop, Browser extension |
| Bitwarden               | Mobile, Desktop, Browser extension |

### What if I change devices?

Before changing to a new device, turn off authenticator app MFA, then set it up again using your new device.

1. Go to the <Anchor target="_blank" href="https://myaccount.appier.com/">Account Security Center</Anchor>, then go to the **Security** tab.
2. Next to **Authenticator app**, turn off the toggle, then click **Turn off** to confirm.

![](https://files.readme.io/93b172b2ab7144a679bc56af2c67200497f4cb81df94c33631c49026b6263860-image.png)

3. When prompted, sign in again, including your current verification code, to confirm.
4. [Set up the authenticator app](#setting-up-an-authenticator-app) again on your new device.

<Callout icon="📘" theme="info">
  Turning off the authenticator app invalidates codes from your old device and any saved recovery codes. You can set it up again anytime.
</Callout>

### Setting up an authenticator app

Go to the Account Security Center and enable the option to [set up an authenticator app for MFA](https://docs.enterprise.appier.com/docs/account-and-usage-account-security-center#set-up-an-authenticator-app).

### Signing in with an authenticator app code

If you sign in with your email and password and have also set up an authenticator app, logins require the authenticator app code. Authenticator app codes aren't supported when signing in via single sign-on (SSO), such as logins using your Google or Facebook account.

1. Enter your email and password.
2. Open the app and enter the current code, then click **Continue** to finish logging in.

If you check **Remember this device for 30 days**, you'll be able to log in without needing to enter the one-time code for the next 30 days.

<Image src="https://files.readme.io/11eb78950fb356eb301267b538ef049c458986d6690268b73ddc009dffb21747-mfa-auth-app.png" align="center" width="50%" />

***

## Email codes

Enterprise console accounts have MFA by email enabled by default. Email codes are sent to the same email address you log in with. If your organization's email security policy blocks external senders by default, please [allowlist Appier's authentication emails](#allowlist-appiers-authentication-emails) so verification codes reach your users reliably.

### Signing in with an email code

1. Enter your email and password, or sign in via single sign-on (SSO).
2. Enter the code sent to your email and click **Continue** to finish logging in.

<Callout icon="far fa-shield-check" theme="success">
  ### SSO login

  SSO logins (for example, using Google or Facebook) always use email verification codes.
</Callout>

<Image src="https://files.readme.io/5b9820f5aa695dc404e8f37357433f2a051011f572f5ada72e6952b61e7abf32-mfa-screen.png" align="center" width="50%" />

### Allowlist Appier's authentication emails

If your organization's email security policy blocks external senders by default, allowlist Appier's authentication emails so verification codes and breach notifications reach your users reliably.

* From: `Appier Solutions <enterprise_solution@appier.com>`
* Domain: `appier.com` (envelope and bounce domain: `amazonses.appier.com`)
* Sent via Amazon SES. Passes SPF, DKIM (`d=appier.com`), and DMARC

Ask your email or IT admin to allow mail where the sender domain is `appier.com` and the message passes DMARC, or DKIM `d=appier.com`. Keeping the DMARC check lets genuine emails through while still blocking spoofed look-alikes.

* **Microsoft 365:** add `appier.com` to the Tenant Allow/Block List, or add a mail flow rule for sender domain `appier.com` with an `Authentication-Results` header containing `dmarc=pass`.
* **Google Workspace:** in the Gmail admin console, go to **Spam settings > Approved senders** and add `appier.com`, then bypass spam filtering for authenticated senders only.
* **Proofpoint, Mimecast, Barracuda, and Cisco:** permit sender domain `appier.com`, ideally combined with an SPF, DKIM, or DMARC pass condition.

If your email system can't allowlist by domain, please contact your customer success manager for guidance on setting up your allowlist.