Skip to content

Concept map· 6 connected terms

Flash Call Verification

Also called: Flash call · Flash call OTP · Missed call verification · Caller ID verification

In one line
Verifying a phone number with a missed call that drops before it is answered, whose caller ID digits serve as the one-time code.

Reviewed

What is flash call verification?

Flash call verification is a way to confirm that a user controls a phone number by calling it instead of texting it. The verification service places a call from a number whose last few digits are the one-time code, or from a number drawn from a known pool, lets it ring briefly and drops it before anyone can answer. The app, or the user, then reports the incoming caller ID, and the server checks that it matches the call it placed.

On Android an app can catch the incoming number automatically, with the user's permission, and finish verification without any typing. iOS gives apps no access to the call log, so iPhone users must read the last digits from their recent calls and type them in, which removes most of the convenience. Google Play is tightening the Android side too: its July 2026 policy update says READ_CALL_LOG will no longer be permitted for account verification via phone call from 27 January 2027, and it points developers to the Digital Credentials API (which can confirm a number through a carrier-issued token) or the SMS Retriever API.

Flash calls sit among several OTP alternatives. An SMS OTP or a WhatsApp Authentication Template delivers the code as a message; Silent Network Authentication (SNA) checks the SIM over the mobile data connection with no code at all; and a Missed Call Service runs the other way, with the customer ringing the business. Flash calls appeal because an unanswered call over the Public Switched Telephone Network (PSTN) is often cheaper to terminate than an A2P SMS, and that is exactly why many operators now detect them, block them or bill them as a separate traffic type.

Key takeaways

  • Flash call verification proves a user holds a number by ringing it once and matching the caller ID's digits, instead of sending an SMS code.
  • Android apps can read the incoming number automatically; iPhone users have to type the digits from their call log.
  • Google Play will no longer allow READ_CALL_LOG for account verification by phone call from 27 January 2027.
  • Flash calls are often cheaper than SMS OTPs, but operators increasingly detect, block or charge for them.
  • Unlike silent network authentication, a flash call still relies on a code the device must receive and match.

Drag the clock: did the flash call land in time?

13 / 13

Time since it opened

24s

ClosedTimed out: offer an SMS or WhatsApp code
Verify tapped
Call placed
Rings, drops
Caller ID matched
0s5s10s15s20sWindow closes
A sign-up waits 20 seconds for the flash call. On Android the caller ID is matched seconds after it rings; drag past the deadline to see when the app should switch to an SMS or WhatsApp code.

24s in: window closed. Timed out: offer an SMS or WhatsApp code.

How does flash call verification work?

  1. The app requests verification

    The user enters their number, the app normalises it to E.164 and asks your server to verify it.

  2. The server picks a calling number

    It chooses a caller ID whose last digits (commonly four to six) form the code, or one from a pool registered with the app, and stores the expected digits with a short expiry.

  3. The call rings and drops

    The provider places the call and releases it after a ring or two, before it can be answered.

  4. The device reports the caller ID

    On Android the app reads the incoming number through an approved API; on iOS the user types the last digits shown in their recent calls.

  5. The server matches or falls back

    It compares the reported digits with the stored ones in constant time and accepts a match inside the expiry; after a timeout or repeated misses it offers an SMS or WhatsApp code instead.

Why does flash call verification matter?

Verification is a cost that grows with every sign-up and login, and SMS OTPs are a favourite target of SMS Pumping (Artificially Inflated Traffic). Flash calls can cut that cost and remove typing on Android, which helps sign-up completion. But they depend on operator tolerance in each country, on platform permission rules that are changing in 2027 and on users understanding why an unknown number rang once. Teams that choose them deliberately, with an SMS or WhatsApp fallback and a plan for iPhone users, get the savings without stranding anyone.

Flash call verification in code

