Limited registrations open — claim your spot
minimoth
← Blog

WhatsApp + SMS OTP for Supabase Auth in India

23 July 2026

Building for Indian consumers on Supabase? If you’re using Supabase Auth’s phone sign-in, you’ve probably hit the same wall everyone does: Supabase doesn’t send SMS itself, it wants you to wire up a third-party provider — Twilio, MessageBird, Vonage — before phone OTP works at all. That means a separate account, per-message SMS pricing not built for India, and no WhatsApp option. None of it is DLT-registered for Indian carriers either, so you’re on the hook for that paperwork too.

MiniMoth plugs into the same place — Supabase Auth’s Send SMS Hook — as a drop-in delivery backend instead. WhatsApp first, SMS fallback automatic, DLT compliance already handled, and the swap takes two dashboard screens, no redeploy.

Why WhatsApp-first actually matters here

Most Indian phone users check WhatsApp more often than their SMS inbox, and WhatsApp delivery doesn’t route through TRAI’s DLT system at all — it goes through Meta’s Cloud API, a completely separate pipeline. MiniMoth sends every OTP over WhatsApp first and only falls back to SMS if that delivery fails, using its own DLT-registered sender so you never have to register one yourself. (More on why DLT registration is the part everyone dreads: Send OTP via WhatsApp Without DLT Registration.)

The easy part: your app code doesn’t change

This is the actual point of a Send SMS Hook integration — Supabase Auth still owns the whole OTP lifecycle. It generates the code, verifies it, issues the session. MiniMoth only becomes the thing Supabase calls out to when it needs a message delivered. Your own client code is untouched:

// Before MiniMoth, after MiniMoth — identical
const { error } = await supabase.auth.signInWithOtp({ phone })

No new SDK to learn, no auth logic to rewrite, nothing to migrate. If signInWithOtp already works in your app today, it keeps working exactly the same way once MiniMoth is the one delivering the message behind it.

Setup: two dashboard screens

  1. In the MiniMoth dashboard, open your project’s Supabase Hook card and enable it — this generates a Hook URL and secret.
  2. In Supabase, go to Authentication → Hooks → Send SMS hook, choose HTTPS, and paste in that URL and secret.

That’s the whole integration. No deploy, no new environment variables in your own app, no dependency to install. MiniMoth even gives you a test mode with its own URL and secret, so you can confirm the connection is wired correctly (via Supabase’s own Auth logs) before ever sending a real, billed message. The full walkthrough with screenshots for both sides is in the Supabase integration guide.

What you get

  • Dual-channel delivery — WhatsApp first, SMS fallback automatic, both handled by MiniMoth’s own infrastructure.
  • No DLT registration — MiniMoth is already TRAI DLT-registered for the SMS fallback; WhatsApp never needed it in the first place.
  • ₹0.35 flat per OTP — a fraction of what routing through a general-purpose SMS provider costs for Indian numbers (see the pricing breakdown).
  • Supabase keeps doing what it already does — sessions, verification, the whole auth lifecycle stay exactly where they are today. MiniMoth only touches delivery.

If you’re already running Supabase Auth for phone sign-in and just want faster, cheaper, India-first OTP delivery without touching your app’s auth flow, start with the Supabase integration guide — test mode is free, and going live is the same two fields with a different URL.