Vylo OTP delivers verification codes over WhatsApp — and sends ordinary messages from the very same number. No SMS fees, no gateway to run. Send a code, verify it, notify your customer. You're billed only for messages the gateway accepts.
Three steps between you and a verified user.
Your backend calls POST /otp/send with the user's phone. We generate a secure random code and store only its hash.
The code is sent from your connected WhatsApp number through our gateway. Your user reads it in WhatsApp.
Your backend calls POST /otp/verify with the phone + code. Single-use, time-limited. Done.
The same connected number sends ordinary WhatsApp messages too.
POST /messages/send takes a phone and up to 1000 characters — order updates, reminders, receipts. One request, one recipient.
Messages go out from your own WhatsApp number and cost exactly what a code costs. Refused sends are never billed.
GET /messages lists everything that left your number — who, when, accepted or refused, and what it cost. The text itself is never stored.
Messaging is switched on per account: ask us to enable it once you are set up. You are the sender of record, so recipient consent is yours to hold.
Pay only for what you send.
Pay as you go. Failed deliveries are never billed. Prices can be tailored per account.
Unlimited codes and messages: $10 for 30 days or $100 for a whole year, plus Contacts and Promotions to message a whole list. Bought from your credit.
Your first 20 delivered messages are free. No monthly fee, no setup cost.
Authenticate with your API key (starts with otpsk_) in the Authorization header. Server-side only — never ship the key to a browser or app.
# 1) Send a code curl -X POST https://otp.vylo-tech.com/otp/send \ -H "Authorization: Bearer otpsk_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"phone":"9647501234567"}' # 2) Verify what the user typed curl -X POST https://otp.vylo-tech.com/otp/verify \ -H "Authorization: Bearer otpsk_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"phone":"9647501234567","code":"482913"}' # 3) Send an ordinary WhatsApp message from the same number curl -X POST https://otp.vylo-tech.com/messages/send \ -H "Authorization: Bearer otpsk_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"phone":"9647501234567","message":"Your order #1042 has shipped."}' # 4) Read your message log (who, when, status, cost) curl https://otp.vylo-tech.com/messages?source=message \ -H "Authorization: Bearer otpsk_YOUR_API_KEY"
| Method | Path | What it does |
|---|---|---|
| POST | /otp/send | Generate + deliver a code to a phone. |
| POST | /otp/verify | Check the code the user entered. |
| POST | /messages/send | Send an ordinary WhatsApp message (1-1000 chars). |
| GET | /messages | Your message log — who, when, status, cost. |
| GET | /usage | Your send counts, cost, and balance. |
| GET | /plans | Your plan, your credit, and the Unlimited periods. |
| GET | /contacts | The people you have messaged. |
| POST | /campaigns | Send a promotion to a list (Unlimited). |