# Authyo OTP for Ninja Forms

> Add email and phone OTP verification to your Ninja Forms forms. Drag an Authyo field into your form and verify visitors by Email, SMS, WhatsApp or Voice Call before they can submit.

Source: https://authyo.io/authyo-docs/authyo-otp-for-ninja-forms/

> Note: Voice Call OTP is currently available only in India.

## At a glance

- **What it does:** Adds one-time-password (OTP) verification for email addresses and phone numbers to Ninja Forms forms, using drag-and-drop fields.
- **OTP channels:** Email, SMS, WhatsApp and Voice Call (Voice Call is available in India only).
- **Fields it adds:** **Authyo Email** and **Authyo Phone**, in the form builder’s field list. No shortcodes are needed.
- **You need:** Ninja Forms (free or paid), WordPress 5.0+, and an Authyo account with an App ID, Client ID and Client Secret.
- **Settings location:** WordPress admin, under **Authyo OTP for Ninja Forms** (the menu item is labelled **Authyo OTP**).
- **Safety net:** If Authyo is not configured or your wallet balance is used up, submissions continue without OTP so no leads are lost.
- **Get the plugin:** [WordPress.org: Authyo OTP for Ninja Forms](https://wordpress.org/plugins/authyo-otp-for-ninja-forms/)

## Overview

**Authyo OTP for Ninja Forms** adds a one-time-password check to your Ninja Forms forms. Visitors verify their email address or phone number before the form can be submitted, which cuts spam and fake submissions.

You add OTP with a normal form field. In the Ninja Forms builder, drag in an **Authyo Email** or **Authyo Phone** field. The plugin is focused on form verification only, so it stays light.

_This plugin is an independent add-on for Ninja Forms, developed by Konceptwise Digital Media Pvt. Ltd. It is not affiliated with, endorsed by or supported by Ninja Forms._

- **Native Ninja Forms fields:** Two Authyo fields that you drag into any form, like any other field. No shortcodes.
- **Email and phone OTP:** Verify an email address, a phone number, or both in the same form.
- **Four OTP channels:** Email, SMS, WhatsApp and Voice Call. Voice Call is currently available in India only.
- **Fallback methods:** Phone OTP can fall back from one channel to another. Set a primary method and a fallback timer.
- **Visitor channel choice:** Optionally let visitors choose SMS, WhatsApp or Voice Call as soon as they enter their number.
- **Country selector:** Show all countries, selected countries only, or a single country.
- **Setup wizard:** A five-step popup that takes you from credentials to a form with OTP.
- **Fail-safe protection:** Submissions continue if Authyo is not configured or your balance is exhausted, so no leads are lost.

## Requirements

- WordPress **5.0** or later.
- **Ninja Forms** (free or paid) installed and activated. The plugin shows a notice if it is missing.
- An **Authyo account** with an application. You will need its **App ID**, **Client ID** and **Client Secret**.
- Balance in your Authyo wallet to send OTPs.

## Installation

Install Ninja Forms first, then the Authyo add-on.

### Step 1: Install and activate Ninja Forms
Go to **Plugins → Add New**, search for **Ninja Forms**, then click **Install Now** and **Activate**. Skip this step if it is already active.

### Step 2: Install Authyo OTP for Ninja Forms
Go to **Plugins → Add New**, search for **Authyo OTP for Ninja Forms**, then click **Install Now** and **Activate**. You can also upload the plugin ZIP using **Plugins → Add New → Upload Plugin**.

### Step 3: Open the plugin settings
A new **Authyo OTP** item appears in the WordPress admin menu. A setup popup and an interactive tour help you get started.

## Setup

Connect the plugin to your Authyo account and choose how OTPs are sent. You can use the setup popup, or fill in the settings page yourself.

### Step 1: Create your Authyo account
Go to [app.authyo.io](https://app.authyo.io/account/welcome) and create a free account.

### Step 2: Copy your credentials
Open [your applications](https://app.authyo.io/application/userapplication) in the Authyo dashboard and copy the **App ID**, **Client ID** and **Client Secret**. Create an application first if you do not have one.

### Step 3: Paste them into the settings
Go to **Authyo OTP → Settings**. Under **API Credentials**, enter the **App ID**, **Client ID** and **Client Secret**, then save. After saving, leave a field blank to keep its saved value.

_The setup popup has five steps: Credentials, Channels, Countries, OTP Behaviour and Form Setup. The first two are required and the rest are optional._

### Step 4: Enable your OTP channels
Under **Enable OTP Channels**, switch on **Email**, **SMS**, **WhatsApp** and **Voice Call** as needed. For phone channels, make sure your form has a phone field. Voice Call is currently available only for India.

### Step 5: Choose the phone method and countries (optional)
Under **Phone OTP Method**, pick the **Primary Phone OTP Method**. Under **Country Settings**, choose which countries the phone field shows. The defaults work for most sites.

## How to use

OTP is added with a form field, not a shortcode. Edit a form in Ninja Forms and drag an Authyo field into it.

### Step 1: Open your form
Go to **Ninja Forms → Dashboard** and open the form you want to protect, or create a new one.

### Step 2: Add an Authyo field
In the form builder, add one of these from the field list: **Authyo Email** to verify an email address, or **Authyo Phone** to verify a phone number by SMS, WhatsApp or Voice Call. Use both to verify both.

### Step 3: Set the field options
Click the field and set its **Label**, **Label Position**, **Required**, **Placeholder** and **Description** as you would for any Ninja Forms field.

### Step 4: Save and test the form
Save the form and open it on your site. Enter an email address or phone number, request the code, type the code you receive and submit. If a visitor submits without verifying, the form shows “Please verify your email OTP” or “Please verify your phone OTP”.

_You can also use the **Form Setup** step of the setup popup to add the Authyo fields to a form for you._

## Settings reference

Every setting in the plugin, found under **Authyo OTP**.

### API credentials

- **App ID**: The App ID of your Authyo application.
- **Client ID**: The Client ID of your Authyo application.
- **Client Secret**: The Client Secret of your Authyo application. After saving, leave it blank to keep the saved value.

### Enable OTP channels

- **Email, SMS, WhatsApp, Voice Call**: Switch on the channels you want to offer. At least one is required. For phone channels your form needs a phone field. Voice Call is currently available only for India.

### General configuration

- **OTP Length** (Default: 6): Number of digits in the code. Allowed range: 4 to 8.
- **OTP Expiry (seconds)** (Default: 300): How long a code stays valid.
- **Resend Cooldown (seconds)** (Default: 30): How long before the Resend button is enabled. Allowed range: 10 to 300.

### Phone OTP method

- **Primary Phone OTP Method** (Default: SMS): The method used first when sending phone OTPs: SMS, WhatsApp or Voice Call. Only the enabled channels are shown to visitors.
- **Fallback Timer (seconds)** (Default: 30): How long to wait before fallback options appear. Allowed range: 10 to 300.
- **Allow Visitor Method Choice**: When on, visitors pick SMS, WhatsApp or Voice Call right after entering their number. When off, the primary method is used first and fallback options appear after the timer.

### Country settings

- **Country List Mode**: **All Countries**, **Selected Countries Only** or **Single Country**.
- **Allowed Countries**: The countries to include when **Selected Countries Only** is chosen. Hold Ctrl or Cmd to pick several.
- **Default Country**: The country preselected in the phone field.

### Form fields (in the Ninja Forms builder)

- **Authyo Email**: A field that sends an OTP to an email address. Options: Label, Label Position, Required, Placeholder and Description.
- **Authyo Phone**: A field that sends an OTP to a phone number by SMS, WhatsApp or Voice Call. Options: Label, Label Position, Required, Placeholder and Description.

## Troubleshooting

### I see a notice that Ninja Forms must be installed and active
The add-on needs Ninja Forms. Install and activate it from **Plugins → Add New**, then reload the page.

### I do not see the Authyo fields in the form builder
Check that Ninja Forms and the Authyo plugin are both active. Reload the form builder and look for **Authyo Email** and **Authyo Phone** in the field list.

### The OTP does not arrive
Check your **App ID**, **Client ID** and **Client Secret**, that the channel is switched on under **Enable OTP Channels**, that your Authyo wallet has balance, and that the email address or phone number is valid. Voice Call works only for India.

### I see “Could not decrypt stored value — please re-enter”
A stored credential can no longer be read, usually because the WordPress security keys changed. Re-enter that value in the settings and save.

### Visitors see “Please verify your email OTP” or “Please verify your phone OTP”
The visitor tried to submit before verifying. They need to request the code, enter it, and then submit.

### The form submits without asking for an OTP
If Authyo is not configured, or your Authyo wallet balance is empty, the plugin lets submissions through so no leads are lost. Check your credentials and top up your Authyo wallet. Also check that the form really contains an Authyo field.

### Phone OTP options do not appear
Switch on at least one phone channel (SMS, WhatsApp or Voice Call) under **Enable OTP Channels**, and add an **Authyo Phone** field to the form.

### The code expired
By default a code is valid for 300 seconds (5 minutes). Ask the visitor to request a new one, or raise **OTP Expiry (seconds)**.

### The wrong countries show in the phone field
Open **Country Settings** and check **Country List Mode**, **Allowed Countries** and **Default Country**.

## Frequently asked questions

### Does it work with the free version of Ninja Forms?
Yes. It works with both the free and paid versions of Ninja Forms.

### Do I need an Authyo account?
Yes. You need an Authyo account to get an App ID, Client ID and Client Secret for the plugin settings.

### Which OTP methods are supported?
Email, SMS, WhatsApp and Voice Call. Voice Call is currently available only for India.

### How do I add OTP to a form?
Drag an **Authyo Email** or **Authyo Phone** field into the form in the Ninja Forms builder. No shortcodes are needed.

### Can I verify both email and phone in one form?
Yes. Add both an Authyo Email field and an Authyo Phone field.

### What happens if my Authyo balance runs out?
The plugin lets submissions through without OTP, so genuine visitors are not blocked and you do not lose leads. Top up your Authyo wallet to turn verification back on.

### Can I limit the countries?
Yes. Under **Country Settings**, choose **Selected Countries Only** or **Single Country**.

### Is any data stored?
The plugin does not store OTPs or personal data permanently. Temporary verification data is kept in WordPress transients and removed automatically after it expires. Data is sent to Authyo over HTTPS.

### Is this plugin made by the Ninja Forms team?
No. It is developed by Konceptwise Digital Media Pvt. Ltd. and is not affiliated with, endorsed by or supported by Ninja Forms.

## Support

If this guide does not answer your question, submit the support form: https://authyo.io/support/
