BYBOWU > News > Security

Stop Shipping SMS OTP: Move to Digital Credentials

Stop Shipping SMS OTP: Move to Digital Credentials
Google’s latest policy updates and Android’s Identity stack have quietly rewritten how account verification should work. If you still rely on SMS or call-based OTP flows, you’re burning user trust—and you may soon face review friction. This guide explains what changed in late August 2026, why the Digital Credentials API is now the default, and a pragmatic migration path teams can ship in weeks, not months. We’ll cover the architectural patterns, UX decisions, library versions to wat...
Published
Category
Security
Read Time
11 min

Stop Shipping SMS OTP: Move to Digital Credentials

Here’s the thing: the primary keyword you should be optimizing for—Digital Credentials API—isn’t just another shiny SDK. As of late August 2026, Google Play’s policy timeline makes it crystal clear that verification flows must move away from sensitive permissions and brittle phone-call OTPs. And on January 27, 2027, Play’s permissions policy will stop allowing phone-call verification under the call log permission. If you still rely on SMS or call-based OTP, you’re on borrowed time and a degraded UX. The safer, future-proof path is Android’s Digital Credentials API, delivered through Credential Manager and designed to plug into verification providers without scraping messages or asking for risky permissions.

Diagram of Android app replacing SMS OTP with Digital Credentials

What exactly changed—and when?

Two dates matter for teams shipping Android apps right now:

• August 26, 2026: Google Play added multiple safety updates (including new restrictions for anonymous and random chat apps) and reinforced guidance to use modern verification methods. The documentation in that timeline points developers away from sensitive permissions and toward the Digital Credentials API or the SMS Retriever API when you truly need OTP via SMS.

• January 27, 2027: Play’s permissions policy will no longer permit account verification via phone calls tied to call log access. Translation: the “missed call” or IVR callback OTP tricks must go. If your verification depends on reading call logs or initiating phone-based verification, plan a replacement now.

These aren’t theoretical guardrails. They shape the review queues you’ll meet this fall and the audits you’ll face in early 2027.

Why SMS and phone verification are liabilities in 2026

Let’s be practical. SMS and phone OTPs are familiar, but they’re expensive, leaky, and increasingly fragile:

• Delivery and latency: OTPs arrive late or never, especially on roaming or dual-SIM devices. Support tickets spike and conversion drops at the worst time—first-run onboarding.

• Security posture: Thread hijacking, SIM swap, and social engineering all exploit SMS OTP weakness. U.S. guidance has restricted PSTN-based one-time codes for years; most modern security baselines now treat SMS OTP as a fallback at best.

• Permissions and review risk: The moment you ask for broad telephony or call log permissions, you’ve raised your review surface area. Even if you pass, future policy changes can invalidate that architecture overnight.

• Cost and fraud leakage: Per-message fees add up. Worse, OTP resends often correlate with fraud rings grinding credential-stuffing attempts.

Meet the Digital Credentials API (and Credential Manager)

Android’s Identity stack re-centers auth flows on cryptographically strong credentials and explicit user consent, without grabbing sensitive app permissions. The building blocks:

• Credential Manager: The system-level aggregator that presents sign-in and verification options—passkeys, passwords (where allowed), Sign in with Google, and, now, digital credentials for verification.

• Digital Credentials API: A contract between your app (the verifier) and a credential provider (a wallet app or secure component) to request, present, and verify claims. Think phone number ownership, email verification, or age attributes—bound to cryptographic proofs instead of fragile OTP transport layers.

• Provider ecosystem: You can integrate directly with a verification provider or rely on wallet apps that implement the standard flows. Android surfaces a first-class UI for the request/consent ceremony and returns a DigitalCredential object back to your app.

The upshot: you validate the user’s claim (for example, “I own +1…”) without scraping SMS or asking users to type a 6-digit code while a timer ticks down.

Does this kill SMS entirely?

No. You still have the SMS Retriever API as a policy-aligned option when you truly need SMS-based flows. But the bar has moved: use SMS Retriever to avoid reading messages manually; do not pair it with sensitive permissions. For mainstream onboarding and re-verification, the Digital Credentials API should be your default, with SMS only as a fallback for edge cases.

Primary keyword focus: Digital Credentials API in production

If you remember one technical directive, make it this: wire your verification to the Digital Credentials API via Credential Manager. As of mid-August 2026, the Identity docs show fresh examples for email and phone verification, and the androidx.credentials library exposes DigitalCredential under an experimental flag. Keep an eye on version notes; pre-release builds in the 1.6–1.7 line add verifier and provider-side improvements, including better OpenID4VP request handling and error mapping.

Architecture: how the pieces fit

