Delete Account and All Data

This page explains what happens when you delete your SMSly account, how to do it, and what data is retained.

DRAFT — This document requires owner/legal review before publication. It reflects the current code behavior as of the date above.

How to Delete Your Account

  1. Open the SMSly app.
  2. Go to Profile (fourth tab).
  3. Scroll to the Data section.
  4. Tap Delete account and all data.
  5. Read the warning sheet — it shows exactly how many Activations you will lose (your balance plus any pending number's refund).
  6. Confirm by tapping Delete account.

The deletion is immediate and irreversible.

What Happens When You Delete

The server runs the following steps in a single database transaction:

  1. Cancel pending numbers: Any activation still in WAITING_SMS is cancelled with its usual refund (cost credited back to your balance).
  2. Forfeit balance: The entire balance (including the refunds from step 1) is written off via an ACCOUNT_DELETION_FORFEITURE ledger entry. Your wallet becomes 0 Activations.
  3. Soft-delete user record: status = 'deleted', email = NULL, display_name = 'Deleted User', firebase_uid = NULL, token_version + 1 (revokes all access tokens instantly).
  4. Delete linked identities: All Google/Apple identity links (user_identities) are removed, freeing those provider accounts to start a new SMSly account later.
  5. Revoke device credentials: Every device secret for this account is marked revoked_at = NOW(), revoke_reason = 'account_deleted'. The old secret can never sign in again.

After the transaction commits, the server (outside the lock) asks the SMS provider to cancel the numbers and deletes the Firebase user (if the account was linked). Failures there are logged but do not roll back the deletion — the account is already gone.

What Is Deleted

What Is Retained (and Why)

The following are retained permanently due to ON DELETE RESTRICT foreign keys, for tax, accounting, and anti-fraud compliance. They are not accessible in the app after deletion.

Wallet ledger (wallet_transactions)
Every purchase, refund, forfeiture, merge — immutable double-entry ledger.
Activations (activations)
All numbers you ordered: service, country, phone number, provider ID, cost, status, timestamps, received SMS text (code + raw message).
SMS messages (sms_messages)
One row per received SMS (sender = NULL, body, OTP code, received timestamp).
Rentals (rentals)
If you ever used dedicated line rentals (currently disabled).
RevenueCat webhook events (webhook_events)
Raw purchase/renewal/cancellation events from the store.

Retention period: indefinite (legal obligation). The specific statutory retention periods vary by jurisdiction; data is retained as long as required by applicable law.

Money After Deletion

If You Cannot Access the App

If you uninstalled the app, lost the device, or cannot sign in, email us at:

Contact Support

Include your device label (shown in Profile as device XXXX-XXXX) if you have it. We will verify ownership and process the deletion manually.

Sign-Out vs. Deletion

Google Play Data Safety Requirement

This page satisfies Google Play's requirement for a web-accessible account deletion URL (https://edgpt.site/delete-account). The in-app flow calls DELETE /api/auth/account directly; this page is for users who need to request deletion without the app.

Contact

Questions about deletion or data retention: support@edgpt.site.