# Viber number check: a practical guide for businesses

> How to check if a number has Viber, where Viber matters most, how checks relate to Viber Business Messages, and a cost model for Viber-first sending.

Canonical: https://mobilevalidate.com/blog/viber-number-check-guide · Last updated: 2026-10-13

![A balance scale weighs a gradient chat bubble with one coin against an SMS bubble with two coins, with a channel split donut and regional reach bars.](https://mobilevalidate.com/images/blog/viber-number-check-guide.svg)

*Where the app is popular, sending there first can cost less than SMS.*


By MobileValidate team (https://mobilevalidate.com/about) · Published: 2026-10-13 · Category: Deliverability · Tags: Viber, Channel selection, SMS, Deliverability, API

To check if a phone number has Viber, send it to a registration-check API and read back a yes, no or unknown answer stamped with the time of the check. With MobileValidate that's `checks: ["viber"]`, in real time for up to 100 numbers per request or in bulk jobs for lists. For businesses, the answer is most useful in markets where Viber is a leading messenger: it tells you which opted-in customers can receive a Viber message before you pay for, or wait on, a failed attempt. This guide covers what the check means, where it matters, how it fits with Viber Business Messages, and a cost model.

## What does a Viber check tell you?

It tells you whether a Viber account is associated with the number. On Viber, the phone number *is* the account: you install the app, confirm the number with a code, and contacts see you under that number. There's no username layer that hides the number from discovery, which makes Viber answers comparatively clear:

| Answer | Meaning | Weight |
|---|---|---|
| `registered: true` | A Viber account exists for the number | Strong |
| `registered: false` | A conclusive answer that there is none | Strong, in markets where Viber is common |
| `registered: null` (unknown) | No conclusive answer; `status` and `reason` say why | None; not charged |

Accounts can outlive the phone they were created on, and carriers recycle numbers. Read every answer with `checked_at`, and keep `max_age` short where freshness matters. The check never returns names, photos or online status.

## Where does Viber matter most?

Viber's footprint is regional. When Rakuten agreed to buy it in February 2014 for about $900 million, Viber reported "approximately 280 million global registered users, and monthly active users over 100 million" ([Rakuten, 2014](https://global.rakuten.com/corp/news/press/2014/0214_04.html)). Today Viber describes its reach as "hundreds of millions of people" connecting each month ([Viber](https://www.viber.com/en/about/)). Neither figure is broken down by country in those sources, so we describe regional patterns qualitatively:

| Region | Typical role of Viber | Check to pair with |
|---|---|---|
| Parts of Eastern Europe and the Balkans | Often one of the leading messengers | `whatsapp`, `telegram` |
| Parts of the Middle East | Used alongside other messengers | `whatsapp` |
| Parts of Southeast Asia | Leading in some markets, minor in others | `whatsapp`, `zalo` (Vietnam) |
| Western Europe, North America | Usually minor | `whatsapp`, `rcs` |

Country tables go stale quickly. The only numbers that matter are the rates on your own consented base, and a bulk job gives you those. Our [channel-by-country guide](/blog/choosing-a-messaging-channel-by-country) shows the method.

## How does a check relate to Viber Business Messages?

They solve different problems. **Viber Business Messages** is Viber's paid channel for brands: an official business account, "business-initiated conversations", delivery through an API "with SMS fallback", and a model where you "pay only for messages that are delivered" ([Rakuten Viber](https://forbusiness.viber.com/en/business-messages/)). It's usually accessed through a messaging partner.

A registration check answers a narrower question earlier: does this customer have Viber at all? That helps in four situations:

- **Time-sensitive messages.** A passcode that first waits on a failed Viber attempt and then falls back to SMS arrives later. Sending straight to SMS for customers without Viber avoids the delay.
- **Channel mix and budgeting.** Before you sign up for a business account, you need to know what share of your customers could receive Viber messages.
- **Your partner's fallback rules.** Fallback behaviour and pricing depend on your contract. A pre-check lets your own system decide the route.
- **Data quality.** A Viber account shows the number passed phone-based activation, which helps separate live mobile numbers from typos and landlines.

The check sends nothing and doesn't create a conversation.

## How do I check Viber in real time?

Use `POST /v1/lookup` with `checks: ["viber"]`. This call uses [test numbers](/docs/test-mode) and a short `wait`, so one answer is still pending:

```bash
curl https://api.mobilevalidate.com/v1/lookup \
  -H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"numbers": ["+447700900001", "+447700900002", "+447700900003", "+447700900004"],
       "checks": ["viber"], "wait": 2}'
```

The real test-mode response had `"status": "pending"` and this summary:

```json
"summary": {"total": 4, "registered": 1, "not_registered": 1, "unknown": 1, "pending": 1, "invalid": 0, "suppressed": 0},
"next": {"poll_url": "/v1/lookups/lkp_0VWGAce108LGOKS7kKqh", "poll_after_ms": 2000}
```

Polling `GET /v1/lookups/{id}?wait=10` a few seconds later returned the fourth answer as `{"status": "completed", "registered": true, "confidence": "high"}`. The third was `unknown` with `reason: "UPSTREAM_TIMEOUT"`. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate). Test keys never bill.

In a user-facing flow, don't block on a pending answer: send by your default channel and use the answer next time.

## How should my application route on each answer?

A routing table for messages the customer opted into:

| Answer | Passcode | Order or delivery update | Stored record |
|---|---|---|---|
| `registered: true` | Viber first if you support it, short timeout, then SMS | Viber if the customer chose it | `true` + `checked_at` |
| `registered: false` | SMS or voice straight away | SMS or e-mail | `false` + `checked_at` |
| `unknown` / `pending` | Your default channel | Keep previous routing | Don't overwrite a stored answer |
| `number_status: invalid_number` | Ask the user to correct the number | Fix the record | Flag for cleanup |

Two habits keep this reliable. Refresh answers monthly and after any failed Viber delivery; repeat checks inside the freshness window come from your account's cache for free. And check several apps in one request, for example `["viber", "whatsapp", "telegram"]`, so each customer gets a channel they actually have.

## What does a Viber-first cost model look like?

The decision is whether checking first saves more than it costs. A check costs a small fraction of a message (see current per-check prices for real-time and bulk on the [pricing page](/pricing)), and only conclusive answers are billed. The savings depend on your own message prices, so this example uses **invented, illustrative prices**. Replace them with your contract's.

Assume 100,000 passcodes a month, a Viber message at $0.010, an SMS at $0.040, and that 55% of your customers have Viber.

| Strategy | Viber messages | SMS | Monthly cost (illustrative) |
|---|---|---|---|
| SMS only | 0 | 100,000 | $4,000 |
| Viber first, pre-checked (bulk, monthly) | 55,000 | 45,000 | $550 + $1,800 = $2,350, plus 100,000 checks in a bulk job at your current price |

If your Viber contract already charges only for delivered messages, the pre-check's value is mostly **speed**, fewer failed attempts in time-critical flows, and **planning**. If you pay for attempts, it also saves money directly. Either way, run the numbers on your base before committing. Our [SMS cost reduction](/use-cases/sms-cost-reduction) use case covers the broader levers.

## How do I measure Viber reach on my customer base?

Run one bulk job over customers who opted in to messages:

```bash
curl https://api.mobilevalidate.com/v1/jobs \
  -H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
  -F file=@opted-in-customers.csv -F checks=viber,whatsapp,telegram
# GET /v1/jobs/{id}?wait=30, then GET /v1/jobs/{id}/download?format=csv
```

Then compute, per country, `true ÷ (true + false)` for each app, leaving unknowns out. Estimate the job first with the free `POST /v1/jobs/estimate`; it returns the maximum cost along with invalid, duplicate and cached counts. The result tells you where a Viber integration pays off and where SMS or another app should stay the main route.

## What limits apply to Viber checks?

The same limits apply as for every check, and they're checked before anything is stored or charged:

| Limit | Value |
|---|---|
| Numbers and e-mails per real-time lookup | 100 |
| Numbers and e-mails per bulk job | 50,000 |
| Checks per request | 20 |
| Identifiers × checks | 2,000 per lookup, 100,000 per job |
| Request rate per key | 10 per second, burst 20 |
| Consecutive numbers in one request | 19 at most; 20 or more → `403 suspected_enumeration` |

Each account also has a daily cap on identifiers checked; `GET /v1/limits` shows it. For real-time use at sign-up, one request per user is typical, so the rate limit rarely matters. For monthly refreshes, one job of up to 50,000 numbers is far more efficient than many lookups. If you need higher caps for an established use case, ask us. See [rate limits and abuse](/docs/rate-limits-and-abuse) for the full rules.

## What are the consent and privacy rules?

- **Registration isn't consent.** Viber's own business channel is for existing customers and people who expect your messages; the check doesn't change that.
- **Lawful basis and minimal data.** Checking a customer's number is likely to be processing of personal data. Under the [GDPR](https://eur-lex.europa.eu/eli/reg/2016/679/oj) you need a lawful basis (Article 6) and should store only the answer and its date (Article 5(1)(c)). Your counsel can confirm what applies to you.
- **No list building.** Requests with 20 or more consecutive numbers are refused (`403 suspected_enumeration`), and our [acceptable use policy](/legal/acceptable-use) forbids finding recipients for unsolicited messages.
- **Objections.** People can object through our [opt-out form](/opt-out); suppressed numbers are skipped and never charged.

Viber is named here descriptively. MobileValidate is not affiliated with Rakuten Viber.

## What are the key takeaways?

- A Viber check answers **whether a Viber account exists for a number**: registered, not registered or unknown, with `checked_at`.
- Because the number is the account, Viber answers are **clearer than on username-based apps**.
- Viber matters most in parts of **Eastern Europe, the Balkans, the Middle East and Southeast Asia**. Measure it on your own base.
- It runs **in real time and in bulk**. Don't block users on pending answers, and never overwrite a stored answer with unknown.
- A pre-check pays off through **speed, fewer failed attempts and better planning**, even when your Viber contract charges only for delivered messages.
- See the [Viber check](/services/viber-number-check) and the [messaging-app checks guide](/blog/messaging-app-registration-checks-guide) for every other app.

## Sources

1. [Announcement of 100% Acquisition of Viber Media Ltd.](https://global.rakuten.com/corp/news/press/2014/0214_04.html) — Rakuten, 2014
2. [About Viber](https://www.viber.com/en/about/) — Rakuten Viber, 2026
3. [Viber Business Messages](https://forbusiness.viber.com/en/business-messages/) — Rakuten Viber, 2026
4. [General Data Protection Regulation (EU) 2016/679](https://eur-lex.europa.eu/eli/reg/2016/679/oj) — European Union, 2016

## Frequently asked questions

### How do I check if a phone number has Viber?

Send the number to POST /v1/lookup with checks: ["viber"] for up to 100 numbers in real time, or to POST /v1/jobs for lists of up to 50,000. Each answer is registered, not registered or unknown, with the time of the check.

### In which countries is a Viber check most useful?

Where Viber is a leading messenger, which includes several countries in Eastern Europe, the Balkans, the Middle East and Southeast Asia. The check accepts numbers from any country, but elsewhere most answers will be not registered.

### Do I need a Viber check if Viber Business Messages already falls back to SMS?

Not always. A pre-check helps when you want to avoid the delay of a failed Viber attempt for time-sensitive messages, when you pay for attempts, or when you plan channel mix and budgets across your base.

### Does the Viber check return a name or online status?

No. Only whether a Viber account is associated with the number. Names, photos and online status are never returned.