The happy path for phone or email verification looks like this:

1) Your app constructs a verification request—typically an OpenID4VP payload that encodes the claim you want to verify.

2) You pass that request to Credential Manager (as a DigitalCredentials request). The system displays the wallet/provider choice UI.

3) The user consents, then the provider performs proof of control (for example, within the carrier network for phone, or via trusted email channel plus cryptographic attestation).

4) Credential Manager returns a signed credential (DigitalCredential) to your app. You send that token to your backend for verification.

5) Your server validates the signature, issuer, and claim. You persist a short-lived session or a long-lived account record with a verified flag, plus risk signals via the Play Integrity API if you need device attestation.

People also ask: Will this hurt conversion?

Short answer: it shouldn’t. In our shipping experience, eliminating code entry and bounce-prone SMS improves first-run completion. Users see a single, native sheet; consent, tap, done. The key is copy, timing, and fallbacks. If you bury the action behind a secondary button or nag users into SMS, they’ll choose the path of least resistance—so design the “Verify with digital credential” route as the primary CTA.

Another FAQ: Do we need a wallet app?

Not necessarily. Some verification providers ship a lightweight wallet component; others rely on system UI only. Credential Manager is the broker, so your UX remains consistent. Prototype with a hosted verifier to validate your flow; you can swap providers later if needed as long as you honor standards (OpenID4VP, JOSE signatures) and keep your server verification modular.

A migration playbook you can ship in 30 days

Week 1 — Discovery and risk mapping

• Inventory all SMS/phone verification entry points: sign-up, device change, high-risk actions, and customer support flows.

• Classify each by risk tier and audience (new vs. returning users, high-value cohorts).

• Decide your primary provider path. If you’re regulated or large-scale, select two partners for A/B and resiliency.

• Draft a policy note for leadership: call-based verification sunsets for Play permissions on January 27, 2027; SMS Retriever is acceptable as a fallback; primary is Digital Credentials API. Include projected conversion/chargeback impacts.

Week 2 — Integration spike

• Add Credential Manager if you haven’t already. Gate Digital Credentials behind a feature flag.

• Implement the verifier-side server endpoint to validate returned credentials. Log issuer, signature, timestamp, and claim payload.

• Add telemetry around the Credential Manager sheet: impressions, accept, cancel, fallback chosen, time-to-complete.

• Wire a fallback path with SMS Retriever (no sensitive permissions). Keep copy honest: “Can’t use a digital credential? Get a code via SMS.”

Week 3 — UX polish and risk controls

• Make the digital credential route the primary CTA on first-run.

• Add anti-hijack hardening: mark sensitive views accessibility-data-sensitive; combine with Play Integrity API device signals on high-value actions.

• Implement exponential backoff and lockouts for repeated verification failures to prevent abuse.

• Run dogfood with your support and fraud teams; collect cancellation reasons.

Week 4 — A/B and rollout

• 10% rollout to new installs. Track completion, time-to-verify, and support contacts per 1,000 MAU.

• Expand to 50–100% once parity beats SMS baseline.

• Turn off phone-call verification entirely. Keep SMS Retriever fallback for specific markets or devices as needed.

Integration gotchas we’ve seen

• Version drift: Pre-release androidx.credentials builds change method names and flags. Pin versions in Gradle and track release notes weekly.

• Provider latency: If your verification provider adds seconds of network round-trips, you’ll tank completion. Measure P50/P95 and set SLAs.

• Server validation mistakes: Always verify issuer, signature, and expiration. Treat credentials as bearer tokens only within a very short time window.

• Poor copy: Users don’t know what a “digital credential” is. Test strings like “Verify your phone without a code” or “Fast, code-free verification.”

Security and compliance checklist

Use this with your security lead and PM:

• Remove any dependency on call logs or dialer callbacks for verification by December 2026.

• Keep SMS Retriever-only fallback; never request broad SMS or call permissions for verification.

• Store only minimal verification artifacts server-side: issuer, claim, timestamp, and a non-reversible verification ID.

• Enforce TLS 1.2+ to your verification provider and require signed responses (JWS/JWT).

• Rotate verification keys with your provider at least quarterly; pin verification endpoints.

• Add rate limits and bot protection on the verification endpoint; integrate Play Integrity API for device risk on sensitive flows.

• Run privacy review: update your Data safety form and privacy policy to reflect the new verification data flows.

Data points you can take to leadership

• Policy reality: Google’s timeline highlights August 26, 2026 safety updates and a January 27, 2027 cutoff for call-based verification tied to call log permissions. Expect stricter review posture as that date approaches.

