Solutions · OTP Verification
Phone Verification API —
Send OTP Codes via iMessage
Deliver verification codes in under a second via iMessage, with automatic SMS fallback. No 10DLC registration, no carrier approval, no per-number monthly fees — one API, fastest possible delivery.
SMS OTP via traditional APIs takes 3-5 seconds and costs $0.0079 per message — plus 10DLC campaign registration fees and weeks of approval time. senderZ routes via iMessage first, skipping all of that.
How it works
Four steps from API call
to verified user.
One endpoint, one round trip. iMessage when possible, SMS when not — you don't need to know which.
01
Generate your OTP code
Create a random code in your backend and store it with an expiry. senderZ handles delivery — you handle verification logic.
02
Call the senderZ API
One POST request with the recipient number, your OTP template, and the code as a variable. Set channel to "auto" and senderZ picks the fastest route.
03
senderZ picks the rail
Someone verifying for the first time has never texted you, so the code goes by SMS — no carrier registration needed on your side. A returning customer who already messages you gets it on iMessage.
04
User enters code, you verify
Compare the submitted code against what you stored. Use the senderZ delivery receipt to confirm the message was delivered before timing out.
curl -X POST https://api.senderz.com/v1/messages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+15551234567",
"channel": "auto",
"template": "otp_verify",
"data": {
"code": "4821",
"app_name": "Acme",
"minutes": "10"
}
}' Use cases
Where verification codes earn their keep.
User signup verification
Verify new accounts at registration. Codes go out over SMS on registered infrastructure, so there is nothing for you to file with carriers and nothing to wait for.
Two-factor authentication
Add a second factor to login flows. Customers who already have a conversation with you get their code on iMessage — faster, with read receipts confirming it was seen.
Password reset
Send password reset codes instantly. The high-priority queue ensures reset codes are never delayed behind marketing sends, and auto-routing guarantees delivery regardless of the recipient's device.
What you get
Verification, end to end.
No registration burden
Codes to first-time users go over our registered 10DLC infrastructure. You do not file a campaign, wait for carrier approval, or pay registration fees — it works the day you sign up.
Auto-routing
Set channel: "auto" and senderZ picks the right rail per recipient — SMS for someone verifying for the first time, iMessage for a customer who already has a conversation with you. One code path, both cases.
Template system
Create a reusable OTP template with dynamic variables for the code, expiry time, and app name. Update the copy once and it applies to every send.
High-priority queue
OTP messages are marked as high priority and skip ahead of marketing and alert messages, so verification codes are never waiting behind a bulk send.
Delivery receipts
For customers already in a conversation with you, iMessage gives native read receipts — you know exactly when a code was delivered and opened, instead of guessing.
Not a developer?
senderZ Workspace lets you send messages, manage contacts, and run campaigns without writing code. See plans and pricing
FAQ
Frequently asked questions
How fast is iMessage OTP delivery?
It depends on the recipient. Someone verifying for the first time has never texted you, so their code goes over SMS — typically 3-5 seconds, on infrastructure we have already registered so you do not have to. A customer who already messages you gets it on iMessage instead, usually in under a second and with a read receipt.
Do I need 10DLC for OTP?
Not by you. Codes to first-time users go over SMS on 10DLC infrastructure that senderZ has already registered, so there is no campaign to file, no approval to wait for and no registration fee on your side. Codes to customers who already message you go over iMessage, which never touches carrier infrastructure and needs no registration at all.
What if the recipient doesn't have iMessage?
senderZ automatically falls back to SMS. Set channel to "auto" and the API handles detection and routing. Your code stays the same regardless of which channel delivers the message.
Can I customize the OTP template?
Yes. Create a template with variables like {{code}}, {{app_name}}, and {{minutes}} for expiry. Update the template once and every future OTP send uses the new copy. Templates are managed via the API or the senderZ dashboard.
How do I verify the code on my end?
senderZ handles delivery, not verification logic. Generate the OTP code in your backend, store it with an expiry, send it via senderZ, then compare what the user submits against what you stored. The API returns a message ID you can use to correlate delivery status with your verification flow.
Verify users in under a second.
14-day free trial. No credit card. No 10DLC.