Available
WhatsApp Verification
Verify phone numbers through WhatsApp: the user sends one pre-filled message, and the check completes within seconds.
Proof Holdingsproof.holdings · verification api
AttestationNº 2026-0044
subject+370 691 •• •99
channelWhatsApp
methodReverse OTP
challengeVRF-3390 — sent by the user, not to them
receivedVRF-3390 · 14:02:07 UTC
verdictControl provendelivered in-app, sent by the holder
Mintedph_ctl_4b1c…a63 · ES256
How It Works
Verification through the messenger your users already have
§ 01
Create Request
Call our API with the phone number. We return a unique 6-character challenge code and WhatsApp deep link.
§ 02
User Opens WhatsApp
User clicks the link or scans QR code. WhatsApp opens with pre-filled message containing the challenge code.
§ 03
Instant Verification
User sends the message. We verify it and return a signed proof token: poll GET /verifications/:id, or wait on its event stream.
API Integration
Simple API, powerful verification
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": "whatsapp",
"identifier": "+37069199199"
}'2. Verify the Proof Token
# Poll verification status (user sends message via WhatsApp)
curl -X GET https://api.proof.holdings/api/v1/verifications/VERIFICATION_ID \
-H "Authorization: Bearer pk_live_YOUR_API_KEY"Response Example
{
"id": "507f1f77bcf86cd799439011",
"type": "phone",
"channel": "whatsapp",
"status": "pending",
"identifier": "+37069199199",
"challenge": {
"code": "X7K9M2",
"deep_link": "https://wa.me/15557766633?text=Verify%20X7K9M2",
"qr_code": "data:image/png;base64,...",
"expires_at": "2026-03-15T10:45:00Z"
}
}