• Standards momentum: Android’s Identity docs shipped new examples in August 2026 for email and phone verification via Digital Credentials. The DigitalCredential class itself shows active iteration this summer.

• Market adoption: Passwordless is no longer a science project. Industry groups reported billions of passkeys in use globally in 2026 and near-universal awareness. Your users increasingly expect code-free verification flows.

How this fits with your broader roadmap

Verification sits next to sign-in. If you haven’t consolidated sign-in through Credential Manager, do that now—it reduces surface area and unlocks passkeys. Align this work with your quarterly security initiatives and performance goals: faster verification reduces drop-off; fewer SMS resends cut costs. If you’re planning a fall release, sequence the verification migration first, then passkeys for sign-in. Both use the same system UI, which simplifies QA.

What about regulated markets or special cases?

Some telecom markets or enterprise deployments require carrier-grade ownership checks or audit trails. That’s fine. Choose a provider with carrier integrations for phone verification credentials or implement email verification credentials for certain workflows. The Digital Credentials API doesn’t force one flow; it standardizes the handshake and puts the system UI in charge of consent and selection.

People also ask: Will older Android versions block this?

Credential Manager supports back to Android 9 for most sign-in features, and the Digital Credentials path is rolling out through Jetpack libraries plus wallet/provider apps. For very old devices, keep your SMS Retriever fallback. But don’t let the tail wag the dog: build for the majority, and route edge cases to fallback without permissions creep.

Implementation blueprint (server and client)

Client:

• Dependency: track the latest androidx.credentials library that includes DigitalCredential APIs. Mark experimental annotations as required.

• Request: build a CreateDigitalCredentialRequest or a verification request object the API expects for your provider; pass to Credential Manager.

• UX: primary CTA calls Credential Manager; secondary CTA triggers SMS Retriever fallback.

Server:

• Accept a credential payload (JWT/JWS). Validate signature, issuer, nonce, and expiration. Map claim to a normalized user record.

• Log verification outcomes with minimal PII. Emit risk signals to your fraud pipeline and attach Play Integrity device verdicts for sensitive actions.

• Fail closed: on invalid signatures or expired credentials, do not bounce to SMS automatically. Require a separate, rate-limited path.

Planning help and further reading

If you need a structured sprint to get this live, our team’s mobile security engineering services include verification migrations, Credential Manager adoption, and end-to-end QA plans. For compliance sequencing alongside other store deadlines, use our Google Play target API guide as a companion checklist. You can also browse our recent mobile releases for examples of code-free verification UX, or talk scope and timelines via app modernization and compliance sprints.

What to do next (this week)

• Decide to make Digital Credentials your default verification path.

• Add Credential Manager to your app if it’s not there already.

• Pick a verification provider (or two) and run a spike against your staging backend.

• Implement a clean SMS Retriever fallback—no sensitive permissions.

• Ship telemetry on the verification sheet and set success metrics: completion rate, time-to-verify, and support contacts per 1,000 MAU.

Zooming out

Android’s security story is converging on a simple idea: explicit consent, cryptographic proof, and least privilege. The Digital Credentials API embodies all three. If you move now, you’ll sidestep a choppy review season, cut operational pain from undelivered OTPs, and offer users a verification moment that feels like it belongs in 2026—not 2013. If you wait, you’ll be porting in a hurry while your metrics take the hit.

Roman Sulzhyk is the CTO and co-founder of BYBOWU, a Phoenix-based web development agency. With 7+ years of full-stack experience across Laravel, React, React Native, and AI/ML, Roman leads the technical strategy for all client projects. He specializes in building scalable web applications, mobile apps, and AI-powered solutions for startups and enterprises.

Work with a Phoenix-based web & app team

If this article resonated with your goals, our Phoenix, AZ team can help turn it into a real project for your business.

Explore Phoenix Web & App Services Get a Free Phoenix Web Development Quote

Ready to Build Something Great?

Get a free consultation from our Phoenix-based team.

Get a Free Quote

Comments

Be the first to comment.

Comments are moderated and may not appear immediately.

Get in Touch

Ready to start your next project? Let's discuss how we can help bring your vision to life

Currently accepting new projects — Phoenix, AZ (MST)

Email Us

hello@bybowu.com

We typically respond within 5 minutes – 4 hours (America/Phoenix time), wherever you are

Call Us

+1 (602) 748-9530

Available Mon–Fri, 9AM–6PM (America/Phoenix)

Live Chat

Start a conversation

Get instant answers

Visit Us

Phoenix, AZ / Spain / Ukraine

Digital Innovation Hub

Send us a message

Tell us about your project and we'll get back to you from Phoenix HQ within a few business hours. You can also ask for a free website/app audit.