Verify Customers (OTP)

Send a one-time code to verify your customers.

When a customer logs in, makes a payment, or accesses their account — send them a 6-digit code by SMS, WhatsApp, or phone call to confirm it's really them.

Multi-channel
SMS, WhatsApp, voice, email fallback
AIT-aware
Per-account + global rate limits
3 channels
Auto-failover if first channel fails
Audit trail
Every verification persisted
What you get

Everything you need.

All the tools in one place — no extra apps, no complicated setup.

Send by SMS, WhatsApp, or call

Send the verification code by SMS first, then WhatsApp if SMS fails, then a voice call — so it always gets through.

Delivered in under 3 seconds

HOVA connects directly to mobile networks across Africa — codes arrive before the customer gets impatient.

Automatic fallback

If the first channel fails, HOVA automatically tries the next one — so customers always receive their code.

HOVA checks the code for you

You just ask HOVA 'is this code valid?' — HOVA handles expiry, retries, and fraud automatically.

Built-in fraud protection

HOVA blocks verification requests to suspicious numbers, SIM-swapped phones, and known fraudsters automatically.

Works across Africa

Direct carrier connections in Ghana, Nigeria, Kenya, and 15+ more countries — no coverage gaps.

Voice call fallback

For customers who can't receive SMS or WhatsApp, HOVA calls them and reads out the code.

Simple to add to any app

Add verification to your website or app in one afternoon — works with any programming language.

Verify Customers (OTP)
For developers

Live in minutes.

Simple REST API with official SDKs for Node.js, Python, PHP, Go, and Java.

Official SDKs in 6 languages
99.9% uptime SLA
Sandbox for testing
Detailed API docs
View API docs
Node.js · Send and verify a one-time code
import { Hova } from '@hova/sdk';
const hova = new Hova({ apiKey: process.env.HOVA_API_KEY });

// 1. Send the code
const request = await hova.verify.send({
  to: '+233244123456',
  brand: 'MyApp',
  channels: ['sms', 'whatsapp', 'voice'],
  codeLength: 6,
  expiry: 300, // 5 minutes
});

// 2. Check the code the user typed
const result = await hova.verify.check({
  requestId: request.id,
  code: userEnteredCode,
});

if (result.status === 'approved') {
  // Let them in!
}
Real examples

Businesses using this every day.

All apps

Account registration

Verify a customer's phone number when they sign up — preventing fake accounts with a simple code.

Finance & Banking

Login verification

When someone logs in from a new device, send a code to confirm it's really the account owner.

E-commerce & Finance

Payment confirmation

Before approving a transfer or purchase, send a code to confirm the account holder authorised it.

All apps

Password reset

Send a secure code to verify identity before allowing a password change — stopping account hijacks.

Logistics

Delivery confirmation

Send a code to the recipient — the rider only hands over the package when they enter it.

Healthcare

Patient portal access

Verify patient identity before they can access medical records or book appointments online.

Add verification to your app today

One setup. Three channels. 98.7% delivery across Africa.

Get started free