Guide for verification

SMS codes not arriving: why delivery fails.

Every verification SMS that does not arrive costs you a sign-up, and often a support request. The causes are rarely the user’s phone: number formats, carrier filters, sender registration and slow routes play a bigger part. This guide shows why SMS codes do not arrive, what you can do as a site operator and when it is worth turning the direction around.

  • Five reasons SMS codes get lost
  • What you can fix yourself
  • When the user should send instead
sms-delivery.log

Five verification SMS, four problems

What delivery reports show

  1. +49 151 …1167 Delivered after 4 s 09:12

    Delivered The normal case.

  2. 0151 …0388 Number without country code 09:20

    Not arrived Sent with the wrong country code because the leading zero was not converted.

  3. +1 415 …2290 Filtered by the carrier 09:31

    Not arrived Sender not registered for this country.

  4. +49 176 …8835 Delivered after 2 min 10:02

    Late The user had already asked for a new code, the first one no longer works.

  5. +49 160 …5521 Expired undelivered 11:45

    Not arrived Phone off or no reception until the code had expired.

What is Sendity?

Sign-ups by message. No form, no code.

Sendity is a sign-up widget for your website. Instead of filling in a form, your visitors send one short message via WhatsApp or email. Sendity checks who it came from and hands your site the name and the confirmed phone number or email address.

See how Sendity works →
  • One message instead of a form Visitors tap send in WhatsApp or their email app. Nothing to type, no confirmation email to click.
  • Confirmed by the message itself The contact comes from the sender of the message, so typos and made-up addresses never reach your list.
  • Pay per confirmed contact Start with 1,000 free credits, no credit card. After that, prepaid packages with no subscription.

Most failures happen before the SMS reaches the phone.

Number format

Users type 0151, +49 151 or 0049 151. If you do not convert numbers into the international format with country code, some SMS go to the wrong country or nowhere.

Carrier filters

Carriers filter messages that look like spam or fraud. Codes with links, unusual sender names or sudden volume peaks are hit first.

Sender registration

More and more countries require registered senders, for example the USA for its local numbers or India for all business SMS. Unregistered messages are blocked without a notice to the user.

Routes and delays

Cheap routes pass through several intermediaries. A code that arrives after two minutes is often worthless, because the user has asked for a new one by then.

The phone

No reception, roaming, a full memory or a filter for unknown senders. These cases exist, but they are rarer than support requests suggest.

How it works

What you can fix yourself.

Three measures that noticeably raise the delivery rate.

  1. Normalise numbers

    Convert every number into the international format with country code before sending, and check that it is plausible.

  2. Measure per country

    Evaluate delivery reports by country and route. A sudden drop usually points to a filter or a missing registration.

  3. Wait before resending

    Allow a new code only after 30 to 60 seconds, say clearly that the newest one counts, and offer a second channel.

Compared

Outgoing SMS code or reverse OTP?

With reverse OTP, the user sends the code, so there is no delivery to fail.

AspectOutgoing SMS codeWith Sendity
Delivery to the user Depends on routes and filters Nothing is delivered
Number format Typed by the user Comes from the sender
Sender registration Per country, for you Not needed for you
Resending Costs another SMS The user sees in their app whether it was sent
Benefits

If SMS stays, make it robust.

Three habits for operators who keep sending codes.

Plain message text

Code and service name, no link and no shortened URLs. That passes filters more easily.

More than one route

Providers with direct carrier connections and a backup route reduce failures in single countries.

A second channel

Email, WhatsApp or a voice call as an alternative, so a lost SMS does not end the sign-up.

FAQ

SMS delivery: common questions.

Why do codes arrive late?

Usually because of the route: intermediaries, queues at peak times or a carrier that holds messages for checks. Measure delivery times per country and provider.

Should every resend get a new code?

If it does, only the newest one may count, and the page should say so. Otherwise a late first SMS confuses users.

Can the user’s SMS fail with reverse OTP?

Rarely, and the user sees it in their own messages app. With Sendity, SMS is only an optional fallback next to WhatsApp and email, which you switch on per campaign.

Does the user pay for sending?

A WhatsApp message or an email costs nothing extra. An SMS costs the normal rate of the user’s contract, which is usually included in flat rates.

Verify numbers without delivering a code.

Try the live demo on your phone. It takes ten seconds.

Your Sendity account

Verify your phone number or email address with one message to sign in.

Already created a passkey?