import crypto from "node:crypto";
const DIGITS = 4;
const TTL_MS = 60_000;
const MAX_TRIES = 3;
// Start: pick a caller ID ending in the code, store it, place the call.
export async function startFlashCall(phoneE164) {
const code = crypto.randomInt(0, 10 ** DIGITS).toString().padStart(DIGITS, "0");
const callerId = await numberPool.reserveEndingWith(code); // your provider's pool
await store.set(`fc:${phoneE164}`, { code, tries: 0, expires: Date.now() + TTL_MS });
await voice.flashCall({ to: phoneE164, from: callerId, maxRingMs: 4000 });
return { digits: DIGITS }; // never return the code
}
// Verify: the app (or the user) reports the incoming number or its last digits.
export async function verifyFlashCall(phoneE164, reported) {
const rec = await store.get(`fc:${phoneE164}`);
if (!rec || Date.now() > rec.expires) return { ok: false, reason: "expired" };
if (rec.tries >= MAX_TRIES) return { ok: false, reason: "locked" };
const a = Buffer.from(rec.code);
const b = Buffer.from(String(reported).replace(/\D/g, "").slice(-DIGITS));
const ok = a.length === b.length && crypto.timingSafeEqual(a, b);
if (!ok) {
await store.set(`fc:${phoneE164}`, { ...rec, tries: rec.tries + 1 });
return { ok: false, reason: "mismatch" };
}
await store.del(`fc:${phoneE164}`);
return { ok: true };
}

numberPool, voice and store stand in for your provider's SDK and your cache. There is no standard flash-call API, so the shape of the provider call varies.

Key facts at a glance

Flash call verification: key facts and limits

Code carrier
Last digits of the caller ID, commonly 4–6
Automatic read
Android only, through an approved permission or API
iPhone
No call-log access: the user types the digits
Google Play change
No READ_CALL_LOG for phone-call verification from 27 Jan 2027
Suggested Android APIs
Digital Credentials API, SMS Retriever API
Call answered?
No: dropped after a ring, before answer
Main operational risk
Operators blocking or repricing flash-call traffic

Common wrong turns

Common mistakes with flash call verification

  • Building on READ_CALL_LOG

    Google Play is removing account verification via phone call as an accepted use of READ_CALL_LOG from 27 January 2027. Move Android verification to the Digital Credentials API or an SMS Retriever code now, and keep manual entry as a fallback.

  • No plan for iPhone users

    iOS can't read the caller ID for you, so a flash call becomes "type four digits from your call log". Offer an SMS or WhatsApp code on iOS, or after one short timeout.

  • Assuming every network carries it

    Operators can detect flash-call patterns and block or reprice them. In India, TRAI's 2025 TCCCPR amendment moved commercial calls onto the 140 and 1600 number series, which may limit the caller IDs a provider can use for Indian numbers. Check coverage per country and operator before rollout.

  • Weak rate limits

    Every request costs you a call, and scripts can still abuse your endpoint to burn budget or reach premium ranges. Rate-limit per number, device and IP, and block destinations you don't serve.

  • Confusing users

    An unknown number ringing once looks like spam. Tell users on screen that a call is coming, that they needn't answer, and which digits to look for.

Example: Sign-up for a Surat delivery app

A Surat grocery-delivery app verifies new riders' numbers by flash call. On Android, the app listens for the incoming call and verifies most riders within a few seconds without them touching the screen. On iPhone, the screen says "We'll ring you once from a number ending in four digits. Don't answer: type those digits here." If no call is detected in 20 seconds, the app offers a WhatsApp authentication code, then SMS. Ahead of Google Play's January 2027 change, the team is moving its Android flow from call-log access to the Digital Credentials API, with the WhatsApp or SMS code as the fallback and manual entry as the last resort.

Flash Call Verification FAQs

Is flash call verification cheaper than SMS OTP?+
Often, because an unanswered call can cost less to terminate than an A2P SMS. The gap varies by country and operator, and some operators now charge flash calls as their own traffic type, so compare live rates per market before switching.
Does flash call verification work on iPhone?+
Only manually. iOS doesn't let apps read the call log, so the user must find the missed call and type its last digits. That removes the main advantage, which is why most apps offer an SMS or WhatsApp code on iOS instead.
Is flash call verification allowed on Google Play?+
For now, only with Google's approval, and that is ending. Google Play says READ_CALL_LOG will no longer be permitted for account verification via phone call from 27 January 2027, and recommends the Digital Credentials API or the SMS Retriever API instead.
How is flash call verification different from silent network authentication?+
A flash call still delivers a code, hidden in a caller ID, that the device must receive and match. Silent network authentication asks the mobile operator to confirm the SIM behind the data session, with no code and no call, but it needs mobile data and operator support.

Good practice

Best practices for flash call verification

  • Keep the expiry short, about a minute, and allow only a few attempts.
  • Log which method finally verified each user so you can compare cost and success by platform.
  • Offer a WhatsApp authentication template or an SMS code as the next step after one timed-out flash call.
  • Rotate and monitor your caller-ID pool; numbers flagged as spam by users stop working.

See InfiQ pricing

Try it on the official WhatsApp Business API

InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.