# Authyo OTP for Easy Form Builder

> Add OTP verification to Easy Form Builder forms with no extra fields. A Send OTP button appears beside the native Email and Phone fields, and visitors verify by Email, SMS, WhatsApp or Voice Call.

Source: https://authyo.io/authyo-docs/authyo-otp-for-easy-form-builder/

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

## At a glance

- **What it does:** Adds one-time-password (OTP) verification to the native Email and Phone fields of Easy Form Builder forms. No extra widget or shortcode is needed.
- **OTP channels:** Email, SMS, WhatsApp and Voice Call (Voice Call works only on Indian phone numbers).
- **How it works:** Once your Authyo keys are saved, every form with a native Email or Phone field is protected automatically. You switch OTP **off** for individual forms in the **Forms** tab.
- **You need:** Easy Form Builder, WordPress 6.5+, PHP 7.4+, and an Authyo account with a Client ID and Client Secret.
- **Settings location:** WordPress admin, under **Authyo OTP for Easy Form Builder**.
- **Before you connect:** The plugin does nothing until you save valid credentials. Your forms keep submitting as before.
- **Safety net:** If your Authyo wallet balance runs out, the field is marked verified so visitors can still submit, and the site admin is emailed (at most once an hour).
- **Get the plugin:** [WordPress.org: Authyo OTP for Easy Form Builder](https://wordpress.org/plugins/authyo-otp-for-easy-form-builder/)

## Overview

**Authyo OTP for Easy Form Builder** adds a one-time-password check to your Easy Form Builder forms. As soon as a visitor types a valid email address or phone number into a form field, an OTP panel with a **Send OTP** button appears under it. The visitor enters the code they receive, and only then can they submit the form.

You do not add any special field. Build your form as usual with the native **Email** and **Phone** fields. Once your Authyo keys are saved, every matching form is protected. If a form does not need OTP, switch it off in the **Forms** tab.

_Authyo is an official partner of Easy Form Builder by WhiteStudio. This integration is developed and supported by Authyo (Konceptwise Digital Media Pvt. Ltd.) in partnership with WhiteStudio._

- **No extra fields:** The plugin enhances the Email and Phone fields your form already has. Nothing to drag in and no shortcodes.
- **Automatic, with per-form control:** Every matching form uses OTP by default. Switch it off for any form in the Forms tab, for example while testing.
- **Four OTP channels:** Email, SMS, WhatsApp and Voice Call. Voice Call currently works only on Indian phone numbers.
- **Visitor channel choice:** Let visitors pick SMS, WhatsApp or Voice right on the form, with a fallback if the code does not arrive.
- **Guided tour and checklist:** A step-by-step tour and a setup checklist show what is done and what is left.
- **Country selector:** A country selector next to phone fields. Show all countries, a selected group or a single country.
- **Server-side check:** Verification is enforced on the server, so turning off JavaScript does not bypass it.
- **Fail-safe protection:** If your balance runs out, forms keep working and the admin is emailed, so you do not lose leads.

## Requirements

- WordPress **6.5** or later and PHP **7.4** or later.
- **Easy Form Builder** installed and activated.
- An **Authyo account** with an application. You will need its **Client ID** and **Client Secret**.
- Balance in your Authyo wallet to send OTPs.

## Installation

Install Easy Form Builder first, then the Authyo add-on.

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

### Step 2: Install Authyo OTP for Easy Form Builder
Go to **Plugins → Add New**, search for **Authyo OTP for Easy Form Builder**, 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 for Easy Form Builder** item appears in the WordPress admin menu. The settings page has four tabs: **General**, **Verification Methods**, **Forms** and **How to Use**. A guided tour starts to walk you through setup. You can close it at any time and restart it with **Take the tour**.

## Setup

Connect the plugin to your Authyo account and choose how OTPs are sent. A setup checklist on the General tab shows what is done and what is left.

### Step 1: Create your Authyo account
On the **General** tab, click **Create Your Free Authyo Account**. It opens the Authyo sign-up page. You can also go to [app.authyo.io](https://app.authyo.io/account/welcome?ref=H.TA64CC59&utm_source=partner&utm_medium=referral&utm_campaign=partner-program) yourself.

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

### Step 3: Paste them into the General tab
Under **API Credentials**, enter the **Client ID** and **Client Secret**, then save. After saving, each field shows **Saved**. Leave a field blank to keep the saved value.

_Until you save valid credentials, the plugin is completely dormant. It adds nothing to your pages, calls no external service, and every form submits exactly as before._

### Step 4: Choose your channels
Open the **Verification Methods** tab. Under **Enable OTP Channels**, switch on **Email**, **SMS**, **WhatsApp** and **Voice Call** as needed. Email is on by default and the others are off. Voice Call currently works only on Indian phone numbers.

### Step 5: Adjust the OTP options (optional)
Under **OTP Defaults**, set the code length, expiry, resend cooldown and resend limit. Under **Phone OTP Settings**, set the **Primary Method** and the **Fallback Timer**. Under **Country Dropdown Configuration**, choose which countries to show.

## How to use

There is no extra step in the form builder. Once your keys are saved and a channel is on, OTP appears on its own.

### Step 1: Build your form as usual
In Easy Form Builder, add a native **Email** and/or **Phone** field to your form, then save it. If you like, rename the field’s label to something like “Authyo Verified Email” so it reads as a verification field in the builder.

### Step 2: View the form on your site
Open the page that holds the form. As soon as a visitor types a valid email address or phone number, an OTP panel with a **Send OTP** button appears under the field.

### Step 3: The visitor verifies
The visitor clicks **Send OTP**, receives a code, types it in and clicks **Verify OTP**. The field then shows **Email verified** or **Phone verified**. Only then can the form be submitted, unless you allowed skipping for that channel.

### Step 4: Switch OTP off for a form (optional)
Open the **Forms** tab. Every Easy Form Builder form is listed with an on/off switch. Switch a form off while you are building or testing it, or if it does not need verification. This does not affect your other forms or your channel settings.

_Using a page cache? Pages with an Easy Form Builder form are excluded from caching automatically while OTP is active. If you turn OTP on for a form, or enable a channel, after a page was already cached, clear your cache once._

## Settings reference

Every setting in the plugin, grouped by the tab where you find it under **Authyo OTP for Easy Form Builder**.

### General: API credentials

- **Client ID**: The Client ID of your Authyo application.
- **Client Secret**: The Client Secret of your Authyo application. After saving it shows **Saved**. Leave it blank to keep the saved value. Credentials are stored encrypted.
- **Remove saved keys**: Deletes your Client ID and Client Secret and clears the downloaded country list. OTP then switches off on all forms until you add new keys. Your other settings are kept.

### Verification Methods: channels

- **Enable OTP Channels** (Default: Email on, others off): Switch on **Email**, **SMS**, **WhatsApp** and **Voice Call**. Voice Call currently works only on Indian phone numbers.

### Verification Methods: OTP defaults

- **OTP Length** (Default: 6): Number of digits in the code. Allowed range: 4 to 8.
- **Expiry (min)** (Default: 5): How long a code stays valid. Allowed range: 1 to 10.
- **Resend Cooldown (sec)** (Default: 30): How long visitors must wait before requesting another code. Allowed range: 10 to 120.
- **Max Resends** (Default: 3): How many times a visitor can request a new code. Allowed range: 1 to 5.

### Verification Methods: phone OTP

- **Primary Method** (Default: SMS): The method used first for phone numbers: SMS, WhatsApp or Voice Call.
- **Fallback Timer (sec)** (Default: 30): How long to wait before offering other methods. Allowed range: 15 to 120.
- **Allow visitor to choose method immediately** (Default: Off): When on, visitors pick SMS, WhatsApp or Voice Call right after entering their number.

### Verification Methods: skip verification

Use with caution. When on, a **Skip Verification** button is shown on that channel’s OTP panel and visitors can submit without verifying.

- **Allow skip for Email verification**: Let visitors skip email verification.
- **Allow skip for Phone verification**: Let visitors skip phone verification.

### Verification Methods: country dropdown

- **Country display mode** (Default: All countries): **All countries**, **Selected countries only** or **Single country** (the dropdown is hidden).
- **Selected countries / Single country**: Choose which countries to show, or the one country to use.
- **Default country**: The country preselected when the page loads. Visitors can still change it.
- **Refresh**: The list of countries is downloaded from Authyo when you save your credentials and refreshed automatically once a week. Click **Refresh** to update it now.

### Forms

- **OTP Verification (per form)** (Default: On): An on/off switch for every Easy Form Builder form. Forms are on by default until you switch one off.

## Security and privacy

How the plugin keeps verification safe, and what it stores.

### Step 1: Server-side check
The plugin checks verification on the server when the form is submitted, so it is not bypassed by turning off JavaScript. For email fields it also checks that the address submitted is the one that was verified.

### Step 2: Short-lived hashes only
To rate-limit requests and match a verification to a submission, the plugin keeps salted, non-reversible hashes of the visitor’s IP address and of the verified value, for at most 30 minutes. Email addresses and phone numbers are sent to Authyo only to deliver and check the code, and are not saved by this plugin. Form submissions are stored by Easy Form Builder as before.

### Step 3: Privacy policy text
The plugin adds a suggested paragraph to **Settings → Privacy → Policy Guide** that you can use in your site’s privacy policy.

### Step 4: Behind a proxy or CDN
Rate limits are tracked per visitor using the IP address WordPress sees. If your host does not pass on the real visitor IP, every visitor looks the same. A developer can return the real address with the `authyo_efb_remote_ip` filter.

## Troubleshooting

### Nothing happens on my forms
The plugin is dormant until you save valid credentials. Open the **General** tab, enter your **Client ID** and **Client Secret** and save. Then check that at least one channel is switched on in **Verification Methods**.

### I see “Setup incomplete — add your Authyo API credentials”
Go to the **General** tab and add your Client ID and Client Secret.

### I see a warning that my saved keys cannot be read
The WordPress security salts in `wp-config.php` were changed after your keys were saved, so the keys can no longer be decrypted. Forms keep working without OTP. Re-enter your **Client ID** and **Client Secret** and save.

### The OTP panel does not appear under the field
Check that the form has a native **Email** or **Phone** field, that OTP is switched on for that form in the **Forms** tab, and that the matching channel is enabled. The panel appears once the visitor types a valid email address or phone number. Clear your page cache once if the page was cached before you turned OTP on.

### The OTP does not arrive
Check your credentials, that the channel is switched on, that your Authyo wallet has balance, and that the email address or phone number is valid. Voice Call works only on Indian phone numbers.

### Visitors see “Please verify your email address before submitting this form” or “Please verify your phone number…”
The visitor tried to submit before verifying. They need to request the code, enter it and then submit. Or switch on the skip option for that channel.

### The form is submitted without OTP when my balance is empty
This is the safety net. If Authyo reports that your wallet balance is exhausted, the field is marked verified so visitors can still submit, and the site admin is emailed at most once an hour. Click **Add credits** in the admin notice to top up.

### Visitors see an error and cannot submit
If the Authyo service cannot be reached at all, the visitor sees an error and can try again. The form is not submitted unverified in that case. Check your internet connection and the Authyo status.

### Many visitors see “Too many attempts”
Your site may be behind a proxy or CDN that hides real IP addresses, so all visitors share one limit. Ask your host to pass on the real IP, or return it with the `authyo_efb_remote_ip` filter.

### I see an admin notice after updating Easy Form Builder
The server-side check depends on Easy Form Builder’s submission endpoint. If an update changes it, the plugin shows a notice and lets submissions through, so genuine leads are never lost, until the Authyo plugin is updated. Update the plugin.

### The country list is empty
It is downloaded when you save your credentials. Open **Verification Methods → Country Dropdown Configuration** and click **Refresh**.

### I want to test a form without sending real OTPs
Switch the form off in the **Forms** tab while you test, then switch it on again to go live.

## Frequently asked questions

### Do I need an Authyo account?
Yes. You need a free Authyo account and a Client ID and Client Secret to send OTPs.

### Do I need to add a special field to my form?
No. The plugin works with the standard Email and Phone fields in Easy Form Builder. Build your form as usual.

### When does OTP verification start?
Only after you save valid Authyo credentials. Until then the plugin is dormant and your forms submit as before. The same applies if the saved credentials can no longer be read.

### Can I turn OTP off for one form?
Yes. The **Forms** tab lists every form with an on/off switch. Forms are on by default.

### What happens if my Authyo balance runs out?
When Authyo reports an exhausted balance, the field is marked verified so genuine visitors can still submit, and the site admin gets an email at most once an hour. If Authyo cannot be reached at all, the visitor sees an error and can retry. The form is not submitted unverified.

### Can visitors choose how they receive the code?
Yes. Switch on **Allow visitor to choose method immediately** and visitors can pick SMS, WhatsApp or Voice Call.

### Does it support international phone numbers?
Yes. A country selector is added next to phone fields, using the list of countries Authyo supports. You can show all countries, a filtered selection or a single country.

### Does it work with a caching plugin?
Yes. Pages with an Easy Form Builder form are marked as not cacheable while OTP is active. If you turn OTP on after a page was cached, clear your cache once.

### Does the plugin store my visitors’ personal data?
No. Email addresses and phone numbers are sent to Authyo only to deliver and check the code. On your site it keeps only short-lived (30 minutes at most), salted, non-reversible hashes. Submissions are stored by Easy Form Builder as before.

### Can I remove my saved keys?
Yes. On the **General** tab, under **API Credentials**, click **Remove saved keys** and confirm. OTP switches off on all forms until you add new keys.

### Is this plugin affiliated with Easy Form Builder?
Yes. Authyo is an official partner of Easy Form Builder by WhiteStudio, and this is the partner OTP integration.

## Support

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