Reverse OTP Technology

Phone Verification

User-initiated verification that's secure, global, and affordable. With Reverse OTP, users send messages TO us via Telegram, WhatsApp, or SMS.

Why Reverse OTP?

Traditional SMS verification sends codes TO users. We flip it - users send codes TO us. This simple change transforms cost, reliability, and security.

Traditional OTP

You
Your Server
$0.05-0.40
User

You send SMS → User receives code → User enters code → You verify

$0.05–$0.40 per SMS

Outbound SMS costs vary wildly by country. International verification gets expensive fast.

10-30% Delivery Failure

Carrier filtering, network issues, and regional blocks mean codes never arrive.

SIM-Swap Vulnerable

Attackers convince carriers to transfer numbers. They receive your OTP, not you.

Regional Complications

Different carriers, regulations, and formats per country. A global nightmare.

Reverse OTP

User
90%+ lower cost
Us
proof.holdings

User sends code to us → We verify instantly → You get proof token

90%+ Cost Reduction

Inbound messages cost a fraction of outbound SMS. Predictable pricing.

No Carrier Filtering

User sends the message. No outbound SMS blocked by carrier spam filters.

User-Initiated Security

User starts the verification. Harder to intercept what you didn't initiate.

Instant Verification

No waiting for SMS delivery. Message sent = verified within seconds.

Users verify via their preferred messaging app

telegram logoTelegram
whatsapp logoWhatsApp

How It Works

User sends a message to prove they control the phone number

Step 1

Create Verification

Call our API with the phone number to verify. We generate a unique challenge code and verification link.

Step 2

User Sends Message

User sends the challenge code to our number via their preferred channel (WhatsApp, Telegram, or SMS).

Step 3

Proof Generated

We verify the message came from the claimed number and return a cryptographic proof token.

API Integration

Integrate phone verification in minutes

1. Create Verification Request

curl -X POST https://api.proof.holdings/api/v1/verifications \
  -H "Authorization: Bearer pk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "phone",
    "channel": "telegram",
    "identifier": "+37069199199"
  }'

2. Verify the Proof Token

# Poll for verification status
curl https://api.proof.holdings/api/v1/verifications/VERIFICATION_ID \
  -H "Authorization: Bearer pk_live_YOUR_API_KEY"

Response Example

{
  "id": "507f1f77bcf86cd799439011",
  "type": "phone",
  "channel": "telegram",
  "status": "verified",
  "identifier": "+37069199199",
  "verified_at": "2026-03-15T10:51:30Z",
  "verified_data": {
    "telegram_user_id": "123456789"
  },
  "proof": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "expires_at": "2026-04-14T10:51:30Z"
  }
}