WhatsApp Login

Sign people in with the phone number they already use on WhatsApp. Free and unlimited: no SMS bills, no per-verification fees, no WhatsApp Business account to set up.

The person sends

Sign in to Acme. Send this message as it is.

2CK4M9QX7…

AuthAction replies

✅ You're signed in to Acme.

Turn the one-time code around

An SMS code is a message you pay for, every time, in every country, and some countries add sender registration on top. Codes arrive late, get typed wrong, and cost the same whether the sign-in works or not.

With WhatsApp Login the person sends the message instead. WhatsApp opens with a one-time code filled in, they tap Send, and WhatsApp itself vouches for the number it came from. Nothing is sent to them to pay for, so there is nothing to charge you for.

How it works

Two taps for the person

No code to read off one screen and type into another. The screen that started the sign-in finishes it on its own.

1. Sign in with WhatsApp

WhatsApp opens with the sign-in message and a one-time code already filled in. The code lasts 10 minutes and works once.

2. Tap Send

AuthAction matches the code, records the number it came from, and replies "You're signed in" in the same chat.

3. Signed in

Your app, which has been waiting, gets AuthAction tokens or the verified phone number. On a computer, a QR code lets the person send from their phone.


One call in your app

The WhatsApp SDK runs the whole sign-in from a web, React Native or Expo app, with no backend and no client secret.

  • No browser, no OAuth redirect
  • PKCE, so no secret ships in the app
  • ID, access and rotating refresh tokens
  • Keeps waiting through a weak signal
  • QR code fallback when WhatsApp is on another phone
  • Sign-ins stored in your tenant's region, deleted after a day
import { WhatsappAuth } from '@authaction/whatsapp-sdk';

const auth = new WhatsappAuth({
  domain:   'acme.eu.authaction.com',
  clientId: 'your-client-id',
});

const tokens = await auth.signIn({
  open: async (s) => {
    // Phone: straight to WhatsApp.
    if (await Linking.canOpenURL(s.whatsappUrl)) {
      await Linking.openURL(s.whatsappUrl);
    } else {
      showQrCode(s.webUrl); // WhatsApp is on another phone
    }
  },
});

// tokens.idToken, tokens.accessToken, tokens.refreshToken

Add it the way your app works

Create the WhatsApp connection once, enable it for your application, and pick a path. All three can run side by side.

Hosted login

A "Sign in with WhatsApp" button appears on your login page beside Google and your other connections. No code changes if you already use AuthAction's login.

App with no backend

@authaction/whatsapp-sdk for web, React Native and Expo, or three plain HTTP calls from Swift and Kotlin. The app gets AuthAction tokens directly.

With your backend

Your backend starts the sign-in and receives the verified phone number, then creates its own session. The app only opens WhatsApp and waits.


€0 per sign-in

Unlimited sign-ins Unlimited users No card required

Free, and unlimited

WhatsApp Login is included on every AuthAction tenant at no cost, like everything else on the platform. There is no per-message price, no verification fee and no monthly active user tier waiting at the next milestone.

  • No WhatsApp Business account, number or message templates to set up
  • No SMS sender IDs or DLT registration
  • The same number is the same user, across every app in your tenant
See pricing

Stop paying for sign-in codes

Add WhatsApp Login in minutes. Free and unlimited, no credit card required.