Phone verification by call

An SMS OTP alternative: your user calls the number we give them — we confirm the phone is theirs, and you pay only for verified numbers.

POST /v1/verify→ 201
{ "phone": "+375290000001" }
{ "id": "vrf_0d9a3d2b…",
  "status": "pending",
  "call_to": "+375170000002" }
‹ Change number

From +375 29 000-00-01

1
Call this number
+375 17 000-00-02
Call
The call ends by itself - it’s free
2
Waiting for your callThe page updates by itself1:00
I called - check now
+375 17 000-00-02
Calling… ends automatically

+375 29 000-00-01

in 1.8 s
GET /v1/verify/vrf_0d9a3d2b…→ 200
{ "status": "pending",
  "verified_at": null }
~2sto verification
×12cheaper than SMS
0for failed attempts
15minto your first check
How it works

The user calls - we verify the number

No SMS. The call is dropped before it’s answered, and the result goes straight to your server.

1

You request a check

Send the user’s number and get a number for them to call. One request.

2

You get the status

The user calls, we drop the call - it’s free for them. The verified status arrives by webhook or on request, and only then is 1 check used.


      
What you pay for

SMS services charge per attempt. We charge per verified number

Anyone who enters a number gets an SMS code - a bot or a traffic pumper. With us, a real person calls from their own phone, and a check is charged only once the number is verified.

0for failed
attempts
What you get

Not just cheaper. Better on every metric.

Only real users

Anyone who enters a number gets an SMS code: a bot, a pumper, a traffic reseller. A bot can’t call from someone else’s number - only a real person with their own phone gets verified.

Losses to SMS pumping0
Paying for failed attemptsnone

Pay only for results

Didn’t call within a minute, called from another number, closed the app - no check is charged. You pay only for verified numbers.

More users finish sign-up

Every minute waiting for an SMS risks losing a user. A call goes through in 2 seconds, and they’re already in your product.

Predictable costs

No surprises from international SMS rates: the user calls a local number in their own country.

Missed it - try again

The number to call lives for one minute. If the user misses it, they get a new number in one click. A failed attempt costs you nothing.

Integration

Integrate in 15 minutes

No need to rebuild your sign-up: Telvera simply replaces your SMS provider.

1

Get your key

An API key and a sandbox on your own number - right after sign-up.

2

Send one request

POST /v1/verify with the user’s number - you get back the number they will call.

3

Get the result

The user called - you receive a verifiedwebhook. The number is verified.

Packages

The bigger the package, the cheaper each check

Buy checks in advance - we charge only verified numbers. No call, expired, test mode - free. Packages never expire.

100free checks
when you sign up
  • We charge only successful verifications
  • Packages never expire
  • Sandbox is free
  • Any amount - priced by tier
Buy a package

Over 1M checks a month? Let’s talk custom pricing

FAQ

Frequently asked questions

What exactly do you charge for?

Only for a verified number: the user called from the number you sent, and you got the verified status. No call within a minute, a call from another number, a sandbox test - the check stays in your package.

Do checks in a package expire?

No, they never expire. Buy 10,000 and use them at your own pace. New packages add up with what’s left.

Will I have to rebuild my current sign-up?

No. Telvera replaces your SMS provider: instead of “send code” you show a number to call, and you get the result the same way - via webhook. You can keep your old provider as a backup.

Does the user pay for the call?

We drop the call before it connects, so most carriers don’t charge for it. The user just taps “Call” - that’s it.

Why is this better than a flash call, where we call the user?

Outbound calls to the user also cost money and are open to fraud. In our flow the user calls: verification is more reliable and your cost is minimal.

What if the user can’t call?

The number to call is valid for one minute. If the user misses it, they tap “Get a new number” and call again. Failed attempts aren’t charged - you pay only when the number is verified.

How fast can I integrate?

About 15 minutes: one request to create a check, a “Call” button in your UI and a webhook handler. There's a sandbox, code samples and an OpenAPI spec.

Pay for results, not attempts

100 free checks right after you sign up.